On 02/03/2017 09:29 AM, Gijs Kruitbosch wrote:
On 03/02/2017 15:11, Ryan VanderMeulen wrote:
A friendly reminder that per the MDN commit rules, the use of "No bug" in the commit message is to be used sparingly - in general for minor things like whitespace changes/comment fixes/etc where traceability isn't as important. https://developer.mozilla.org/docs/Mozilla/Developer_guide/Committing_Rules_and_Responsibilities

I've come across uses of "No bug" commits recently where entire upstream imports of vendored libraries were done. This is bad for multiple reasons: * If makes sheriffing difficult - if the patch is broken and needs backing out, where should the comment go? When it gets merged to mozilla-central, who gets notified?
As Greg said, the committer / pusher, via IRC and/or email.
* It makes tracking a pain - what happens if that patch ends up needing uplift?
Generally, the person committing it will know whether it needs uplift, and would have filed a bug if it did - and would file one if it does after the fact. We can already not rely on bugs being marked fixed/verified on a trunk branch when searching bugzilla for uplift requests (cf. "disable feature Y on beta" bugs) and so I don't see how this is relevant.
What about when that patch causes conflicts with another patch needing uplift?
That seems like it hardly ever happens in the example you gave (vendored libraries and other wholesale "update this dir to match external canonical version"), and if/when it does, the people who would be likely to be involved in such changes (effectively changes to vendored deps that aren't copied from the same canonical source!) are also likely to be aware of what merged when.
What if it causes a regression and a blocking bug needs to be filed?
Then you file a bug and needinfo the person who landed the commit (which one would generally do anyway, besides just marking it blocking the regressor).


If there's an overwhelming majority of people who think using "no bug" for landing 'sync m-c with repo X' commits is bad, we can make a more explicit change in the rules here. But in terms of reducing development friction, if we think bugs are necessary at this point, I would prefer doing something like what Greg suggested, ie auto-file bugs for commits that get pushed that don't have a bug associated with them.


More generally, I concur with Greg that we should pivot to having the repos be our source of truth about what csets are present on which branches. I've seen cases recently where e.g. we land a feature, then there are regressions, and some of them are addressed in followup bugs, and then eventually we back everything out of one of the trains because we can't fix *all* the regressions in time. At that point, the original feature bug's flags are updated ('disabled' on the branch with backouts), but not those of the regression fix deps, and so if *those* have regressions, people filing bugs make incorrect assumptions about what versions are affected. Manually tracking branch fix state in bugzilla alone is a losing battle.

For the immediate term, I must respectfully disagree. Sheriffs are the people most involved with and concerned with the changeset management procedures, so if the sheriffs (and Ryan "I'm not a sheriff!" VM) are claiming that No Bug landings are being overused and causing issues, I'm inclined to adjust current practices first and hold off on rethinking our development process until the immediate pain is resolved. The fact is that our *current* changeset management *is* very bug-centric. I think gps and others have made a good argument for why another process may be superior (and I personally do not regard our current process as the pinnacle of efficiency), and I'm all for coming up with something better. But I really don't want some long drawn-out halfway state where the people who think the process should be A are doing it that way, the people who think it should be B are changing piecemeal to get something as close to B as is currently possible, and the people new to our community are completely baffled and getting contradictory advice depending on who they talk to.

Can we clarify with examples of good and bad usages of "No bug"? There will always be a fuzzy middle (unless we go all-out and say every landing must be associated with a bug). But I'm hearing some dispute over specific scenarios, so I think it would be helpful to clarify. I am not the one to decide such things, but my personal guess would be:

branch merges - No bug is fine. (And IIUC, you don't need to say "No bug" for those because the hook accepts /merge/ or something like that.) I personally wish that especially significant merges *did* have bugs to make it a little easier to track problems back to a branch landing and have a place for discussion of the reasons and risks.

Typo/whitespace - No bug is fine, but if it is associated with a recent landing of some bug, then you should use that bug number anyway. Makes uplifts cleaner.

Trivial bustage fixes - use the bug of the original commit.

Sync with upstream - use a bug! If it causes intermittents, or changes in telemetry, or anything, then metadata beyond that stored in the commit is very likely to be useful. Especially with anything that might potentially be backported. I understand the argument that we can always file a bug retroactively, but today our process is bug-centric and can we please not change that without being fully intentional about it and making sure that works for everyone (especially the sheriffs) first?

And after writing this, I went and read the developer guidelines link, and it seems to agree with all of these.

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to