-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
[Discussion] Branching for 2.x and 3.0 releases #398
Comments
Agreed, Probably easiest to continue merging everything into Should probably update/write new guides to reflect any decisions made here |
So workflow for
Is that correct? IMO the release process is already pretty manual, might as well cherry-pick. Only thing is the |
I'd assume |
Yeah, I guess we could just cherry pick into This runs a great risk of conflicts though, and we'd likely get to a point where This is mostly cosmetic with regard to git history, but it will be maintenance burden. |
Regardless of the methodology you're going to have conflicts at one point or another However assuming we keep We should never get to a point where there's a conflict going into Assuming everything goes into |
Right, this is exactly what I want the end result to be.
Ah, good point. 👍 Ok, I'm on-board with cherry picking into We'll need to:
Changelog3.0.0 (upcoming release)
2.2.0
Since the CHANGELOG will be published continuously. However, how GH release notes will remain the same. |
@jessesquires Need to update the release checklist as well Also as per @rnystrom's previous remarks, do we want to rename |
It's probably ok to create a new branch per minor release now that we're just cherry-picking. We can just use the branch to collect commits, then merge that into |
@Sherlouk - Ah, well I think if we're cherry picking then we don't need that staging branch. We can stick with |
That's simpler. In general, we just need to be very careful and diligent with managing releases. |
We'd still need a branch to store non-breaking commits? Unless you were planning to, only on release, go through all the commits and identify non-breaking ones Feel like that opens the floor for human error, maybe if we do that we should add something to merge commit titles like "[breaking]" as to make it clear? |
I think the process would be:
Also, before we merge any 3.0 PRs, we should merge |
While that process would work and probably be fine, I personally don't like the idea of I prefer the idea of having (Just my opinion) |
Hm.. yeah. Really, I'm not a fan of any of this setup. But we have to deal with FB's importing/syncing system. |
@jessesquires Do you mind filling me in on what Phabricator/FB internal sync offers? Interested |
Either way I'm happy to go with what you think is best, if that's merging into stable immediately then so be it |
@Sherlouk it let's us keep our internal repo the source of truth. Otherwise keeping 2 repos in sync will be a nightmare. We don't have any automation to make GH the source of truth and sync internally due to security concerns (pulling code/files into internal systems automatically = bad). |
think we're good here? |
For 3.0 breaking changes like #397, we need to agree on a branching model.
We'll need to figure out how we want to manage two on-going releases (2.x and 3.0).
Branching
Suggestion:
master
"linear" and breaking, and have arelease-2.x
branch.release-2.x
is merged frequently intomaster
to keepmaster
ahead, alwaysrelease-2.x
is merged intostable
stable
I think this is probably best (though not optimal, IMO) since IG uses
master
. I went ahead and created the branch: https://github.com/Instagram/IGListKit/tree/release-2.xThe alternative (and more typical model) would be to do the opposite of this and maintain a
release-3.0
branch, but that doesn't play well with IG working off ofmaster
.Commits and PRs
We'll need to do one of two things for all pull requests and commits:
(1) If part of
2.x
, make sure we merge torelease-2.x
. This can all happen via GH only. Then, we (admins) open a PR to mergerelease-2.x
intomaster
and sync FB internal.OR
(2) We continue to merge into
master
only and then cherry pick appropriate commits intorelease-2.x
.Both of have their pros and cons. Either way, concerning our release process so far, we can't simply merge
master
intostable
for releases.The text was updated successfully, but these errors were encountered: