-
-
Notifications
You must be signed in to change notification settings - Fork 322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split out connectors into separate libraries #224
Comments
I don't use it already |
Although it seems a good idea, it might be overkill. I mean, it's not like plugins in a complex application (e.g. sublime text). Connectors are really part of your library. |
I agree that adding connectors should be easier. I also like the idea of being able to separate connectors out into separate packages, reducing the amount of extra dependencies. Separating the building and testing of connectors from the main library code would also be nice. I think it's worth refactoring the library to make adding, building, and testing connectors easier and more modular. Separating them into a separate repository might be overkill, though; perhaps refactoring the build system and directory structure could accomplish the most important goals. I definitely think you should move forward with something that makes connectors easier to add and maintain, regardless of what the final solution is. |
I agree it might be overkill, unless there is another package that can use connectors only. For my experience, maintaining 2 repos instead of 1 is more, not less work. Are the connectors JSON-RPC agnostic? If yes, long term it may be useful to separate those. |
I'd rather not. I agree that connectors are part of the library. I would advise that this project just convert the connectors to plugins and have separate release cycles. If the plugin is untested, then mark it as unstable. Another would be to use separate module directories for experimental, unstable and release connectors in the plugin hierarchy. |
Thanks for your input. I now agree two repositories might be an overkill. @chfast connectors are only not JSON-RPC agnostic (they do require the header interfaces), thanks for pointing that out. So new build-outputs could be:
This allows a client/server to compile with only linking the dependencies that are actually needed:
The source structure could than be the following:
|
@jdmichaud about the 3 days. It was mostly my own stupdity. I had an unreproducible dep: catch, the unit testing library. Additionally some connectors produced flaky tests under OSX and sometimes linux. |
I really like the idea of having each connector be it's own library that can be linked in at compile-time. I think the directory structure @cinemast just proposed would work well. Keeping the connectors in the main libjson-rpc-cpp repo but separating the connectors into their own libraries and test suites is currently my preferred solution. |
I'm not using this library myself anymore but I'm still maintaining the package in Gentoo. I'm happy with whatever works for you guys, as long as it can be built sanely and doesn't use horrible hacks ;-). |
The v2 branch contains the basic ideas. |
I plan to split out the connectors into a separate (or multiple) repositor(y/ies).
Rationale:
#ifdef
stuff in connectors code.The text was updated successfully, but these errors were encountered: