-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 08/08/14 10:42, Thierry Carrez wrote:
Ihar Hrachyshka wrote:
I'm concerned that in some cases [1] we merge patches in stable branches before they reach master. My understanding is that in general such approach may lead to multiple kinds of issues:
1. if a master patch is not merged in the end due to negative review feedback, we will need to cope with a stable-only patch.
Actually, the main goal is to make sure we don't insert a regression: bugs fixed in the stable branch should also be fixed on the development release, and the easier way to ensure that is to block stable bugfixes until master incorporates the same bugfix.
2. if a master patch is modified later before its merge, we need to cope with the need to apply last minute modifications to stable branches. In the worst cases, the difference won't even be noticed, and we'll result in unneeded differences between master and stable code.
3. also, if a patch is merged into e.g. havana and not icehouse, and then a user upgrades to icehouse, he will see a regression due to the missing patch that was once fixed in a prev-stable release.
We could say that there are some cases where the strict ordering of backports is not applicable, like in [1]. Quoting Thierry,
" @Ihar: stable branch changes come in two categories. There are project bugfixes (which are straight backports of stuff that has to land in master to ensure we have no regression) and infrastructure patches (to keep the test infrastructure working on stable branches). The latter do NOT have to land in master: in most cases, they are not even applicable there. This is basically a branch-specific infrastructure patch to keep the stable branch running. The fact that it has a master "equivalent" is more of a coincidence. Not having that patch in master wouldn't be a regression. To answer your question, if the patch has to be reworked, that would result in subsequent patchsets. "
So some cases are not affected by problem (3), but still, (1) and (2) apply.
Let me elaborate on infra patches. Those are not bugfixes, nor is it really affecting the source code. Those are changes in peripheral files (which are often not even included in tarballs) so that the CI continues to work on stable branches despite recent changes made to the infrastructure.
In some cases those patches need to be applied to all branches, in some cases just to a specific branch. So they are, by nature, branch-specific original patches rather than backports: the concern in (1) doesn't really apply IMHO.
The concern in (2) is still valid though: by proposing and merging those branch-specific patches in parallel, if we realize that they are insufficient, a follow-up patch may have to be applied to all branches. Merging one first and then apply the same logic to the others would avoid that. Note that the order doesn't really matter though: the stable/havana patch could be the first one (temporarily breaking CI on stable/havana actually hurts the project a lot less than temporarily breaking CI on master). So I'd leave that ordering choice to the
Though CI is not broken in the case I've asked to comment. The only issue with not pushing those patches immediately is that infra won't be able to upgrade to the latest tox as quickly as they may probably like. Doesn't sound like a blockage in gate. So I think we have time to consider the patches with due review process and not introduce exceptions to the rules.
Infrastructure person that pushes those patches, and not block them on master landing. They know what they are doing.
Now, I understand that this is not documented at all, it's more of an oral tradition within the stable branch team, and we need to properly document that exception to the rules.
Not much traction on the thread. :) Anyway. I've updated this specific rule in [1] with the following: "(Note: some patches may get exception from this specific rule. These are patches that do not touch production code, like test-only patches, or tox.ini changes that fix major gate breakage, etc.; or security patches that should not take much time to merge once the patches are published. In those cases, stable patches may be pushed into gate without waiting for all consequent branches to be fixed. Warning: in case review process reveals issues in master patch which require rework after stable patches are merged, it's expected that additional changes are merged into stable branches to avoid unneeded difference between branches. So use the exception with due care.)" Hopefully, it's clear enough. If not, please update. [1]: https://wiki.openstack.org/wiki/StableBranch#Appropriate_Fixes /Ihar -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) iQEcBAEBCgAGBQJT8yvlAAoJEC5aWaUY1u57CGgIAJ+tt9Jw442KGInQpUyj/mOn Pj1aPoO4w7l/87xstWIbUTAOr81+R+RkX9Ggxclk8d7nmhdMQImzP+Bj1UktBDLb MlncyDln/xN3QMd17+EME+XP3aaLptSWlabywdl3/I4SbXg7+JbytTvLlwxECECv lPPccMuc6dv731QHAAaSE4aL00dQJuT/eRYgFmXoSzX6fCCQbwt9LC/wAYeguhhE iYtMAiqwp4kO8ai6DQCJaRemm9XCutcNjpK/ZkJOzA0DP+SOhgil21cCd83Cloru Ejs2lzHTQ7R3zytcMhauxHzvRM9H+cY1HZuTRFDs8CShOrdkBsKWS68VhepHZZg= =YKAp -----END PGP SIGNATURE-----