Branches & backporting #2327
Replies: 7 comments 18 replies
-
Some more food for thought. Maybe the ideal scenario is even years are LTS and odd years are mainline. This is like both nginx (as @Flyingmana points out in his RFC draft) and nodejs. So maybe we support 1-2 prior stable releases with patches which should be easy enough if we are only backporting security or bug fixes. Or maybe always one recent LTS and the 1.9.4.x branch for people who just want an upgrade from Magento 1.9. |
Beta Was this translation helpful? Give feedback.
-
Sorry for just dumping ideas here, but one other thought: It may be better to use a I say this because it avoids having to change the base branches of PRs every year. I.e. from 20.0 to 22.0. |
Beta Was this translation helpful? Give feedback.
-
So the main reason to have 1.9.4.x as main branch was to make sure, bugfixes always end up there, as still the majority of bugfixes happens there. and because for a long time merging upstream was easier, because merging makes sure ALL of them end up there, and not just a part. Of course we do not have finished the RFC related to it, but my wish would have been, to have 19 as an LTS release, which gets bugfixes till the next LTS release 4-5 years later happens. |
Beta Was this translation helpful? Give feedback.
-
The backport action seems awesome, I searched for something similar some time ago and didn't find it, we could already use it for v19->v20 immediate merge. But what happens if there's a conflict? I couldn't find any documentation about that. Maybe also protected branches could be problematic? |
Beta Was this translation helpful? Give feedback.
-
Hey everybody, I'm creating this new RFC to move this topic forward: Can we make it better? What can we write in the "Rationale and Alternatives" section? |
Beta Was this translation helpful? Give feedback.
-
Here is what I think an ideal workflow might look like: First, we must decide if we want to make Next, I would suggest that we start a new major version, As far as branches, I'm not sure we should rename So now we would now target For releases, we would tag new v22 releases from This means that right now we would have two LTS branches: Also one other thing regarding version numbering. I think we have troubles following semantic versioning since all our releases are patch releases. Maybe we adopt This is a lot of changes from how the project has been managed, and it really depends on the ease of backporting. If enough people support this direction I'd suggest we spin up some sort of dummy repo to test the backport tool on. I am looking at this from the perspective that I want to be on OpenMage for the next 5-10 years. |
Beta Was this translation helpful? Give feedback.
-
I'd kepp it, as it is. Everything thats no BC breaking change wents to 1.9.x and gets forward merged to v20. The v20 was always ment to be a "development branch" for more advanced user that can fix problems on their own. Possible backports:(any reason for being only in v20?) |
Beta Was this translation helpful? Give feedback.
-
This is probably something that can be discussed in the Discord developer meeting tomorrow, but I was just trying to think of ways to make managing two branches easier.
My first thought is that perhaps 20.0 (or 22.0) should become the default branch. Then, perhaps 1.9.4.x should only receive security fixes or other very basic commits, but no new features. So instead of merging 1.9.4.x into 20.0 every release, we only need to cherry-pick commits from 20.0 that are security patches or bugfixes.
A tool such as this could help too: https://github.com/sqren/backport-github-action. Ideally, it looks like you can just add an PR label such as
backport-to-1.9.4.x
and it does it automatically (I guess unless there's merge conflicts).I think the benefit is that we are not risking breaking anything in 1.9.4.x any longer with features that may or may not be needed. This seems like the very definition of LTS to me.
I also do not think this conflicts with any goals we've already had, such as every 2-4 years or so tagging a new LTS release. So say in 2023 then branch 23.0 becomes LTS and security patches/bugfixes are backported from 24.0. Or even depending on how well that tool works, it might not be too difficult to continue to backport into both 1.9.4.x and 23.0.
Just throwing some thoughts out there, I think we do need to go through the formal RFC process for this so we really all agree with what we are doing.
Beta Was this translation helpful? Give feedback.
All reactions