I need to use 3rd-party code that's available publicly on github. I'm looking at the github's network graph of that code and I can see that other forks have some commits that aren't merged into the original repository.
How should decide which of the branches/forks is right for me?
Please enlist your considerations while facing a problem like this.
As suggested by John Feminella, one should always use the (usually stable) 'released versions of a project'.
I agree with that of course, but this question is still relevant in one of the following cases:
- The original author no more maintain that code.
- There is a feature I need that isn't implemented in the original but implemented differently in more than one fork
- The code is still under development stages, each fork has some differences from the original (either in features, or development decisions and implementation)
I've faced such a case many times, currently the original author still tries to keep the repo maintained but it seems that he doesn't have enough time, other forks are more active. None of the forks is announced as stable enough for production use. Last time I faced such a case the original repository also didn't implemented a feature that was important for me.
So in such cases I would need to choose the most stable fork, try using it within my code, test it thoroughly and possibly contribute some improvements in order to make it stable.