-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Clarify Capstone branching strategy #1781
Comments
My proposed branching strategy is to "support" branches:
Guidelines:
|
I have to agree that the names are confusing for developers new to Capstone. There have been so many issues opened where the solution was basically "use the next branch". It makes sense to have an experimental / unstable / next - type branch when there is a high rate of commits. But the rate of commits here seems pretty slow. I think it would be less confusing for new people if next (or whatever it comes to be called) became the primary branch. |
@aquynh could you change the default branch to |
I will copy next to master soon, yes.
|
i have been thinking about renaming "master" to "master_old", then clone
"next" to a new "master".
does this break anything?
|
@aquynh another option would be to let This way it would guarantee not to break anything that relied on |
sounds perfect to me.
|
please see #2011 we have the |
(Response added here instead of #2011 so I can quote @XVilka comment)
I don't think we want to do this since there would be no good way to update the Our options would be:
Also, we want Proposal
ExampleIf the latest "stable" version is "6.X.X", then we would have branches:
When we release a new major version, such as "7.X.X", we would only need pull a new branch To fix a bug in any version "train", we simply need to commit to the branch for the corresponding version. I would be happy to document this process in a wiki page. |
the the reason I made sorry that i don't get what you mean: what is wrong with the above plan? |
Sorry for not being clear. 😄
Would you only update If you only update If you update Git branches exist so you can commit into them. It sounds like you will never commit directly into It sounds like you want a "read only branch". Instead of using a branch, you could just create a "latest-stable" tag that you update on every release. For example, the neovim repo has a stable tag that gets updated for every release. If you want folks to be able to easily determine the latest release but avoid committing to a |
@tmfink you can avoid conflicts during the merge using: # when we are on the "next" branch
git checkout -b main-merge
git merge main -s ours
git checkout main
git merge main-merge --no-ff -m "Merge 'next' branch into 'main'" |
@XVilka Yes, we could use the "ours" merge strategy to effectively ignore all changes that went into the latest stable release branch (e.g. Why
|
@XVilka I think both of those strategies would be more complicated and require more work for all contributors than what I have described above.
We need to have separate branches for each "release train" ("2.X", "3.X", ...). In fact, we already have branches
Per my previous point, there's no benefit to having a Basically, my recommendation (since we have been doing it this way for years) is to have our Adding an additional |
We can rename "main" to "v5", does that work for you?
And we can make "next" the default branch.
|
Perfect!
…On Sun, May 7, 2023, 04:59 Nguyen Anh Quynh ***@***.***> wrote:
We can rename "main" to "v5", does that work for you?
And we can make "next" the default branch.
—
Reply to this email directly, view it on GitHub
<#1781 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABIFROHSQ7574WGDLIIE2A3XE6FCXANCNFSM5C76XM3A>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I also agree that would work for us with the auto-sync effort perfectly. 👍 |
ok i made the changes:
|
Then it makes sense to close this one maybe? |
I like all of the changes. I would say the only thing left is to:
|
I created a wiki page describing the branching model. |
Historically, this project has used the active branches:
v2
,v3
,v4
)next
: what will be the next releaseThe
master
branch is not really used, but is still the defaultHEAD
branch. This confuses contributors.As of writing:
master
branch is c72fc81next
branch is f278de3I propose the following branching strategy of the project
HEAD
(default) branch (if needed)The text was updated successfully, but these errors were encountered: