Rant about unprofessional workflow
Rant about unprofessional workflow
Posted Nov 2, 2016 10:58 UTC (Wed) by NAR (subscriber, #1313)Parent article: A discussion on stable kernel workflow issues
I worked on projects where the rule was that no commit should go into the main repository without a reference to the bug or task tracker. All commits should be either fixes for bugs (in this case the reference should point to the bug in question) or implementation of new feature (in this case the reference should point to the task tracker describing the new feature). Code cleanups, refactorings, etc. were considered "new feature" for this purpose. There was a field on the bug tracker ("introduced at") where the developer who fixed the bug had to state which version introduced the bug. This helped greatly the decision when we needed to backport a fix or not. Also the bug description obviously described if this is a severe bug (e.g. crash, security problem, etc.) or not.
Granted, this needs discipline. No cowboy-style commit-and-forget programming. For example if a developer finds a bug during code review or implementing some other feature, he had to create the bug report and go through the process - but in the long run it was really useful. I guess the kernel developers don't think that there's a bug or issue tracker that can cope with their workloads (hint: write one).
Posted Nov 4, 2016 16:22 UTC (Fri)
by imMute (guest, #96323)
[Link] (7 responses)
And here's where people would just sit on uncommitted code because its too much work having to fill out a bug report on code that is still on a feature branch. If it's a bug found by the second set of eyes to see the code, then I don't think a bug report is worth it - it's just needless paperwork.
Posted Nov 6, 2016 14:36 UTC (Sun)
by NAR (subscriber, #1313)
[Link] (6 responses)
I don't really understand the comment about feature branch: if it's a bug in the new (not yet released) feature, then there should be already an entry in the issue tracker about that feature. If it's a bug in an old (already released) feature, then it should be present on the "main" branch too, so it warrants a new bug entry.
Posted Nov 7, 2016 12:19 UTC (Mon)
by mathstuf (subscriber, #69389)
[Link] (5 responses)
Posted Nov 7, 2016 14:34 UTC (Mon)
by excors (subscriber, #95769)
[Link] (1 responses)
But if you don't require every commit to reference an issue (and enforce that requirement), someone will occasionally make an important substantive commit without an issue, which will turn out to introduce some bugs or need backporting or need some documentation written about its rationale etc, and someone will have to spend hours searching through mailing lists and LWN articles trying to find all the possibly-years-old discussions about that commit (earlier versions, code reviews, related bug reports, etc). That's also wasted time, which could have been saved if the discussion about the commit had been tracked in a single place (even just as a collection of links to mailing list threads).
If you require only substantive commits to reference an issue, you'll waste time deciding and then arguing with people over whether a commit is really substantive (e.g. a malloc/free bug could be a serious security vulnerability so surely that counts?), and you'll still sometimes fail to track a commit that should have been tracked.
I think it's unclear which approach wastes the most time overall, but the most predictable is to require an issue for every commit - it's a mildly irritating overhead when writing patches, but it's easy to get into the habit of using the issue tracker for everything, and it can save some rare but substantial headaches in the future.
Posted Nov 7, 2016 18:03 UTC (Mon)
by bronson (subscriber, #4806)
[Link]
Posted Nov 7, 2016 16:31 UTC (Mon)
by NAR (subscriber, #1313)
[Link] (2 responses)
Posted Nov 7, 2016 17:27 UTC (Mon)
by madscientist (subscriber, #16861)
[Link] (1 responses)
For whitespace cleanups and typos, you can have a catch-all tracker entries (as mentioned above) for "whitespace cleanup" and "comment typos" that is just used for all those types of issues. It incentivizes people to break these out into separate commits anyway, which is a good thing.
When I introduced a similar requirement locally (using Git hooks on the server to reject pushes where the comment didn't provide the proper information) I originally thought it would be good to have an "out" where you could use a special tag like "trivial" or something and avoid creating a tracker entry. Others in the team were against this and wanted to require a real tracker entry for every commit so that's what we did, and it has been fine.
Posted Nov 10, 2016 18:02 UTC (Thu)
by Wol (subscriber, #4433)
[Link]
Cheers,
Rant about unprofessional workflow
Rant about unprofessional workflow
Rant about unprofessional workflow
Rant about unprofessional workflow
Rant about unprofessional workflow
Rant about unprofessional workflow
Rant about unprofessional workflow
Rant about unprofessional workflow
Wol