-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
DO NOT MERGE (For discussion only) Merging XChange-Stream with XChange. Addresses #3220 #3436
Conversation
Reparenting all child pom.xmls Refactoring info.bitrich.xchangestream package to org.knowm.xchange.stream Adding Names and Descriptions to all stream pom.xmls Adjusting dependencies to include new dependencies shared across projects
<module>xchange-stream-service-core</module> | ||
<module>xchange-stream-bitstamp</module> | ||
<module>xchange-stream-cexio</module> | ||
<module>xchange-stream-okcoin</module> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we instead name all these modules like xchange-okcoin-stream
instead? That way they will end up in our IDEs grouped together better, i.e. xchange-core
will be next to xchange-core-stream
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timmolter We've already renamed using the xchange-stream
prefix. Can we perhaps aim for a merge first and then rename prior to the next XChange release? That way I can try and put together the merge sooner rather than later (there are quite a few people screaming for it ;))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, we can do the merge first like you suggest. No problem.
I was about to come on here and propose a merge approach. The main problem with this one is that it loses the change history from the original project. I was going to suggest something like the following, inspired by this article.
Trying to do this via PRs will be be a nightmare, I think. CC @dozd |
Definitively, do this outside PR is advised. Your approach seems working & good to me. |
Hey, I'm following this effort and wanted to see if there something I can look at to see how far along this is or to get a sense of the time this is expected to take. |
@walec51 and @timmolter Would you mind having a look at the xchange-stream code, then give me a laundry list of anything you'd like resolved prior to my handing you the branch for merge? I'd like to get this done soon as there are quite a few people clamouring for it @earce I'm going to try and do this shortly. Just need to co-ordinate with the guys here. |
Sorry for not replying to this earlier! The code looks good to me, assuming it works! :) I'll do my best trying to merge the two projects following your instructions above. Let me know when I should proceed. Thanks! |
Fab. @timmolter , @walec51 , @dozd and all following this thread: I'm going to start working on this now. I've updated the README in the other project and will be posting on the open pull requests with instructions as I go. |
great initiative, round of applause folks |
Everyone thanks for looking at this, super excited to see this come together. |
Well, that was easier than I expected for a first iteration @timmolter . How does this look as a first pass? https://github.com/badgerwithagun/XChange/tree/stream-merge |
@badgerwithagun I just accepted some PRs on the XChange develop branch. Could you sync up your branch please? Make sure you're extending the develop branch and not master. Thanks for your efforts! |
@timmolter I've just merged knowm/develop into my branch. |
For completeness, I'm going to try and extend the documentation to cover all the streaming stuff. Some of this will be in the README and some in the Wiki. Will take a little while though. I'll do it as I work through closing all the open issues and PRs on the outgoing project. |
Just some notes as I do this merge.
|
This dependency in kraken seems to be an odd-ball. Can it be refactored out? <dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency> |
Here's another odd-ball in hitbtc: <dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>2.4.0</version>
<scope>test</scope>
</dependency> |
The .gitignore file needs to have all the streaming stuff added back. Now's a good time to carefully re-look at everything. |
Good spots, thanks - I'll take a look at those dependencies. I thought I'd got rid of log4j but I suspect there are some rogue dependencies hidden in there still. Will have a look this evening. I just assumed we'd use logback across the board. |
@timmolter I can't see any log4j remaining dependencies in the added streaming code. Unless my IDE's search is letting me down... |
The json-path-assert dependency is test-only. Seems like a handy utility and doesn't affect runtime. Worth worrying about? |
I'm trying to get this merge done by the end of today. Don't worry about updating anything until I get it done. |
commons-beanutils could be pretty easily removed by the looks of things. It's just being used to parse |
Gotcha |
Another odd-ball in bitfinex: <dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency> It's used only for one method in
|
That one is needed for Java 9+ compatibility in a number of places, I believe, and is in dependency management in the parent POM. Can probably just remove the version. |
weird, I definitely had to add it to the parent pom and I think it's just only for that. Could have missed something though I guess. |
OK, it's merged into XChange/develop and travis ci is running it. Fingers crossed. It built for me locally. |
Is there any way to visualize the git commit graph? I think it'd be neat to see. |
OK Travis CI passed. An we're now on 5.0.0-SNAPSHOT. We can start accepting PRs again! |
Per the discussion in #3220 XChange-Stream has been hard at work getting the project ready for merge with XChange. They've made a point to:
This is meant to be an EXAMPLE of what a possible merge scenario might look like. It takes the latest from development of both projects and merges them together by:
It's meant to be an example of what a merge would look like. It does NOT imply that the two projects are ready to merge, but for brave souls who wish to see what one possible future might look like, this provides a fully functional example of the two projects working in harmony and allows for early beta testers to find possible issues, and discuss how the actual merge might be different.
What hasn't been done:
I'll do my best to keep both development branches refreshed from HEAD, let the discussion commence!