jedisct1 / libsodium

A modern, portable, easy to use crypto library.
https://libsodium.org
Other
12.18k stars 1.73k forks source link

Diverging branches #958

Closed eiderdaus closed 4 years ago

eiderdaus commented 4 years ago

It makes me rather anxious that there are two active branches with wildly different histories in this project. The master and stable branches can not be merged automatically one way or another. Some commits could be applied in both branches but the difference is still very big. Could someone please explain the reasoning behind this project's branches in general and of this divergence in particular because I honestly do not see any legitimate reason. I would be very happy if those two branches could somehow be converged or if any one of them could simply be abandoned in favor of the other.

jedisct1 commented 4 years ago

Use the stable branch.

master is a development branch, that can break at any time and contains completely untested code.

eiderdaus commented 4 years ago

Thanks, but I still do not see a reason for this huge discrepancy: "This branch is 257 commits ahead, 356 commits behind master." For example, what happens when you release a new version. I think you backport most changes from master to stable by creating a new commit, right? But why do you never merge? For example, 940ef42 (1.0.18-RELEASE) should have been a merge in my opinion. Also, other projects would simply tag the release on the master branch and then, for supplying bugfixes, simply create a new branch for each release (or maybe the other way round, creating the new branch first and tagging the actual release later in the new branch). This way, merging would not be necessary. But a single "stable" branch and never merging from master does not make any sense in my opinion.

angt commented 4 years ago

Hello,

I'm not really sure I understand your problem but you just have to completely forget the master branch, it's for devs. Only the stable branch exists for users.

Best regards,

eiderdaus commented 4 years ago

Hello, I just find that the relationship between those two branches should be clearer from the revision history by using more interconnections (i.e. merges). Looking only briefly at this repository one might come to the conclusion that the two branches are actually different forks with no connection whatsoever, wandering off in opposite directions. Your current approach is not quite in the spirit of Git and makes it harder to understand what's going on in my opinion - at least for outsiders. But this is only my 2c, you don't have to feel obligated to change anything if it works for you.