quickfix-j / quickfixj

QuickFIX/J is a full featured messaging engine for the FIX protocol. - This is the official project repository.
http://www.quickfixj.org
Other
942 stars 610 forks source link

Move sleepycat code out of quickfixj-core #459

Open philipwhiuk opened 2 years ago

philipwhiuk commented 2 years ago

Sleepycat seems unmaintained. Depending on sleepycat involves including an extra database implementation that (most?) people probably aren't using.

To my knowledge this only affects quickfix.SleepycatStore and quickfix.SleepycatStoreFactory

Options:

1) Extract Sleepycat code to quickfixj-sleepycat which depends on quickfixj-core. Breaking change for Sleepycat Store users, no impact on everyone else.

2) Just remove Sleepycat code. Would mean any Sleepycat Store users have to copy in the code to their own projects and maintain it separately. Completely removes QuickfixJ's dependency on it.

chrjohn commented 2 years ago

I think option 1 would be the way to go. But I also don't have any insight into how much Sleepycat is used. Also see #449 which might be related w.r.t. creating a new submodule.

david-gibbs-ig commented 2 years ago

If I may express an opinion on this I think that changing the publishing of SleepycatStore can be regarded as a breaking change, but only in the sense of requiring a new dependency. For higher backwards compatibility the package names could remain the same, but the new module can build and test it. It can even be moved from the existing repo into its own repo in a release such as 3.0.0. It would depend on quickfixj-core. You could leave it unmaintained and wait to see if anyone requests that it be maintained to track qfj releases. If not then it can at some point be deprecated.