-
Notifications
You must be signed in to change notification settings - Fork 18
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
Branches diverging #5
Comments
It's a bit funny that we ran into this issue almost immediately! I think it isn't a tremendous problem since hopefully every change to stylo has a matching change in Servo that also runs tests. That said, I think you're correct that we should avoid it. I think your approach is quite clever though I see one issue. Once you make Servo depend on
The benefit here is that the old branch stays locked in the future to avoid confusion. |
Not sure what's the best approach. I just created the 2023-07-23 branch since I wanted to try the style upgrade in Servo. |
I'm wondering about how the commits updating the docs, readme, sync scripts, etc will be maintained. It seems a bit awkward to have essentially two histories stacked on top of one another (i.e. once the docs/readme/sync commits reach into the hundreds (or even tens) of commits it will be hard to find the history of the stylo code itself. I guess we could put a link to the "head" upstream commit in the README? Also, if we were to publish Is there an alternative sync workflow using something like |
I think the lockfile means that won’t happen, but I agree it would be best to keep the branch resolvable, rather than relying on the lockfile (and potentially orphaned commits), so my first idea is out. I like your idea about branch protection though! Can we simplify it by skipping the temporary branch name ( Unrelated to that, so far I’ve proposed we delete the I think we can solve this by keeping a If we elaborate on your proposal to also describe what happens between upgrades (like the proposals in the description), but keep
This should solve all of the problems we’ve discussed:
So far, we’ve been squashing those supporting materials into one commit, which also marks the boundary between upstream and downstream. That way, we only need to rebase n+1 commits for the n downstream patches we have.
I think the idea is we’ll catch up with mozilla-central and upstream as many of our patches as possible, leaving only the patches needed to make Stylo publishable (such as removing upstream path dependencies). |
Yeah, I think it's totally fine to skip the temporary branch name.
I like your proposal! I say let's do it. |
Thanks! On second thought, maybe having an I’ve renamed |
That makes sense!
I've renamed this back simply because we landed the upgrade in Servo and I think that things might start breaking if we rename it now. |
I think we've figure this one out, so perhaps the next step is to simply write down our workflow and put it in the README. |
Currently we have three downstream branches: main, 2023-06-14, and 2023-07-23. We landed #4 into 2023-06-14, but that doesn’t show up on main, nor does it show up in the new 2023-07-23 branch.
To fix the first problem, should we change our workflow a bit? My first idea was:
font-variant
for Layout 2020 #4 into mainI don’t think that will break the ability to build old versions of Servo, because their lockfiles depend on a specific commit hash, but rewriting main has other downsides, like making the commits that land pull requests look orphaned. What about this, which ensures that the default branch is never rewritten:
font-variant
for Layout 2020 #4 into 2023-07-23I’m not sure about the second problem though, because I only realised we had a new 2023-07-23 branch after landing #4 into 2023-06-14. It seems with both approaches, we would still need to make sure we avoid landing patches during an upgrade or into the wrong branch.
The text was updated successfully, but these errors were encountered: