* [workflow] Automatically close bug report when a patch is committed @ 2023-09-06 8:28 Giovanni Biscuolo 2023-09-06 9:45 ` Christopher Baines 2023-09-06 16:14 ` [workflow] Automatically close bug report when a patch is committed Maxim Cournoyer 0 siblings, 2 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-06 8:28 UTC (permalink / raw) To: guix-devel; +Cc: Vagrant Cascadian [-- Attachment #1: Type: text/plain, Size: 1428 bytes --] Hello, often bug reports related to patches are left open even after the patch/patchset have been applied, the last example is a batch of Debbugs manual gardening from Vagrant last Fri and Sat when he closed more than 20 bugs with messages similar to this one: --8<---------------cut here---------------start------------->8--- rofi-wayland was added in: 04b5450ad852735dfa50961d3afc789b2e52b407 gnu: Add rofi-wayland. And updated to a newer version in: 19c042ddf80533ba7a615b424dedf9647ca65b0f gnu: rofi-wayland: Update to 1.7.5+wayland2. Marking as done. --8<---------------cut here---------------end--------------->8--- (https://yhetil.org/guix/87zg25r0id.fsf@wireframe/) IMO we need a way automatically close this kind of bug reports... or am I missing something? Let's avoid manual gardening as much as possible! :-) The first thing we need is a server side git post-receive hook on Savannah, I've opened the sr#110928 support request: https://savannah.nongnu.org/support/index.php?110928 When I asket I though the best way would be to scan for a string like "Close #<bug-number>" in the commit message (the committer should add such a string) but probably this can be avoided: the bug can be closed when a patch is committed to one of the listed official brances (master, core-updates, etc.) WDYT? Ciao, Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-06 8:28 [workflow] Automatically close bug report when a patch is committed Giovanni Biscuolo @ 2023-09-06 9:45 ` Christopher Baines 2023-09-07 9:38 ` [workflow] Triaging issues (was Automatically close bug report when a patch is committed) Giovanni Biscuolo 2023-09-06 16:14 ` [workflow] Automatically close bug report when a patch is committed Maxim Cournoyer 1 sibling, 1 reply; 69+ messages in thread From: Christopher Baines @ 2023-09-06 9:45 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: Vagrant Cascadian, guix-devel [-- Attachment #1: Type: text/plain, Size: 1234 bytes --] Giovanni Biscuolo <g@xelera.eu> writes: > Hello, > > often bug reports related to patches are left open even after the > patch/patchset have been applied, the last example is a batch of Debbugs > manual gardening from Vagrant last Fri and Sat when he closed more than > 20 bugs with messages similar to this one: > > > rofi-wayland was added in: > > 04b5450ad852735dfa50961d3afc789b2e52b407 gnu: Add rofi-wayland. > > And updated to a newer version in: > > 19c042ddf80533ba7a615b424dedf9647ca65b0f gnu: rofi-wayland: Update to 1.7.5+wayland2. > > Marking as done. > > (https://yhetil.org/guix/87zg25r0id.fsf@wireframe/) > > IMO we need a way automatically close this kind of bug reports... or am > I missing something? I think the example you give doesn't relate to what you're looking at below (a post-receive hook). There were at least two different issues with patches for adding rofi-wayland [1] and [2]. 1: https://issues.guix.gnu.org/53717 2: https://issues.guix.gnu.org/59241 One improvement I can think of here is that QA should highlight that some of the changes in each of those patch series can be found in another patch series. That would then make it easier to both issues to be closed if that's appropriate. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 987 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* [workflow] Triaging issues (was Automatically close bug report when a patch is committed) 2023-09-06 9:45 ` Christopher Baines @ 2023-09-07 9:38 ` Giovanni Biscuolo 2023-09-07 15:41 ` Vagrant Cascadian 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-07 9:38 UTC (permalink / raw) To: Christopher Baines; +Cc: Vagrant Cascadian, guix-devel [-- Attachment #1: Type: text/plain, Size: 5163 bytes --] Hi Christopher, [note: I'm deleting the "In-Reply-To:" header and changing subject to try to start a new thread] Christopher Baines <mail@cbaines.net> writes: > Giovanni Biscuolo <g@xelera.eu> writes: [...] >> 20 bugs with messages similar to this one: >> >> >> rofi-wayland was added in: >> >> 04b5450ad852735dfa50961d3afc789b2e52b407 gnu: Add rofi-wayland. >> >> And updated to a newer version in: >> >> 19c042ddf80533ba7a615b424dedf9647ca65b0f gnu: rofi-wayland: Update to 1.7.5+wayland2. >> >> Marking as done. >> >> (https://yhetil.org/guix/87zg25r0id.fsf@wireframe/) >> >> IMO we need a way automatically close this kind of bug reports... or am >> I missing something? > > I think the example you give doesn't relate to what you're looking at > below (a post-receive hook). Oh I see, thanks! This is a complex case (see below), at least not one that can be solved by automatically closing bug reports upon commits :-O Sorry for the confusion I added by pointing out the wrong example, a quick look at many bug reports made by Vagrant Cascadian last Fri and Sat shows that many (all?) of the closed bug reports was some sort of "duplication" of others. Vagrant please can you tell us? Let's call this a "triaging issue" and is a class of "management issue" that should be discussed in a separate thread (this one), to stay focused on the subject. Probably missing to "manually" close bugs after a patch set has been committed is not /the worst/ management issue currently, but IMO it's better to just "commit and forget it" :-) Probably /triaging/ is one of the most critical bug report management issue, it should be addressed properly: - by finding or developing triage helping tools to automate what is possible - by having more people do the (boring) task of triaging bugs Probably we should consider adding one more contributor "level": the triager; the triager is _not_ a reviewer (obviously not a committer), even if she could /also/ be a reviewer and/or committer. The point is that triaging is a (boring) activity that Someone™ should perform, sooner or later (as Vagrant did with the bug reports mentioned above). Obviously a contrubutor could (should) also be a self-triager, if she wants help making the review process more efficient. > There were at least two different issues with patches for adding > rofi-wayland [1] and [2]. > > 1: https://issues.guix.gnu.org/53717 This was to add (version "1.7.3+wayland1") and AFAIU was never committed > 2: https://issues.guix.gnu.org/59241 This issue have 2 patches: [PATCH 1/2] gnu: rofi: Update to 1.7.5. [PATCH 2/2] gnu: Add rofi-wayland. A (self-)triager should have noted two problems in that patch set submisison: 1. patch contains two set of unrelated changes (?) Point 12. of the "check list" in 22.6 Submitting Patches https://guix.gnu.org/en/manual/devel/en/html_node/Submitting-Patches.html says: --8<---------------cut here---------------start------------->8--- Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower. Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package. --8<---------------cut here---------------end--------------->8--- Is the addition of rofi-wayland related to the upgrade of rofi? ...probably yes, but... 2. multiple patches without cover letter https://guix.gnu.org/en/manual/devel/en/html_node/Sending-a-Patch-Series.html#Multiple-Patches-1 --8<---------------cut here---------------start------------->8--- When sending a series of patches, it’s best to send a Git “cover letter” first, to give reviewers an overview of the patch series. --8<---------------cut here---------------end--------------->8--- Missing a cover letter means that triaging is harder. The issue title is from the first patch (gnu: rofi: Update to 1.7.5.) and IMO is somewhat confusing because the title is what appears in search results (Mumi, Debbugs, Emacs Debbugs). If the contrubutor sent a cover letter with subject "gnu: Update rofi and Add rofi-wayland (inherinting)", possibly with a little bit of explanation in the message body, the (now undone) early triaging would have been easier. How do we solve such bug management class of problems? WDYT? > One improvement I can think of here is that QA should highlight that > some of the changes in each of those patch series can be found in > another patch series. ...and tag both bugs as related on Debbugs? This would be very helful for triagers, a very helping tool. ...but we need triagers, IMO > That would then make it easier to both issues to be closed if that's > appropriate. I guess you mean that a (human) triager can find related bugs with the help of such a tool. I doubt that related issues should be closed without human intervention, false positives are very dangerous in this case. WDYT? Thanks! Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Triaging issues (was Automatically close bug report when a patch is committed) 2023-09-07 9:38 ` [workflow] Triaging issues (was Automatically close bug report when a patch is committed) Giovanni Biscuolo @ 2023-09-07 15:41 ` Vagrant Cascadian 2023-09-11 7:37 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-07 15:41 UTC (permalink / raw) To: Giovanni Biscuolo, Christopher Baines; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 8270 bytes --] On 2023-09-07, Giovanni Biscuolo wrote: > Christopher Baines <mail@cbaines.net> writes: > >> Giovanni Biscuolo <g@xelera.eu> writes: > > [...] > >>> 20 bugs with messages similar to this one: >>> >>> >>> rofi-wayland was added in: >>> >>> 04b5450ad852735dfa50961d3afc789b2e52b407 gnu: Add rofi-wayland. >>> >>> And updated to a newer version in: >>> >>> 19c042ddf80533ba7a615b424dedf9647ca65b0f gnu: rofi-wayland: Update to 1.7.5+wayland2. >>> >>> Marking as done. >>> >>> (https://yhetil.org/guix/87zg25r0id.fsf@wireframe/) >>> >>> IMO we need a way automatically close this kind of bug reports... or am >>> I missing something? >> >> I think the example you give doesn't relate to what you're looking at >> below (a post-receive hook). > > Oh I see, thanks! > > This is a complex case (see below), at least not one that can be solved > by automatically closing bug reports upon commits :-O > > Sorry for the confusion I added by pointing out the wrong example, a > quick look at many bug reports made by Vagrant Cascadian last Fri and > Sat shows that many (all?) of the closed bug reports was some sort of > "duplication" of others. Vagrant please can you tell us? Yes, I think a fair amount was from "duplicate" patches. From memory, I would say many, if not most, of the bugs were due to one person submitting a patch, and someone else independently committing the same or newer version. Part of the problem with duplicates may be the difficulty of reviewing a very long poorly curated list of bugs... before issues.guix.gnu.org was a thing, it was difficult to actually find prior submissions... and it is still long enough that it is not easy. > Probably /triaging/ is one of the most critical bug report management > issue, it should be addressed properly: > > - by finding or developing triage helping tools to automate what is > possible > > - by having more people do the (boring) task of triaging bugs > > Probably we should consider adding one more contributor "level": the > triager; the triager is _not_ a reviewer (obviously not a committer), > even if she could /also/ be a reviewer and/or committer. > > The point is that triaging is a (boring) activity that Someone™ should > perform, sooner or later (as Vagrant did with the bug reports mentioned > above). I was definitely in the mood for "let me get some relatively easy, if boring things done" the other day. :) > Obviously a contrubutor could (should) also be a self-triager, if she > wants help making the review process more efficient. FWIW, I think I used the search: https://issues.guix.gnu.org/search?query=is%3Aopen+tag%3Apatch Sorted by date, and searched for the phrase "update" in the subject, as old bugs proposing to update to a newer version were and are, well, likely candidates for culling. :) Other tooling that could further help with the process would be valuable. >> There were at least two different issues with patches for adding >> rofi-wayland [1] and [2]. >> >> 1: https://issues.guix.gnu.org/53717 > > This was to add (version "1.7.3+wayland1") and AFAIU was never committed Right, I marked this (and several others) as done because it was effectively superseded by newer versions in current guix. There were sometimes some things that were not merged, and I made judgement calls on weather they still needed to be, such as a tweak to the packaging that was maybe only needed to get an older version to build, but the newer version was building correctly. >> 2: https://issues.guix.gnu.org/59241 > > This issue have 2 patches: > > [PATCH 1/2] gnu: rofi: Update to 1.7.5. > > [PATCH 2/2] gnu: Add rofi-wayland. > > A (self-)triager should have noted two problems in that patch set > submisison: > > 1. patch contains two set of unrelated changes (?) > > Point 12. of the "check list" in 22.6 Submitting Patches > https://guix.gnu.org/en/manual/devel/en/html_node/Submitting-Patches.html says: > > --8<---------------cut here---------------start------------->8--- > > Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower. > > Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package. > > --8<---------------cut here---------------end--------------->8--- That is a good reminder, there was at least one bug that seemed like a collection of "music" packages, and over time more packages were added, even after the original packages in the bug title were merged. > Is the addition of rofi-wayland related to the upgrade of rofi? > > ...probably yes, but... > > 2. multiple patches without cover letter > > https://guix.gnu.org/en/manual/devel/en/html_node/Sending-a-Patch-Series.html#Multiple-Patches-1 > > --8<---------------cut here---------------start------------->8--- > > When sending a series of patches, it’s best to send a Git “cover letter” first, to give reviewers an overview of the patch series. > > --8<---------------cut here---------------end--------------->8--- > > Missing a cover letter means that triaging is harder. Indeed. Retitling can be used to help after the fact, at least. > The issue title is from the first patch (gnu: rofi: Update to 1.7.5.) > and IMO is somewhat confusing because the title is what appears in > search results (Mumi, Debbugs, Emacs Debbugs). I retitled several bugs as well, to at least update the current status, as a few had some patches merged or superseded, but there were outstanding issues not yet merged. > If the contrubutor sent a cover letter with subject "gnu: Update rofi > and Add rofi-wayland (inherinting)", possibly with a little bit of > explanation in the message body, the (now undone) early triaging would > have been easier. Yes, cover letters would help significantly with triaging these more complicated cases. That said, sometimes over the course of review, it becomes clear that additional changes are needed, and it would be helpful to retitle the bug in these cases. I saw at least one bug which started out as "Add XYZ" and evolved into "Update ZXY, ... Add ABC, Add XYZ" and it would not have made sense to make them separate patch submissions. > How do we solve such bug management class of problems? WDYT? > >> One improvement I can think of here is that QA should highlight that >> some of the changes in each of those patch series can be found in >> another patch series. > > ...and tag both bugs as related on Debbugs? Not sure how to mark related, but bugs can be marked as blocking other bugs... this would make some sense in splitting patch series into multiple bugs, marking blocking bugs for patches that are dependent on others. But I suspect that would be painful in practice in many cases. > This would be very helful for triagers, a very helping tool. > > ...but we need triagers, IMO > >> That would then make it easier to both issues to be closed if that's >> appropriate. > > I guess you mean that a (human) triager can find related bugs with the > help of such a tool. > > I doubt that related issues should be closed without human intervention, > false positives are very dangerous in this case. With old patches, honestly, it might bring attention back to an issue to close it. When I get a bug closed notification, I definitely check to make sure the issue is actually fixed, or did not introduce other surprises... I am not saying I think we should just blindly close old bugs with patches, but processes that err slightly on the side of closing old ones, perhaps with a message "please verify if the issue is actually closed, and reopen in case we have made a mistake." might be reasonable. Obviously, if an automated process can automatically rebase and it still applies, this might be an indication that it still requires human review and tag it as such... although occasionally a patch might propose adding something to gnu/packages/abc.scm but actually gets merged into gnu/packages/xyz.scm, and this might rebase "fine". live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Triaging issues (was Automatically close bug report when a patch is committed) 2023-09-07 15:41 ` Vagrant Cascadian @ 2023-09-11 7:37 ` Giovanni Biscuolo 2023-09-11 15:29 ` Simon Tournier 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-11 7:37 UTC (permalink / raw) To: Vagrant Cascadian, Christopher Baines; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 9880 bytes --] Hello Vagrant, sorry for the delay with this reply (maybe meanwhile someone else have already done all or some of my considerations) Vagrant Cascadian <vagrant@debian.org> writes: [...] >> The point is that triaging is a (boring) activity that Someone™ should >> perform, sooner or later (as Vagrant did with the bug reports mentioned >> above). > > I was definitely in the mood for "let me get some relatively easy, if > boring things done" the other day. :) boring but very much useful: thank you! ...and thanks to all the other people that sometimes are doing this job! >> Obviously a contrubutor could (should) also be a self-triager, if she >> wants help making the review process more efficient. > > FWIW, I think I used the search: > > https://issues.guix.gnu.org/search?query=is%3Aopen+tag%3Apatch > > Sorted by date, and searched for the phrase "update" in the subject, as > old bugs proposing to update to a newer version were and are, well, > likely candidates for culling. :) > Other tooling that could further help with the process would be > valuable. A more useful mumi (web or CLI) query to search for duplicates would be: is:open tag:patch subject:<package> With a caveat: searched subject term could not be in the search results, since it gives bug titles, but in the /thread/ of a found bug, see bug #65809 for details WDYT? [...] > There were sometimes some things that were not merged, and I made > judgement calls on weather they still needed to be, such as a tweak to > the packaging that was maybe only needed to get an older version to > build, but the newer version was building correctly. I see and for this reason I feel triaging (for example to merge or close bugs) cannot be automated, it needs judgement [...] >> When sending a series of patches, it’s best to send a Git “cover letter” first, to give reviewers an overview of the patch series. >> >> --8<---------------cut here---------------end--------------->8--- >> >> Missing a cover letter means that triaging is harder. > > Indeed. Retitling can be used to help after the fact, at least. Right: retitling could be one of the (possibly early) triaging actions >> The issue title is from the first patch (gnu: rofi: Update to 1.7.5.) >> and IMO is somewhat confusing because the title is what appears in >> search results (Mumi, Debbugs, Emacs Debbugs). > > I retitled several bugs as well, to at least update the current status, > as a few had some patches merged or superseded, but there were > outstanding issues not yet merged. I recently learned not to confuse "subject" with "bug title"... I feel this is something contributors should always consider >> If the contrubutor sent a cover letter with subject "gnu: Update rofi >> and Add rofi-wayland (inherinting)", possibly with a little bit of >> explanation in the message body, the (now undone) early triaging would >> have been easier. > > Yes, cover letters would help significantly with triaging these more > complicated cases. > > That said, sometimes over the course of review, it becomes clear that > additional changes are needed, and it would be helpful to retitle the > bug in these cases. > > I saw at least one bug which started out as "Add XYZ" and evolved into > "Update ZXY, ... Add ABC, Add XYZ" and it would not have made sense to > make them separate patch submissions. yes: retitling is an important (re)triaging activity >> How do we solve such bug management class of problems? WDYT? >> >>> One improvement I can think of here is that QA should highlight that >>> some of the changes in each of those patch series can be found in >>> another patch series. >> >> ...and tag both bugs as related on Debbugs? > > Not sure how to mark related, Uh I see [1]: AFAIU the only available links between bugs are [2]: 1. merge bugnumber bugnumber ... --8<---------------cut here---------------start------------->8--- Merges two or more bug reports. When reports are merged opening, closing, marking or unmarking as forwarded and reassigning any of the bugs to a new package will have an identical effect on all of the merged reports. [...] Merger is like equality: it is reflexive, transitive and symmetric. Merging reports causes a note to appear on each report's logs; on the WWW pages this includes links to the other bugs. Merged reports are all expired simultaneously, and only when all of the reports each separately meet the criteria for expiry. --8<---------------cut here---------------end--------------->8--- 2. block|unblock bugnumber by|with bug [ bug ... ] --8<---------------cut here---------------start------------->8--- Use to note that one bug blocks another bug from being fixed. The first listed bug is the one being blocked, and it is followed by the bug or bugs that are blocking it. Use unblock to unblock a bug. --8<---------------cut here---------------end--------------->8--- Unfortunately "merge" is not good for two or more bugs containing "duplicated" patches. Could "Usertags" pseudo-header be used someway to add "extended" links with other bug reports? Something like: --8<---------------cut here---------------start------------->8--- Usertags: parent_<bugnum> --8<---------------cut here---------------end--------------->8--- Anyway using this approach makes bug managing (much?) _harder_ because: 1. we have no automatic mechanism to mark the referenced bug relationship; e.g. if I add to #100 the bug #101 as parent, bug #101 should have #100 as child, and so on for each relationship. 2. managing pseudo-headers cannot be done via server-control commands [2] > but bugs can be marked as blocking other bugs... this would make some > sense in splitting patch series into multiple bugs, marking blocking > bugs for patches that are dependent on others. But I suspect that > would be painful in practice in many cases. In my experience splitting bugs is often useful when managing bug reports, because you know... ouch; but splitting is also une of the most painful activity to do, with _every_ bug report tracking system I know of. AFAIU splitting bug reports in Debbugs can be done with the clone command [2]: --8<---------------cut here---------------start------------->8--- clone bugnumber NewID [ new IDs ... ] The clone control command allows you to duplicate a bug report. It is useful in the case where a single report actually indicates that multiple distinct bugs have occurred. "New IDs" are negative numbers, separated by spaces, which may be used in subsequent control commands to refer to the newly duplicated bugs. A new report is generated for each new ID. Example usage: clone 12345 -1 -2 reassign -1 foo retitle -1 foo: foo sucks reassign -2 bar retitle -2 bar: bar sucks when used with foo severity -2 wishlist clone 123456 -3 reassign -3 foo retitle -3 foo: foo sucks merge -1 -3 --8<---------------cut here---------------end--------------->8--- Doable but not much straightforward, it wold be much better if bugs were splitted my submitter (but in my experience sometimes submitters are lazy :-) ) [...] >>> That would then make it easier to both issues to be closed if that's >>> appropriate. >> >> I guess you mean that a (human) triager can find related bugs with the >> help of such a tool. >> >> I doubt that related issues should be closed without human intervention, >> false positives are very dangerous in this case. > > With old patches, honestly, it might bring attention back to an issue to > close it. When I get a bug closed notification, I definitely check to > make sure the issue is actually fixed, or did not introduce other > surprises... I someway agree with you, but this "let's close old bugs, just reopen it if needed" should probably be a scheduled _amd_ coordinated effort between Guix contributors, a sort of meta-hackaton for Guix bugs :-D > I am not saying I think we should just blindly close old bugs with > patches, but processes that err slightly on the side of closing old > ones, perhaps with a message "please verify if the issue is actually > closed, and reopen in case we have made a mistake." might be > reasonable. I agree, it's reasonable IMO. IMO we should better define what does it mean "old patch" and provide an easy way to find them; maybe a plain (is:open and tag:patch) https://issues.guix.gnu.org/search?query=is%3Aopen+tag%3Apatch is enough, but (is:open and tag:patch,moreinfo) is better: https://issues.guix.gnu.org/search?query=is%3Aopen+tag%3Apatch%2Cmoreinfo or even filtered if older than 5m, because "The bug will be closed if the submitter doesn't provide more information in a reasonable (few months) timeframe." [3] We could also add a feature to have "saved searches" in mumi web and CLI interfaces to help with this task. Anyway, whatever we decide to do with old bugs, IMO we should improve Guix bug reporting management by having more people (I'm going to volunteer, as soon as I get all the right tools and knowledge) performing triaging activity and people working on bug reports making better use of the tools and guidelines described in [3] ...maybe we should add some paragraph on this in the Guix manual, also. WDYT? [...] Thanks! Gio' [1] I was thinking of what can be done in Request-tracker, which I know better; it allows to track this kind of links: Depends on, Depended on by, Parents, Children, Refers to, Referred to by [2] https://debbugs.gnu.org/server-control.html [3] https://debbugs.gnu.org/Developer.html -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Triaging issues (was Automatically close bug report when a patch is committed) 2023-09-11 7:37 ` Giovanni Biscuolo @ 2023-09-11 15:29 ` Simon Tournier 2023-09-11 17:08 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-11 15:29 UTC (permalink / raw) To: Giovanni Biscuolo, Vagrant Cascadian, Christopher Baines; +Cc: guix-devel Hi, On Mon, 11 Sep 2023 at 09:37, Giovanni Biscuolo <g@xelera.eu> wrote: > A more useful mumi (web or CLI) query to search for duplicates would be: > > is:open tag:patch subject:<package> [...] > is enough, but (is:open and tag:patch,moreinfo) is better: > > https://issues.guix.gnu.org/search?query=is%3Aopen+tag%3Apatch%2Cmoreinfo > > or even filtered if older than 5m, because "The bug will be closed if > the submitter doesn't provide more information in a reasonable (few > months) timeframe." [3] > > We could also add a feature to have "saved searches" in mumi web and CLI > interfaces to help with this task. Well, the Mumi CLI, “guix shell mumi” and then “mumi search”, should do act as “saved searches”. Although it does not work for me. Note that Debian provides some BTS tools, as pointed here, Debbugs CLI client (was Re: Mumi CLI client (was: How can we decrease the cognitive overhead for contributors?))) Simon Tournier <zimon.toutoune@gmail.com> Tue, 05 Sep 2023 10:58:50 +0200 id:86msy1uhbp.fsf@gmail.com https://yhetil.org/guix/86msy1uhbp.fsf@gmail.com https://lists.gnu.org/archive/html/guix-devel/2023-09 Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Triaging issues (was Automatically close bug report when a patch is committed) 2023-09-11 15:29 ` Simon Tournier @ 2023-09-11 17:08 ` Giovanni Biscuolo 0 siblings, 0 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-11 17:08 UTC (permalink / raw) To: Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1167 bytes --] Hi Simon Simon Tournier <zimon.toutoune@gmail.com> writes: [...] >> is enough, but (is:open and tag:patch,moreinfo) is better: [...] >> We could also add a feature to have "saved searches" in mumi web and CLI >> interfaces to help with this task. > > Well, the Mumi CLI, “guix shell mumi” and then “mumi search”, should do > act as “saved searches”. I don't understand; I mean for example having a configuration file where we can save searches, something like: --8<---------------cut here---------------start------------->8--- [patches-to-be-checked] "is:open and tag:patch,moreinfo" --8<---------------cut here---------------end--------------->8--- and then "mumi search --saved patches-to-be-checked" ...something like notmuch, I mean. > Although it does not work for me. Please help improving mumi with bug reports or patches if you have not already done > Note that Debian provides some BTS tools, as pointed here, Yes I saw your message, useful thanks; we should package it and maybe add that functions to mumi, one by one Thanks, Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-06 8:28 [workflow] Automatically close bug report when a patch is committed Giovanni Biscuolo 2023-09-06 9:45 ` Christopher Baines @ 2023-09-06 16:14 ` Maxim Cournoyer 2023-09-07 0:23 ` Simon Tournier 2023-09-07 10:40 ` Giovanni Biscuolo 1 sibling, 2 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-06 16:14 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: guix-devel, Vagrant Cascadian Hi Giovanni, Giovanni Biscuolo <g@xelera.eu> writes: > Hello, > > often bug reports related to patches are left open even after the > patch/patchset have been applied, the last example is a batch of Debbugs > manual gardening from Vagrant last Fri and Sat when he closed more than > 20 bugs with messages similar to this one: [...] > IMO we need a way automatically close this kind of bug reports... or am > I missing something? > > Let's avoid manual gardening as much as possible! :-) I like the idea! > The first thing we need is a server side git post-receive hook on > Savannah, I've opened the sr#110928 support request: > https://savannah.nongnu.org/support/index.php?110928 It's something that the Savannah folks would need to maintain themselves, right? > When I asket I though the best way would be to scan for a string like > "Close #<bug-number>" in the commit message (the committer should add > such a string) but probably this can be avoided: the bug can be closed > when a patch is committed to one of the listed official brances (master, > core-updates, etc.) You mean by simply matching the subject? Maybe that could work. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-06 16:14 ` [workflow] Automatically close bug report when a patch is committed Maxim Cournoyer @ 2023-09-07 0:23 ` Simon Tournier 2023-09-07 2:01 ` Maxim Cournoyer 2023-09-07 11:08 ` Giovanni Biscuolo 2023-09-07 10:40 ` Giovanni Biscuolo 1 sibling, 2 replies; 69+ messages in thread From: Simon Tournier @ 2023-09-07 0:23 UTC (permalink / raw) To: Maxim Cournoyer, Giovanni Biscuolo; +Cc: guix-devel, Vagrant Cascadian Hi, On Wed, 06 Sep 2023 at 12:14, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: >> Let's avoid manual gardening as much as possible! :-) > > I like the idea! I think that automatizing is not trivial. Sadly. There are many corner cases: 1. series as attachement 2. not all the series is applied 3. commit message had been tweaked 4. etc. The potential issue is the number of false-positive; closing and the submission is not applied. Maybe patchwork already running (I think) could help, trying to regularly rebase the branch dedicated to the submission on the top of master, then if all is fine, somehow the two heads from the master branch and the dedicated branch should match, and it would indicate the patches are included and it is safe to close. More or less. :-) That’s said, I always find annoying to loose the track between the Git history and the discussion that happened in the tracker. Sometimes, rational of some details of the implementation had been discussed in the tracker and it is impossible to find then back. Therefore, I would be in favor to add ’Close #1234’ in the commit message, say the first one from the series tracked by #1234. Doing so, it would ease automatic management of guix-patches. However, it would add again some burden on committer shoulder. Similarly, we are already adding in the commit message something like ’Fixes <https://issues.guix.gnu.org/issue/1234>’. And that could be used for closing. Again, the concern is about false-positive; closing when it should not be. Well, I think that automatizing is not trivial. :-) Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 0:23 ` Simon Tournier @ 2023-09-07 2:01 ` Maxim Cournoyer 2023-09-07 9:58 ` Simon Tournier 2023-09-07 13:11 ` Giovanni Biscuolo 2023-09-07 11:08 ` Giovanni Biscuolo 1 sibling, 2 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-07 2:01 UTC (permalink / raw) To: Simon Tournier; +Cc: Giovanni Biscuolo, guix-devel, Vagrant Cascadian Hi, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi, > > On Wed, 06 Sep 2023 at 12:14, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >>> Let's avoid manual gardening as much as possible! :-) >> >> I like the idea! > > I think that automatizing is not trivial. Sadly. > > There are many corner cases: > > 1. series as attachement > 2. not all the series is applied > 3. commit message had been tweaked > 4. etc. > > The potential issue is the number of false-positive; closing and the > submission is not applied. > > Maybe patchwork already running (I think) could help, trying to > regularly rebase the branch dedicated to the submission on the top of > master, then if all is fine, somehow the two heads from the master > branch and the dedicated branch should match, and it would indicate the > patches are included and it is safe to close. More or less. :-) We could use Gerrit's commit hook that adds a unique ID as a git trailer. Then it should become possible to 1. Check if all items of a series have appeared in the git history 2. If so, close the associated issue if it was still open -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 2:01 ` Maxim Cournoyer @ 2023-09-07 9:58 ` Simon Tournier 2023-09-09 23:43 ` Maxim Cournoyer 2023-09-07 13:11 ` Giovanni Biscuolo 1 sibling, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-07 9:58 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: Giovanni Biscuolo, guix-devel, Vagrant Cascadian Hi, On Wed, 06 Sep 2023 at 22:01, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > We could use Gerrit's commit hook that adds a unique ID as a git > trailer. Then it should become possible to Do we still already have Gerrit running? Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 9:58 ` Simon Tournier @ 2023-09-09 23:43 ` Maxim Cournoyer 0 siblings, 0 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-09 23:43 UTC (permalink / raw) To: Simon Tournier; +Cc: Giovanni Biscuolo, guix-devel, Vagrant Cascadian Hi Simon, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi, > > On Wed, 06 Sep 2023 at 22:01, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >> We could use Gerrit's commit hook that adds a unique ID as a git >> trailer. Then it should become possible to > > Do we still already have Gerrit running? I was not suggesting to host Gerrit, simply to borrow its git commit hook, which inserts a unique ID in the commit message (as a git trailer), which can then be used to keep track of a commit even when it's rebased or amended. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 2:01 ` Maxim Cournoyer 2023-09-07 9:58 ` Simon Tournier @ 2023-09-07 13:11 ` Giovanni Biscuolo 2023-09-09 23:39 ` Maxim Cournoyer 1 sibling, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-07 13:11 UTC (permalink / raw) To: Maxim Cournoyer, Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1967 bytes --] Hi Maxim, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > Simon Tournier <zimon.toutoune@gmail.com> writes: [...] >> Maybe patchwork already running (I think) could help, trying to >> regularly rebase the branch dedicated to the submission on the top of >> master, then if all is fine, somehow the two heads from the master >> branch and the dedicated branch should match, and it would indicate the >> patches are included and it is safe to close. More or less. :-) > > We could use Gerrit's commit hook that adds a unique ID as a git > trailer. Do you mean "commit-msg" hook as documented here: https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html ? --8<---------------cut here---------------start------------->8--- The Gerrit Code Review supplied implementation of this hook is a short shell script which automatically inserts a globally unique Change-Id tag in the footer of a commit message. When present, Gerrit uses this tag to track commits across cherry-picks and rebases. --8<---------------cut here---------------end--------------->8--- > Then it should become possible to > > 1. Check if all items of a series have appeared in the git history > 2. If so, close the associated issue if it was still open Thinking out loud: a. each contributed patch will have a unique Change-Id, persistent across rebases (and git commit --amend), and every new patch version (produced during patch revision) will have the same Change-Id; this is valid for all commits in a patch set b. when all "Change-Id"s of patches contained in a patch set are listed in the git history (of one of the official branches) the associated issue can be closed c. how do we get the issue number of a patch containing "Change-Id"? [1] Did I miss something? Thanks, Gio' [1] right now how do we get the issue number of a committed patch? -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 13:11 ` Giovanni Biscuolo @ 2023-09-09 23:39 ` Maxim Cournoyer 2023-09-11 7:53 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-09 23:39 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: Simon Tournier, guix-devel Hi Giovanni, Giovanni Biscuolo <g@xelera.eu> writes: [...] >> We could use Gerrit's commit hook that adds a unique ID as a git >> trailer. > > Do you mean "commit-msg" hook as documented here: > https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html > ? > > > The Gerrit Code Review supplied implementation of this hook is a short shell script which automatically inserts a globally unique Change-Id tag in the footer of a commit message. When present, Gerrit uses this tag to track commits across cherry-picks and rebases. > >> Then it should become possible to >> >> 1. Check if all items of a series have appeared in the git history >> 2. If so, close the associated issue if it was still open > > Thinking out loud: > > a. each contributed patch will have a unique Change-Id, persistent > across rebases (and git commit --amend), and every new patch version > (produced during patch revision) will have the same Change-Id; this is > valid for all commits in a patch set Correct. > b. when all "Change-Id"s of patches contained in a patch set are listed > in the git history (of one of the official branches) the associated > issue can be closed That was my idea. > c. how do we get the issue number of a patch containing "Change-Id"? [1] We'd have to search through the currently opened patches issues; I assume using a tool like the 'mumi' command we already have could do that. > [1] right now how do we get the issue number of a committed patch? There's no direct mapping. You have to search by subject name. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-09 23:39 ` Maxim Cournoyer @ 2023-09-11 7:53 ` Giovanni Biscuolo 2023-09-11 14:01 ` Maxim Cournoyer 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-11 7:53 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: Simon Tournier, guix-devel [-- Attachment #1: Type: text/plain, Size: 1350 bytes --] Hi Maxim, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: [...] >> c. how do we get the issue number of a patch containing "Change-Id"? [1] > > We'd have to search through the currently opened patches issues; I > assume using a tool like the 'mumi' command we already have could do > that. It would be fantastic if we find a way for mumi to index (via xapian) the "Change-Id", enabling us to provide a query like this: (is:open and change-id:<ID>). I don'r know if this is doable by mumi alone or if it needs Debbugs to be able to manage the new "Change-Id" attribute. If there is enough consensus I volunteer to collect ideas and send a feature request to the mumi and/or Debbugs devels (if we need Debbugs patches I guess it will be a long term goal) >> [1] right now how do we get the issue number of a committed patch? > > There's no direct mapping. You have to search by subject name. IMO a link like this is _very_ useful in helping bug tracking management (and also for historians :-) ) and we should find a way to manage that. Also for this reason (other that possibly automated bug closing) IMO committers should add a "Fixes: <namespace>#<bugnum>" signature (or what is called in Git) to each commit with an associeted bug report. WDYT? -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 7:53 ` Giovanni Biscuolo @ 2023-09-11 14:01 ` Maxim Cournoyer 2023-09-11 17:10 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-11 14:01 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: Simon Tournier, guix-devel Hi Giovanni, Giovanni Biscuolo <g@xelera.eu> writes: > Hi Maxim, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > > [...] > >>> c. how do we get the issue number of a patch containing "Change-Id"? [1] >> >> We'd have to search through the currently opened patches issues; I >> assume using a tool like the 'mumi' command we already have could do >> that. > > It would be fantastic if we find a way for mumi to index (via xapian) > the "Change-Id", enabling us to provide a query like this: (is:open and > change-id:<ID>). I don'r know if this is doable by mumi alone or if it > needs Debbugs to be able to manage the new "Change-Id" attribute. > > If there is enough consensus I volunteer to collect ideas and send a > feature request to the mumi and/or Debbugs devels (if we need Debbugs > patches I guess it will be a long term goal) I don't think any changes to Debbugs would be necessary. Mumi is already able to parse mail headers -- parsing a git trailer should be just as simple. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 14:01 ` Maxim Cournoyer @ 2023-09-11 17:10 ` Giovanni Biscuolo 0 siblings, 0 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-11 17:10 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: Simon Tournier, guix-devel [-- Attachment #1: Type: text/plain, Size: 574 bytes --] Hi Maxim, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: [...] >> If there is enough consensus I volunteer to collect ideas and send a >> feature request to the mumi and/or Debbugs devels (if we need Debbugs >> patches I guess it will be a long term goal) > > I don't think any changes to Debbugs would be necessary. Mumi is > already able to parse mail headers -- parsing a git trailer should be > just as simple. You are right, I'll try to file some feature request for mumi. Thanks, Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 0:23 ` Simon Tournier 2023-09-07 2:01 ` Maxim Cournoyer @ 2023-09-07 11:08 ` Giovanni Biscuolo 2023-09-07 11:58 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 1 sibling, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-07 11:08 UTC (permalink / raw) To: Simon Tournier; +Cc: guix-devel, Maxim Cournoyer [-- Attachment #1: Type: text/plain, Size: 3163 bytes --] Hi Simon, Simon Tournier <zimon.toutoune@gmail.com> writes: > On Wed, 06 Sep 2023 at 12:14, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >>> Let's avoid manual gardening as much as possible! :-) >> >> I like the idea! > > I think that automatizing is not trivial. Sadly. If we "restrict" the automation to "close the bugs that are listed in the commit message" do you think it's doable? [...] > The potential issue is the number of false-positive; In the context given above, the only way to have a false positive is that the committer give a wrong bug number, right? > closing and the submission is not applied. I don't understand: what do you mean by "submission"? By design: --8<---------------cut here---------------start------------->8--- The post-receive hook runs after the entire process is completed and can be used to update other services or notify users. --8<---------------cut here---------------end--------------->8--- (https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) In this case the "other service update" is "close bug <number>" and is guaranteed to be done after the commit is applied. > Maybe patchwork already running (I think) could help, trying to > regularly rebase the branch dedicated to the submission on the top of > master, then if all is fine, somehow the two heads from the master > branch and the dedicated branch should match, and it would indicate the > patches are included and it is safe to close. More or less. :-) I'm lost :-D > That’s said, I always find annoying to loose the track between the Git > history and the discussion that happened in the tracker. Sometimes, > rational of some details of the implementation had been discussed in the > tracker and it is impossible to find then back. Therefore, I would be > in favor to add ’Close #1234’ in the commit message, say the first one > from the series tracked by #1234. Doing so, it would ease automatic > management of guix-patches. However, it would add again some burden on > committer shoulder. I completely agree that (often, seldom?) we miss traceability if we do not link a commit with a bug report (when present) and vice versa (when a bug report is resolved by a series of commit) > Similarly, we are already adding in the commit message something like > ’Fixes <https://issues.guix.gnu.org/issue/1234>’. Is this an informal convention or is this documented somewhere? > And that could be used for closing. Yes, we can use al list of keywords for closing (Closes, Close, Fix, Fixes, etc.), but for the bug report I'd use only a number, the URL really does not matter > Again, the concern is about false-positive; closing when it should not > be. Modulo a programming error in the script, the only way would be to write the wrong bug number after the "keyword" and IMO this is similar write the wrong bug number in the "To:" field when closing a bug via email. > Well, I think that automatizing is not trivial. :-) Not trivial but automatable, IMO :-D Thanks! Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 11:08 ` Giovanni Biscuolo @ 2023-09-07 11:58 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 2023-09-07 13:09 ` Maxim Cournoyer 2023-09-07 13:19 ` Giovanni Biscuolo 0 siblings, 2 replies; 69+ messages in thread From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2023-09-07 11:58 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: Simon Tournier, guix-devel, Maxim Cournoyer Hi Gio', On Thu, Sep 7, 2023 at 4:08 AM Giovanni Biscuolo <g@xelera.eu> wrote: > > close the bugs that are listed in > the commit message Perhaps you'd like to see Debian's hook [1] for the Salsa web forge (which is controversially based on Gitlab). The regex does not work properly for more than two bugs, however, so here is my proposed fix. [2] The merge request was closed automatically when I began contributing to Guix. Kind regards Felix [1] https://salsa.debian.org/salsa/salsa-webhook/-/blob/997412ad4b1d89fd3227d5409471bdf71abcf863/helpers/bugs.rb#L19 [2] https://salsa.debian.org/salsa/salsa-webhook/-/merge_requests/22 ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 11:58 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2023-09-07 13:09 ` Maxim Cournoyer 2023-09-07 15:52 ` Vagrant Cascadian 2023-09-07 13:19 ` Giovanni Biscuolo 1 sibling, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-07 13:09 UTC (permalink / raw) To: Felix Lechner; +Cc: Giovanni Biscuolo, Simon Tournier, guix-devel [-- Attachment #1: Type: text/plain, Size: 1327 bytes --] Hi, Felix Lechner <felix.lechner@lease-up.com> writes: > Hi Gio', > > On Thu, Sep 7, 2023 at 4:08 AM Giovanni Biscuolo <g@xelera.eu> wrote: >> >> close the bugs that are listed in >> the commit message > > Perhaps you'd like to see Debian's hook [1] for the Salsa web forge > (which is controversially based on Gitlab). > > The regex does not work properly for more than two bugs, however, so > here is my proposed fix. [2] The merge request was closed > automatically when I began contributing to Guix. Did you see my message about integrating a commit-hook similar to what Gerrit uses? It produces unique ID such as: --8<---------------cut here---------------start------------->8--- Change-Id: I9b86781869d80eda347659f0c009b8dfe09bdfd0 --8<---------------cut here---------------end--------------->8--- at the bottom (it's a git trailer) of a commit message. Being unique, these could be used to match if a patch on the tracker has been merged in the master branch. Attached is what the hook looks like. The random 'Change-Id' is generated via --8<---------------cut here---------------start------------->8--- random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | git hash-object --stdin) --8<---------------cut here---------------end--------------->8--- [-- Attachment #2: commit-msg --] [-- Type: application/octet-stream, Size: 2272 bytes --] #!/bin/sh # From Gerrit Code Review 3.6.1 # # Part of Gerrit Code Review (https://www.gerritcodereview.com/) # # Copyright (C) 2009 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -u # avoid [[ which is not POSIX sh. if test "$#" != 1 ; then echo "$0 requires an argument." exit 1 fi if test ! -f "$1" ; then echo "file does not exist: $1" exit 1 fi # Do not create a change id if requested if test "false" = "$(git config --bool --get gerrit.createChangeId)" ; then exit 0 fi if git rev-parse --verify HEAD >/dev/null 2>&1; then refhash="$(git rev-parse HEAD)" else refhash="$(git hash-object -t tree /dev/null)" fi random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | git hash-object --stdin) dest="$1.tmp.${random}" trap 'rm -f "${dest}"' EXIT if ! git stripspace --strip-comments < "$1" > "${dest}" ; then echo "cannot strip comments from $1" exit 1 fi if test ! -s "${dest}" ; then echo "file is empty: $1" exit 1 fi reviewurl="$(git config --get gerrit.reviewUrl)" if test -n "${reviewurl}" ; then if ! git interpret-trailers --parse < "$1" | grep -q '^Link:.*/id/I[0-9a-f]\{40\}$' ; then if ! git interpret-trailers \ --trailer "Link: ${reviewurl%/}/id/I${random}" < "$1" > "${dest}" ; then echo "cannot insert link footer in $1" exit 1 fi fi else # Avoid the --in-place option which only appeared in Git 2.8 # Avoid the --if-exists option which only appeared in Git 2.15 if ! git -c trailer.ifexists=doNothing interpret-trailers \ --trailer "Change-Id: I${random}" < "$1" > "${dest}" ; then echo "cannot insert change-id line in $1" exit 1 fi fi if ! mv "${dest}" "$1" ; then echo "cannot mv ${dest} to $1" exit 1 fi [-- Attachment #3: Type: text/plain, Size: 19 bytes --] -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 13:09 ` Maxim Cournoyer @ 2023-09-07 15:52 ` Vagrant Cascadian 2023-09-09 23:50 ` Maxim Cournoyer 0 siblings, 1 reply; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-07 15:52 UTC (permalink / raw) To: Maxim Cournoyer, Felix Lechner Cc: Giovanni Biscuolo, Simon Tournier, guix-devel [-- Attachment #1: Type: text/plain, Size: 1343 bytes --] On 2023-09-07, Maxim Cournoyer wrote: > Felix Lechner <felix.lechner@lease-up.com> writes: >> On Thu, Sep 7, 2023 at 4:08 AM Giovanni Biscuolo <g@xelera.eu> wrote: >>> >>> close the bugs that are listed in >>> the commit message ... > Did you see my message about integrating a commit-hook similar to what > Gerrit uses? It produces unique ID such as: > > --8<---------------cut here---------------start------------->8--- > Change-Id: I9b86781869d80eda347659f0c009b8dfe09bdfd0 > --8<---------------cut here---------------end--------------->8--- > > at the bottom (it's a git trailer) of a commit message. Being unique, > these could be used to match if a patch on the tracker has been merged > in the master branch. > > Attached is what the hook looks like. The random 'Change-Id' is > generated via > > --8<---------------cut here---------------start------------->8--- > random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | > git hash-object --stdin) > --8<---------------cut here---------------end--------------->8--- That seems like it would only work if the patch was identical, as opposed to a slightly rebased patch on top of newer patches on master? How can you correlate Change-Id to a patch in the tracker? Would it break git commit signatures? live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 15:52 ` Vagrant Cascadian @ 2023-09-09 23:50 ` Maxim Cournoyer 2023-09-11 11:00 ` Simon Tournier 2023-09-13 2:46 ` Vagrant Cascadian 0 siblings, 2 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-09 23:50 UTC (permalink / raw) To: Vagrant Cascadian Cc: Felix Lechner, Giovanni Biscuolo, Simon Tournier, guix-devel Hi Vagrant, Vagrant Cascadian <vagrant@debian.org> writes: [...] >> Did you see my message about integrating a commit-hook similar to what >> Gerrit uses? It produces unique ID such as: >> >> --8<---------------cut here---------------start------------->8--- >> Change-Id: I9b86781869d80eda347659f0c009b8dfe09bdfd0 >> --8<---------------cut here---------------end--------------->8--- >> >> at the bottom (it's a git trailer) of a commit message. Being unique, >> these could be used to match if a patch on the tracker has been merged >> in the master branch. >> >> Attached is what the hook looks like. The random 'Change-Id' is >> generated via >> >> --8<---------------cut here---------------start------------->8--- >> random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | >> git hash-object --stdin) >> --8<---------------cut here---------------end--------------->8--- > > That seems like it would only work if the patch was identical, as > opposed to a slightly rebased patch on top of newer patches on master? > > How can you correlate Change-Id to a patch in the tracker? The Change-Id stays the same unless you manually edit it out of your commit message when amending / rebasing, so the commit hash may change while the Change-Id stays the same. So you can rebase your feature branch on master and share a v2, whose existing commits will have the same Change-Ids (newly added commits would get their own Change-Id trailer). > Would it break git commit signatures? It doesn't impact git commit signatures. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-09 23:50 ` Maxim Cournoyer @ 2023-09-11 11:00 ` Simon Tournier 2023-09-11 13:46 ` Maxim Cournoyer 2023-09-13 2:46 ` Vagrant Cascadian 1 sibling, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-11 11:00 UTC (permalink / raw) To: Maxim Cournoyer, Vagrant Cascadian Cc: Felix Lechner, Giovanni Biscuolo, guix-devel Hi Maxim, On Sat, 09 Sep 2023 at 19:50, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: >>> --8<---------------cut here---------------start------------->8--- >>> random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | >>> git hash-object --stdin) >>> --8<---------------cut here---------------end--------------->8--- >> >> That seems like it would only work if the patch was identical, as >> opposed to a slightly rebased patch on top of newer patches on master? >> >> How can you correlate Change-Id to a patch in the tracker? > > The Change-Id stays the same unless you manually edit it out of your > commit message when amending / rebasing, so the commit hash may change > while the Change-Id stays the same. So you can rebase your feature > branch on master and share a v2, whose existing commits will have the > same Change-Ids (newly added commits would get their own Change-Id > trailer). I am sorry if I am slow but I do not understand. --8<---------------cut here---------------start------------->8--- $ git var GIT_COMMITTER_IDENT Simon Tournier <zimon.toutoune@gmail.com> 1694428674 +0200 $ git var GIT_COMMITTER_IDENT Simon Tournier <zimon.toutoune@gmail.com> 1694428800 +0200 --8<---------------cut here---------------end--------------->8--- Therefore this Change-Id can be different for the same series, depending when I am locally committing. No? And sorry if I am slow but I am also missing your answer about “How can you correlate Change-Id to a patch in the tracker?”. How is this Change-Id correlated to the Debbugs number? Let take an example. :-) Assume Change-Id was used for your submission bug#65280 about Qt. It reads many patches and we have: 02/59 1717c8a233b7fda3a10aabc061168c71317f883e AuthorDate: Fri Aug 11 15:26:14 2023 -0400 59/59 0a77b869322274030c4c0e8315ddea802da44c92 AuthorDate: Tue Aug 15 16:20:10 2023 -0400 From my understanding, 1. GIT_COMMITTER_IDENT depends on time so these two commits would have a different Change-Id, no? 2. How is Change-Id linked to #65280? Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 11:00 ` Simon Tournier @ 2023-09-11 13:46 ` Maxim Cournoyer 2023-09-11 14:11 ` Simon Tournier 0 siblings, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-11 13:46 UTC (permalink / raw) To: Simon Tournier Cc: Vagrant Cascadian, Felix Lechner, Giovanni Biscuolo, guix-devel Hi Simon, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi Maxim, > > On Sat, 09 Sep 2023 at 19:50, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >>>> --8<---------------cut here---------------start------------->8--- >>>> random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | >>>> git hash-object --stdin) >>>> --8<---------------cut here---------------end--------------->8--- >>> >>> That seems like it would only work if the patch was identical, as >>> opposed to a slightly rebased patch on top of newer patches on master? >>> >>> How can you correlate Change-Id to a patch in the tracker? >> >> The Change-Id stays the same unless you manually edit it out of your >> commit message when amending / rebasing, so the commit hash may change >> while the Change-Id stays the same. So you can rebase your feature >> branch on master and share a v2, whose existing commits will have the >> same Change-Ids (newly added commits would get their own Change-Id >> trailer). > > I am sorry if I am slow but I do not understand. > > $ git var GIT_COMMITTER_IDENT > Simon Tournier <zimon.toutoune@gmail.com> 1694428674 +0200 > $ git var GIT_COMMITTER_IDENT > Simon Tournier <zimon.toutoune@gmail.com> 1694428800 +0200 > > Therefore this Change-Id can be different for the same series, depending > when I am locally committing. No? > > And sorry if I am slow but I am also missing your answer about “How can > you correlate Change-Id to a patch in the tracker?”. How is this > Change-Id correlated to the Debbugs number? The commit hook job is simple: generate a unique ID. The magic is that it only adds it *once* to a commit message; if it finds the 'Change-Id:' line already present in it, it won't refresh its value or add a new one. So it's immutable once added, preserved in the Git commit message itself. > Let take an example. :-) Assume Change-Id was used for your submission > bug#65280 about Qt. It reads many patches and we have: > > 02/59 > 1717c8a233b7fda3a10aabc061168c71317f883e > AuthorDate: Fri Aug 11 15:26:14 2023 -0400 > > 59/59 > 0a77b869322274030c4c0e8315ddea802da44c92 > AuthorDate: Tue Aug 15 16:20:10 2023 -0400 > > From my understanding, > > 1. GIT_COMMITTER_IDENT depends on time so these two commits would have > a different Change-Id, no? Correct. The commit hook adds a unique ID *per* commit. > 2. How is Change-Id linked to #65280? Each patch submission ("issue") can have one or multiple commits. We'd know for sure the series was merged (and thus can be closed) when the set of 'Change-Id's its commits contains have all appeared in the master branch. The mapping of Debbugs ID <-> set(change-ids) would need to be established by an external tool such as Mumi (which I think is in a good position to do so). I hope that helps! -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 13:46 ` Maxim Cournoyer @ 2023-09-11 14:11 ` Simon Tournier 2023-09-11 15:33 ` Maxim Cournoyer 0 siblings, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-11 14:11 UTC (permalink / raw) To: Maxim Cournoyer Cc: Vagrant Cascadian, Felix Lechner, Giovanni Biscuolo, guix-devel Hi Maxim, Thanks for the explanations. On Mon, 11 Sept 2023 at 15:47, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > > 2. How is Change-Id linked to #65280? > > Each patch submission ("issue") can have one or multiple commits. We'd > know for sure the series was merged (and thus can be closed) when the > set of 'Change-Id's its commits contains have all appeared in the master > branch. The mapping of Debbugs ID <-> set(change-ids) would need to be > established by an external tool such as Mumi (which I think is in a good > position to do so). I think it is not straightforward to maintain such mapping. Because Mumi needs to implement a way to extract patches; and there is many corner-cases. For instance, I am already using a pre-commit hook, how would it work in this case? Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 14:11 ` Simon Tournier @ 2023-09-11 15:33 ` Maxim Cournoyer 0 siblings, 0 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-11 15:33 UTC (permalink / raw) To: Simon Tournier Cc: Vagrant Cascadian, Felix Lechner, Giovanni Biscuolo, guix-devel Hi, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi Maxim, > > Thanks for the explanations. > > On Mon, 11 Sept 2023 at 15:47, Maxim Cournoyer > <maxim.cournoyer@gmail.com> wrote: > >> > 2. How is Change-Id linked to #65280? >> >> Each patch submission ("issue") can have one or multiple commits. We'd >> know for sure the series was merged (and thus can be closed) when the >> set of 'Change-Id's its commits contains have all appeared in the master >> branch. The mapping of Debbugs ID <-> set(change-ids) would need to be >> established by an external tool such as Mumi (which I think is in a good >> position to do so). > > I think it is not straightforward to maintain such mapping. Because > Mumi needs to implement a way to extract patches; and there is many > corner-cases. It wouldn't need to cover *all* cover cases to be useful; even if it only worked for 'git send-email' series, it'd still be useful. > For instance, I am already using a pre-commit hook, how would it work > in this case? I didn't think about this case, but if it's common, we could have our own default pre-commit hook include an escape hatch (e.g., run all scripts under ~/.config/git/hooks/pre-commit.d) and document that, so that users could still plug their very own pre-commit hooks. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-09 23:50 ` Maxim Cournoyer 2023-09-11 11:00 ` Simon Tournier @ 2023-09-13 2:46 ` Vagrant Cascadian 2023-09-13 15:49 ` Maxim Cournoyer 1 sibling, 1 reply; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-13 2:46 UTC (permalink / raw) To: Maxim Cournoyer Cc: Felix Lechner, Giovanni Biscuolo, Simon Tournier, guix-devel [-- Attachment #1: Type: text/plain, Size: 1289 bytes --] On 2023-09-09, Maxim Cournoyer wrote: > Vagrant Cascadian <vagrant@debian.org> writes: >>> Did you see my message about integrating a commit-hook similar to what >>> Gerrit uses? It produces unique ID such as: >>> >>> --8<---------------cut here---------------start------------->8--- >>> Change-Id: I9b86781869d80eda347659f0c009b8dfe09bdfd0 >>> --8<---------------cut here---------------end--------------->8--- ... >> That seems like it would only work if the patch was identical, as >> opposed to a slightly rebased patch on top of newer patches on master? >> >> How can you correlate Change-Id to a patch in the tracker? > > The Change-Id stays the same unless you manually edit it out of your > commit message when amending / rebasing, so the commit hash may change > while the Change-Id stays the same. So you can rebase your feature > branch on master and share a v2, whose existing commits will have the > same Change-Ids (newly added commits would get their own Change-Id > trailer). Ok, that makes some sense. Although the majority of bugs in the cleanup work I did were actually filed by someone else entirely... so the Change-Id will not help with those. Not a reason not to implement it, but not consistent with some of the triggers of this thread. :) live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 2:46 ` Vagrant Cascadian @ 2023-09-13 15:49 ` Maxim Cournoyer 2023-09-14 16:30 ` Vagrant Cascadian 0 siblings, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-13 15:49 UTC (permalink / raw) To: Vagrant Cascadian Cc: Felix Lechner, Giovanni Biscuolo, Simon Tournier, guix-devel Hi, Vagrant Cascadian <vagrant@debian.org> writes: > On 2023-09-09, Maxim Cournoyer wrote: >> Vagrant Cascadian <vagrant@debian.org> writes: >>>> Did you see my message about integrating a commit-hook similar to what >>>> Gerrit uses? It produces unique ID such as: >>>> >>>> --8<---------------cut here---------------start------------->8--- >>>> Change-Id: I9b86781869d80eda347659f0c009b8dfe09bdfd0 >>>> --8<---------------cut here---------------end--------------->8--- > ... >>> That seems like it would only work if the patch was identical, as >>> opposed to a slightly rebased patch on top of newer patches on master? >>> >>> How can you correlate Change-Id to a patch in the tracker? >> >> The Change-Id stays the same unless you manually edit it out of your >> commit message when amending / rebasing, so the commit hash may change >> while the Change-Id stays the same. So you can rebase your feature >> branch on master and share a v2, whose existing commits will have the >> same Change-Ids (newly added commits would get their own Change-Id >> trailer). > > Ok, that makes some sense. > > Although the majority of bugs in the cleanup work I did were actually > filed by someone else entirely... so the Change-Id will not help with > those. Not a reason not to implement it, but not consistent with some of > the triggers of this thread. :) I doubt the Change-Id idea would help much closing *bugs* on the bug-guix tracker, but I'd expect it to be useful to close already merged (but forgotten on the guix-patches tracker) *patches*. The Change-Ids would be added automatically without the user having to install anything, so from the time it's deployed we'd have a means to identify which patch series were all merged. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 15:49 ` Maxim Cournoyer @ 2023-09-14 16:30 ` Vagrant Cascadian 2023-09-14 18:02 ` Maxim Cournoyer 0 siblings, 1 reply; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-14 16:30 UTC (permalink / raw) To: Maxim Cournoyer Cc: Felix Lechner, Giovanni Biscuolo, Simon Tournier, guix-devel [-- Attachment #1: Type: text/plain, Size: 1798 bytes --] On 2023-09-13, Maxim Cournoyer wrote: > Vagrant Cascadian <vagrant@debian.org> writes: >> On 2023-09-09, Maxim Cournoyer wrote: >>> The Change-Id stays the same unless you manually edit it out of your >>> commit message when amending / rebasing, so the commit hash may change >>> while the Change-Id stays the same. So you can rebase your feature >>> branch on master and share a v2, whose existing commits will have the >>> same Change-Ids (newly added commits would get their own Change-Id >>> trailer). >> >> Ok, that makes some sense. >> >> Although the majority of bugs in the cleanup work I did were actually >> filed by someone else entirely... so the Change-Id will not help with >> those. Not a reason not to implement it, but not consistent with some of >> the triggers of this thread. :) > > I doubt the Change-Id idea would help much closing *bugs* on the > bug-guix tracker, but I'd expect it to be useful to close already merged > (but forgotten on the guix-patches tracker) *patches*. Well, all of the "bugs" I was referring to were submitted patches tracked at debbugs.gnu.org via the issues.guix.gnu.org frontend... weather they were submitted via guix-patches@ or bug-guix@ or NNN@debbugs.gnu.org... :) They are all "bugs" to me, though "issues" seems a bit more neutral in tone and I like it better, but new packages or package updates are just generally wishlist bugs/issues and not inherrently something broken, though they may sometimes fix things or be related to fixes... > The Change-Ids would be added automatically without the user having to > install anything, so from the time it's deployed we'd have a means to > identify which patch series were all merged. Well, they would still have to install the commit hook, or did I miss something? live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 16:30 ` Vagrant Cascadian @ 2023-09-14 18:02 ` Maxim Cournoyer 0 siblings, 0 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-14 18:02 UTC (permalink / raw) To: Vagrant Cascadian Cc: Felix Lechner, Giovanni Biscuolo, Simon Tournier, guix-devel Hello, Le 14 septembre 2023 12:30:41 GMT-04:00, Vagrant Cascadian <vagrant@debian.org> a écrit : […] >> I doubt the Change-Id idea would help much closing *bugs* on the >> bug-guix tracker, but I'd expect it to be useful to close already merged >> (but forgotten on the guix-patches tracker) *patches*. > >Well, all of the "bugs" I was referring to were submitted patches >tracked at debbugs.gnu.org via the issues.guix.gnu.org >frontend... weather they were submitted via guix-patches@ or bug-guix@ >or NNN@debbugs.gnu.org... :) > >They are all "bugs" to me, though "issues" seems a bit more neutral in >tone and I like it better, but new packages or package updates are just >generally wishlist bugs/issues and not inherrently something broken, >though they may sometimes fix things or be related to fixes... Let's call these patch series to avoid confusion :-) > >> The Change-Ids would be added automatically without the user having to >> install anything, so from the time it's deployed we'd have a means to >> identify which patch series were all merged. > >Well, they would still have to install the commit hook, or did I miss >something? Yes! Hooks can be configured upon building the Guix checkout, the same way its now done for our pre-push hook :-) Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 11:58 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 2023-09-07 13:09 ` Maxim Cournoyer @ 2023-09-07 13:19 ` Giovanni Biscuolo 1 sibling, 0 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-07 13:19 UTC (permalink / raw) To: Felix Lechner; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 594 bytes --] Hi Felix, Felix Lechner <felix.lechner@lease-up.com> writes: > Hi Gio', > > On Thu, Sep 7, 2023 at 4:08 AM Giovanni Biscuolo <g@xelera.eu> wrote: >> >> close the bugs that are listed in >> the commit message > > Perhaps you'd like to see Debian's hook [1] for the Salsa web forge > (which is controversially based on Gitlab). [...] Thank you for the reference, it'll be an useful example. A ruby interpreter dependency in this case probably is too much, but we can always rewrite that :-) Happy hacking! Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-06 16:14 ` [workflow] Automatically close bug report when a patch is committed Maxim Cournoyer 2023-09-07 0:23 ` Simon Tournier @ 2023-09-07 10:40 ` Giovanni Biscuolo 2023-09-07 13:49 ` Giovanni Biscuolo 2023-09-07 16:12 ` Vagrant Cascadian 1 sibling, 2 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-07 10:40 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 3261 bytes --] Hi Maxim and Ludovic, I'm including you, Ludovic, becaus in the past you requested a similar git hook installation for Guix and maybe you have more info Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: > Giovanni Biscuolo <g@xelera.eu> writes: [...] OK, I really found the wrong examples as Christopher pointed out, but my proposal still holds valid :-D >> IMO we need a way automatically close this kind of bug reports... or am >> I missing something? >> >> Let's avoid manual gardening as much as possible! :-) > > I like the idea! Fine, let's try to do it! >> The first thing we need is a server side git post-receive hook on >> Savannah, I've opened the sr#110928 support request: >> https://savannah.nongnu.org/support/index.php?110928 > > It's something that the Savannah folks would need to maintain > themselves, right? Forgot to mention that I'm pretty sure a post-receive server side hook is already running (and maintained) for our guix.git repo on Savannah, it's the one that sends notifications to guix-commits mailing list https://lists.gnu.org/mailman/listinfo/guix-commits Maybe that server side hook is common to all Savannah hosted projects, but in this case it sould be configurable per-project since the "From:" and "To:" email headers must be project related. ...or that post-receive hook has been installed the Savannah admin of the Guix project? I don't know what is the policy for "custom" server side web hooks: for sure Someone™ with ssh access to /srv/git/guix.git/hooks/ should /install/ such a script. I've not found any reference to "per project" git hooks in the Savannah documentation (https://duckduckgo.com/?q=git+hook+site%3Ahttps%3A%2F%2Fsavannah.gnu.org%2Fmaintenance%2FFrontPage%2F&ia=web) I have found many support request mentioning git hooks: https://savannah.gnu.org/search/?words1=git+hook&type_of_search=support&Search=Search&exact=1#options In particular, this support threads: - sr #110614: auctex-diffs emails should be in the same format as emacs-diffs https://savannah.nongnu.org/support/?func=detailitem&item_id=110614 - sr #110594: git push returns "hints" about ignored hooks https://savannah.nongnu.org/support/?func=detailitem&item_id=110594 - sr #110482: Install irker hooks in poke.git https://savannah.nongnu.org/support/?func=detailitem&item_id=110482 - sr #109104: Add Git 'update' hook for Guix repositories https://savannah.nongnu.org/support/?func=detailitem&item_id=109104 Makes me believe that server-side hooks are something that must be installed per-project by Savannah sysadmins >> When I asket I though the best way would be to scan for a string like >> "Close #<bug-number>" in the commit message (the committer should add >> such a string) but probably this can be avoided: the bug can be closed >> when a patch is committed to one of the listed official brances (master, >> core-updates, etc.) > > You mean by simply matching the subject? Maybe that could work. Thinking twice maybe it's better to add a "Close: #<bug>" to the commit message. Now... let's find (or develop) such a post-receive hook! Happy hacking! Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 10:40 ` Giovanni Biscuolo @ 2023-09-07 13:49 ` Giovanni Biscuolo 2023-09-27 14:36 ` Christopher Baines 2023-09-07 16:12 ` Vagrant Cascadian 1 sibling, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-07 13:49 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: guix-devel, Christopher Baines [-- Attachment #1: Type: text/plain, Size: 1859 bytes --] Hi, Giovanni Biscuolo <g@xelera.eu> writes: [...] >>> The first thing we need is a server side git post-receive hook on >>> Savannah, I've opened the sr#110928 support request: >>> https://savannah.nongnu.org/support/index.php?110928 >> >> It's something that the Savannah folks would need to maintain >> themselves, right? > > Forgot to mention that I'm pretty sure a post-receive server side hook > is already running (and maintained) for our guix.git repo on Savannah, > it's the one that sends notifications to guix-commits mailing list > https://lists.gnu.org/mailman/listinfo/guix-commits Regarding server side git hooks, I forgot to mention that on 2023-08-31 a new commit-hook is available on Savannah (installation must be requested per-project): git post-receive UDP syndication https://savannah.gnu.org/news/?id=10508 --8<---------------cut here---------------start------------->8--- A new commit-hook is available to install for git repositories that will send a single Datagram via UDP after each successful commit. This can be useful for continuous integration (CI) schemes and elsewise when a push driven model is prefered to (e.g) regularly repolling upstream when changes may or may not have occured. To request installation please open a ticket with the Savannah Administration project: [...] The (sh, GPLv3+) post-receive script source, detail on how the Datagram is structured, and example "receiver" scripts (in perl) can be found here: https://git.sr.ht/~mplscorwin/git-udp-syndicate --8<---------------cut here---------------end--------------->8--- Maybe this hook is useful for comminication with the QA service(s). Maybe this hook could be adapted to close bugs instead of send an UDP datagram. Happy hacking! Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 13:49 ` Giovanni Biscuolo @ 2023-09-27 14:36 ` Christopher Baines 0 siblings, 0 replies; 69+ messages in thread From: Christopher Baines @ 2023-09-27 14:36 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2014 bytes --] Giovanni Biscuolo <g@xelera.eu> writes: > [[PGP Signed Part:Signature made by expired key D37D0EA7CECC3912 Giovanni Biscuolo (Xelera) <g@xelera.eu>]] > Hi, > > Giovanni Biscuolo <g@xelera.eu> writes: > > [...] > >>>> The first thing we need is a server side git post-receive hook on >>>> Savannah, I've opened the sr#110928 support request: >>>> https://savannah.nongnu.org/support/index.php?110928 >>> >>> It's something that the Savannah folks would need to maintain >>> themselves, right? >> >> Forgot to mention that I'm pretty sure a post-receive server side hook >> is already running (and maintained) for our guix.git repo on Savannah, >> it's the one that sends notifications to guix-commits mailing list >> https://lists.gnu.org/mailman/listinfo/guix-commits > > Regarding server side git hooks, I forgot to mention that on 2023-08-31 > a new commit-hook is available on Savannah (installation must be > requested per-project): > > git post-receive UDP syndication > https://savannah.gnu.org/news/?id=10508 > > > A new commit-hook is available to install for git repositories that will send a single Datagram via UDP after each successful commit. This can be useful for continuous integration (CI) schemes and elsewise when a push driven model is prefered to (e.g) regularly repolling upstream when changes may or may not have occured. > > To request installation please open a ticket with the Savannah Administration project: > > [...] > > The (sh, GPLv3+) post-receive script source, detail on how the Datagram is structured, and example "receiver" scripts (in perl) can be found here: > > https://git.sr.ht/~mplscorwin/git-udp-syndicate > > Maybe this hook is useful for comminication with the QA service(s). Not QA directly, but the Guix Data Service would benefit from supporting this, as that could supplement or replace listening for emails to determine when new revisions have been pushed. I've added an entry to the TODO list in the README. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 987 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 10:40 ` Giovanni Biscuolo 2023-09-07 13:49 ` Giovanni Biscuolo @ 2023-09-07 16:12 ` Vagrant Cascadian 2023-09-07 16:28 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 2023-09-09 23:59 ` Liliana Marie Prikler 1 sibling, 2 replies; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-07 16:12 UTC (permalink / raw) To: Giovanni Biscuolo, Maxim Cournoyer; +Cc: guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 1569 bytes --] On 2023-09-07, Giovanni Biscuolo wrote: > Hi Maxim and Ludovic, > Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: >> Giovanni Biscuolo <g@xelera.eu> writes: .. >>> When I asket I though the best way would be to scan for a string like >>> "Close #<bug-number>" in the commit message (the committer should add >>> such a string) but probably this can be avoided: the bug can be closed >>> when a patch is committed to one of the listed official brances (master, >>> core-updates, etc.) >> >> You mean by simply matching the subject? Maybe that could work. > > Thinking twice maybe it's better to add a "Close: #<bug>" to the commit > message. Sooooo... I maintain the guix package in Debian, and want to make sure that whatever bug-closing indicator guix upstream uses, does not end up triggering when I push new upstream versions to salsa.debian.org ... and start incorrectly marking incorrect bug numbers on bugs.debian.org that were meant for debbugs.gnu.org. Currently that is: https://salsa.debian.org/salsa/salsa-webhook/-/blob/997412ad4b1d89fd3227d5409471bdf71abcf863/helpers/bugs.rb#L19 SCAN_BUGS = /Closes:\s+(?:Bug)?#(?:(\d{4,8})\b)(?:,?\s*(?:Bug)?#(?:(\d{4,8})\b))*/i "Close: #<bug>" is a bit nervously close; I could see a stray typo of an extra "s" triggering the occasional very annoying problem. I am much more comfortable with the "Fixes" convention of: Fixes: https://issues.guix.gnu.org/NNN So, while I cannot insist here... I can plead a bit... and a namespaced URL is kind of better in some ways anyways. :) live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 16:12 ` Vagrant Cascadian @ 2023-09-07 16:28 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 2023-09-09 23:59 ` Liliana Marie Prikler 1 sibling, 0 replies; 69+ messages in thread From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2023-09-07 16:28 UTC (permalink / raw) To: Vagrant Cascadian Cc: Giovanni Biscuolo, Maxim Cournoyer, guix-devel, Ludovic Courtès Hi Vagrant! On Thu, Sep 7, 2023 at 9:13 AM Vagrant Cascadian <vagrant@debian.org> wrote: > > Sooooo... I maintain the guix package in Debian, and want to make sure > that whatever bug-closing indicator guix upstream uses, does not end up > triggering when I push new upstream versions to salsa.debian.org ... and > start incorrectly marking incorrect bug numbers on bugs.debian.org that > were meant for debbugs.gnu.org. Good catch! Surely, many downstream maintainers face that issue. It's been a while since I hacked on Salsa. Regardless of the outcome here, can you disable the standard webhook and add your own? Kind regards Felix ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-07 16:12 ` Vagrant Cascadian 2023-09-07 16:28 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2023-09-09 23:59 ` Liliana Marie Prikler 2023-09-11 8:09 ` Giovanni Biscuolo 2023-09-14 22:51 ` Vagrant Cascadian 1 sibling, 2 replies; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-09 23:59 UTC (permalink / raw) To: Vagrant Cascadian, Giovanni Biscuolo, Maxim Cournoyer Cc: guix-devel, Ludovic Courtès Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant Cascadian: > I am much more comfortable with the "Fixes" convention of: > > Fixes: https://issues.guix.gnu.org/NNN I like the idea, but we should also consider the bugs.gnu.org address here as well as the convention of putting it into angular brackets. In fact, I might even prefer it if the convention was Fixes: Bug description <link> where bug description is a (possibly empty) name for the bug such as "Emacs hangs when I press a key" or something. As for when to send it, remember that we already send a bunch of mails to guix-commits@gnu.org as our commit hook? I think it shouldn't be too hard to search for the fixes line and send it to debbugs control. WDYT? ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-09 23:59 ` Liliana Marie Prikler @ 2023-09-11 8:09 ` Giovanni Biscuolo 2023-09-11 13:59 ` Maxim Cournoyer 2023-09-11 17:55 ` Liliana Marie Prikler 2023-09-14 22:51 ` Vagrant Cascadian 1 sibling, 2 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-11 8:09 UTC (permalink / raw) To: Liliana Marie Prikler, Vagrant Cascadian, Maxim Cournoyer Cc: guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 1759 bytes --] Hi! Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant Cascadian: >> I am much more comfortable with the "Fixes" convention of: >> >> Fixes: https://issues.guix.gnu.org/NNN OK, I understand Vagrant's concerns: we need a _namespaced_ URI, but there is no need that URI is the URL of **one** of our current web interfaces, why not the other one? ;-) IMO this is an implementation detail we can easily fix once we find a consensus on introducing this requirement in the Guix guidelines on committing. > I like the idea, but we should also consider the bugs.gnu.org address > here as well as the convention of putting it into angular brackets. In > fact, I might even prefer it if the convention was > Fixes: Bug description <link> > where bug description is a (possibly empty) name for the bug such as > "Emacs hangs when I press a key" or something. I agree that an (optional) bug description might be useful (could also be automatically added by some cool etc/committer.scm funcion?) I propose: Fixes: [optional bug description] <namespace:#bug-number> where namespace is the package name, in our case "guix"; fo example: Fixes: Emacs hangs when I press a key <guix:#123456789> WDYT? > As for when to send it, remember that we already send a bunch of mails > to guix-commits@gnu.org as our commit hook? I think it shouldn't be > too hard to search for the fixes line and send it to debbugs control. Do you please know whare to get that scripts, just to have a quick look and understand how we could eventually add a function for automatic bug closing? Thanks! Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 8:09 ` Giovanni Biscuolo @ 2023-09-11 13:59 ` Maxim Cournoyer 2023-09-11 17:55 ` Liliana Marie Prikler 1 sibling, 0 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-11 13:59 UTC (permalink / raw) To: Giovanni Biscuolo Cc: Liliana Marie Prikler, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi Giovanni, Giovanni Biscuolo <g@xelera.eu> writes: > Hi! > > Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > >> Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant Cascadian: >>> I am much more comfortable with the "Fixes" convention of: >>> >>> Fixes: https://issues.guix.gnu.org/NNN > > OK, I understand Vagrant's concerns: we need a _namespaced_ URI, but > there is no need that URI is the URL of **one** of our current web > interfaces, why not the other one? ;-) > IMO this is an implementation detail we can easily fix once we find a > consensus on introducing this requirement in the Guix guidelines on > committing. Agreed. I think a simple git trailer such as: --8<---------------cut here---------------start------------->8--- Fixes: bug#65738 (java-ts-mode tests) --8<---------------cut here---------------end--------------->8--- Would be nice, where bug#NNNNN is already known and shown as a URL in Emacs when the bug-reference minor mode is enabled (it's the case working with Magit), so bugs can be consulted easily without any context switching. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 8:09 ` Giovanni Biscuolo 2023-09-11 13:59 ` Maxim Cournoyer @ 2023-09-11 17:55 ` Liliana Marie Prikler 2023-09-11 18:36 ` Maxim Cournoyer 1 sibling, 1 reply; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-11 17:55 UTC (permalink / raw) To: Giovanni Biscuolo, Vagrant Cascadian, Maxim Cournoyer Cc: guix-devel, Ludovic Courtès Am Montag, dem 11.09.2023 um 10:09 +0200 schrieb Giovanni Biscuolo: > Hi! > > Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > > > Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant > > Cascadian: > > > I am much more comfortable with the "Fixes" convention of: > > > > > > Fixes: https://issues.guix.gnu.org/NNN > > OK, I understand Vagrant's concerns: we need a _namespaced_ URI, but > there is no need that URI is the URL of **one** of our current web > interfaces, why not the other one? ;-) Well, I like cool URLs, but maybe that's a nice benefit here. > > I propose: > > Fixes: [optional bug description] <namespace:#bug-number> > > where namespace is the package name, in our case "guix"; fo example: > > Fixes: Emacs hangs when I press a key <guix:#123456789> Maybe make that bug-guix so that it matches with the mailing list name, though we also need a wording for when a patch is not a bug, e.g. a simple package upgrade. WDYT about the following Applies: [patch] <namespace:#bug-number> Closes: [patch] <namespace:#bug-number> Resolves: [patch] <namespace:#bug-number> Done: [patch] <namespace:#bug-number> ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 17:55 ` Liliana Marie Prikler @ 2023-09-11 18:36 ` Maxim Cournoyer 2023-09-11 18:51 ` Liliana Marie Prikler 0 siblings, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-11 18:36 UTC (permalink / raw) To: Liliana Marie Prikler Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi, Liliana Marie Prikler <liliana.prikler@gmail.com> writes: [...] > Maybe make that bug-guix so that it matches with the mailing list name, > though we also need a wording for when a patch is not a bug, e.g. a > simple package upgrade. > > WDYT about the following > Applies: [patch] <namespace:#bug-number> > Closes: [patch] <namespace:#bug-number> > Resolves: [patch] <namespace:#bug-number> > Done: [patch] <namespace:#bug-number> I don't follow; why do we need 'Applies' ? Why do we need a 'namespace'. Are these things the user would need to manually know and enter themselves in their commit messages? If so, that's adding rather than reducing friction, and I'm not sure it'd gain much traction. The way I see it, it needs to happen automatically. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 18:36 ` Maxim Cournoyer @ 2023-09-11 18:51 ` Liliana Marie Prikler 2023-09-11 20:41 ` Maxim Cournoyer 0 siblings, 1 reply; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-11 18:51 UTC (permalink / raw) To: Maxim Cournoyer Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Am Montag, dem 11.09.2023 um 14:36 -0400 schrieb Maxim Cournoyer: > Hi, > > Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > > [...] > > > Maybe make that bug-guix so that it matches with the mailing list > > name, > > though we also need a wording for when a patch is not a bug, e.g. a > > simple package upgrade. > > > > WDYT about the following > > Applies: [patch] <namespace:#bug-number> > > Closes: [patch] <namespace:#bug-number> > > Resolves: [patch] <namespace:#bug-number> > > Done: [patch] <namespace:#bug-number> > > I don't follow; why do we need 'Applies' ? Why do we need a > 'namespace'. Are these things the user would need to manually know > and enter themselves in their commit messages? I'm just asking which wording you prefer. For the tracker, they'd mean the same as "Fixes", but fixes imho sounds like a bug, which "Update Emacs to 29.2" isn't. Thus, something with a more neutral meaning like "Resolves" might apply better here. > If so, that's adding rather than reducing friction, and I'm not sure > it'd gain much traction. The way I see it, it needs to happen > automatically. I mean, the way I imagine is that you type this as part of your message and then debbugs would do the work of closing the bug. In short, "git push" saves you the work of writing a mail because there's a hook for it. As for the namespace: you would have to type it on your own – hence why I prefer the URL approach as that can more easily be copied. I think we had a discussion that we don't want to involuntarily trigger stuff elsewhere, hence why we're marking our own bugs as our own. Cheers ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 18:51 ` Liliana Marie Prikler @ 2023-09-11 20:41 ` Maxim Cournoyer 2023-09-12 13:55 ` Giovanni Biscuolo 2023-09-12 17:03 ` Liliana Marie Prikler 0 siblings, 2 replies; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-11 20:41 UTC (permalink / raw) To: Liliana Marie Prikler Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi Liliana, Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Montag, dem 11.09.2023 um 14:36 -0400 schrieb Maxim Cournoyer: >> Hi, >> >> Liliana Marie Prikler <liliana.prikler@gmail.com> writes: >> >> [...] >> >> > Maybe make that bug-guix so that it matches with the mailing list >> > name, >> > though we also need a wording for when a patch is not a bug, e.g. a >> > simple package upgrade. >> > >> > WDYT about the following >> > Applies: [patch] <namespace:#bug-number> >> > Closes: [patch] <namespace:#bug-number> >> > Resolves: [patch] <namespace:#bug-number> >> > Done: [patch] <namespace:#bug-number> >> >> I don't follow; why do we need 'Applies' ? Why do we need a >> 'namespace'. Are these things the user would need to manually know >> and enter themselves in their commit messages? > I'm just asking which wording you prefer. For the tracker, they'd mean > the same as "Fixes", but fixes imho sounds like a bug, which "Update > Emacs to 29.2" isn't. Thus, something with a more neutral meaning like > "Resolves" might apply better here. If we choose this simple scheme where the top commit of a series can be annotated with Debbugs control commands, I'd opt for: --8<---------------cut here---------------start------------->8--- Applies: #bug-number --8<---------------cut here---------------end--------------->8--- I'm not sure what [patch] or namespace add (is it for a fancy URL?), so I'd drop them. >> If so, that's adding rather than reducing friction, and I'm not sure >> it'd gain much traction. The way I see it, it needs to happen >> automatically. > I mean, the way I imagine is that you type this as part of your message > and then debbugs would do the work of closing the bug. In short, "git > push" saves you the work of writing a mail because there's a hook for > it. Perhaps both approach could be combined. I still see value in a general scheme to automate closing applied series that linger on in Debbugs. [0] https://lists.gnu.org/archive/html/guix-devel/2023-09/msg00138.html Change-Ids would also add the benefit that any commit found in Git could easily be traced back to their submission on the guix-patches or guix trackers or vice-versa (git log --grep='Change-Id=XXXX'), as noted by Giovanni. The process could go like this: 1. commits of a series pushed to master 2. Savannah sends datagram to a remote machine to trigger the post-commit job, with the newly pushed commits 'Change-Id' values (a list of them). 3. The remote machine runs something like 'mumi close-issues [change-id-1 change-id-2 ...]' In case it couldn't close an issue, it could send a notification to the submitter: "hey, I've seen some commits of series NNNN landing to master, but not all of the commits appears to have been pushed, please check" What mumi does internally would be something like: a) Check in its database to establish the Change-Id <-> Issue # relation, if any. b) For each issue, if issue #'s known Change-Ids are all covered by the change-ids in the arguments, close it This is a bit more complex (UDP datagram, mumi database) but it does useful work for us committers (instead of simply changing the way we currently do the work). When not provided any change-id argument, 'mumi close-issues' could run the process on its complete list of issues. Since it'd be transparent and requires nothing from a committer, it'd provide value without having to document yet more processes. -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 20:41 ` Maxim Cournoyer @ 2023-09-12 13:55 ` Giovanni Biscuolo 2023-09-13 15:19 ` Maxim Cournoyer 2023-09-12 17:03 ` Liliana Marie Prikler 1 sibling, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-12 13:55 UTC (permalink / raw) To: Maxim Cournoyer, Liliana Marie Prikler; +Cc: guix-devel, Vagrant Cascadian [-- Attachment #1: Type: text/plain, Size: 10861 bytes --] Hi Maxim and Liliana, Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: >>> Liliana Marie Prikler <liliana.prikler@gmail.com> writes: >>> > WDYT about the following >>> > Applies: [patch] <namespace:#bug-number> >>> > Closes: [patch] <namespace:#bug-number> >>> > Resolves: [patch] <namespace:#bug-number> >>> > Done: [patch] <namespace:#bug-number> [...] >> I'm just asking which wording you prefer. For the tracker, they'd mean >> the same as "Fixes", but fixes imho sounds like a bug, But we actually have to close/fix/resolve/mark-as-done a bug (report), no? :-D >> which "Update Emacs to 29.2" isn't. Thus, something with a more >> neutral meaning like "Resolves" might apply better here. IMO this is just an implementation "detail", although an important one. Keywords are _just_ labels, the semantics is defined elsewhere (even when it's "implicit") and the semantics establish the behaviour we intend to implement via our algorithm we use to (re)program the git hook in order to automatically close a bug report when the committer pushes all needed patches in a bug of class "PATCH" or find it's appropriate to mark it as done when committing another class of bug (sorry for being so convoluted :-O ) Anyway, I agree with Liliana that having more keyworks will help humans better capture (and remember) the implied semantics (that we should definitely document, anyway); for this reason my proposal is to accept all this _lowercased_ keywords (all followed by a ":" with NO spaces in between): fix, fixes, close, closes, resolve, resolves, do, done. This means that a committer can write for example "RESOLVES:" and the meaning is the same as "do:" or "Fixes:". IMO the "superficial" semantic of the keyword apply/applies is ambiguos: does this mean: 1. the commit is part of a series of patches tracked in #bug-num thus the rest of the series is still to be worked upon (please don't close the bug report) or 2. the commit is the last one of all the patches tracked in #bug-num thus no other patch is left to be committed (please close the bug report) WDYT? > If we choose this simple scheme where the top commit of a series can be > annotated with Debbugs control commands, I'd opt for: > > --8<---------------cut here---------------start------------->8--- > Applies: #bug-number > --8<---------------cut here---------------end--------------->8--- Uh I think I get it: you mean we could use a keyword in the commit message to allow the committer to effectively link a commit to a #bug-number, right? This is something we sould consider, but it's another topic: how to effectively link commits to #bug-num (I guess we already talked about this in some other thread) > I'm not sure what [patch] or namespace add (is it for a fancy URL?), so > I'd drop them. I'll try to recap, sorry for the repetitions! Namespace has been assumed as part of the proposed URI to try address Vagrant's concerns [1]: --8<---------------cut here---------------start------------->8--- Sooooo... I maintain the guix package in Debian, and want to make sure that whatever bug-closing indicator guix upstream uses, does not end up triggering when I push new upstream versions to salsa.debian.org ... and start incorrectly marking incorrect bug numbers on bugs.debian.org that were meant for debbugs.gnu.org. --8<---------------cut here---------------end--------------->8--- Here we have a use case in which a Guix committer is also committer of other projects using a similar git hook, with (a subset of) the _very same_ keywords we choose for our hook. That's why I proposed [2] a namespaced URI, possibly not including the URL: --8<---------------cut here---------------start------------->8--- Fixes: [optional bug description] <namespace:#bug-number> --8<---------------cut here---------------end--------------->8--- (here, URI is <namespace>:#<bug-number>) ...but then you, Maxim, suggested [3] this form: --8<---------------cut here---------------start------------->8--- Fixes: bug#65738 (java-ts-mode tests) --8<---------------cut here---------------end--------------->8--- (here, URI is bug#<bug-number) That is nice since it is shown as a URL in Emacs with the minor mode bug-reference-mode enabled, so bugs can be consulted easily (by Emacs users); this is documented in Emacs manual "29.7 Bug Reference" [4]. I (still?!?) ignored that Emacs feature, wow! :-D (Note to self: improve your emacs-foo) Given all this, I propose this generalized form: --8<---------------cut here---------------start------------->8--- <keyword>: bug#<bug-num>@<namespace> (<bug title>) --8<---------------cut here---------------end--------------->8--- I'm an Emacs user also and when I enable bug-reference-mode in this message buffer I still see the "bug#<num>" part of the string: bug#65738@guix is shown as an URL (pointing nowhere since I still did not configure my Emacs properly) Maxim: do you think my proposal could work also for Emacs bug-reference-mode "machinery"? And everyone: do you think that the above proposal for an "Emacs compatible" namestaced URI could be fine for all considered usercases? >>> If so, that's adding rather than reducing friction, and I'm not sure >>> it'd gain much traction. The way I see it, it needs to happen >>> automatically. >> I mean, the way I imagine is that you type this as part of your message >> and then debbugs would do the work of closing the bug. In short, "git >> push" saves you the work of writing a mail because there's a hook for >> it. I guess all of us are looking for this very same thing: a server side web hook that automatically closes bugs (via email) when committers pushing "instructs" it to do so. The automatic email message will be sent to our "bug control and manipulation server" [5], with this header: --8<---------------cut here---------------start------------->8--- From: GNU Guix git hook <noreply@gnu.org> Reply-To: <Committer> <<committer-email>> To: control@debbugs.gnu.org --8<---------------cut here---------------end--------------->8--- and this body: --8<---------------cut here---------------start------------->8--- package guix close <bug-number> [<commit-hash>] quit --8<---------------cut here---------------end--------------->8--- The "Reply-To:" (I still have to test it) will receive a notification from the control server with the results of the commands, including errors if any. Then, the documentation for the close command [5] states: --8<---------------cut here---------------start------------->8--- A notification is sent to the user who reported the bug, but (in contrast to mailing bugnumber-done) the text of the mail which caused the bug to be closed is not included in that notification. If you supply a fixed-version, the bug tracking system will note that the bug was fixed in that version of the package. --8<---------------cut here---------------end--------------->8--- Last but not least, the very fact that "GNU Guix git hook" have closed the bug report is tracked and showed in the bug report history, as any other action made via email using the Debbugs control server. WDYT? > Perhaps both approach could be combined. I still see value in a general > scheme to automate closing applied series that linger on in Debbugs. > > [0] > https://lists.gnu.org/archive/html/guix-devel/2023-09/msg00138.html Yes I agree, they are two complementary approaches: I think there are usecases (many? few?) in which committer pushing to the repo are actually solving an issue in some but report, even if this is not tracked as a patch bug report. [...] > The process could go like this: > > 1. commits of a series pushed to master > 2. Savannah sends datagram to a remote machine to trigger the > post-commit job, with the newly pushed commits 'Change-Id' values (a > list of them). > 3. The remote machine runs something like 'mumi close-issues [change-id-1 > change-id-2 ...]' I think that extending the already existing post-receive hook is better since it does not depend on the availability of a remote service receiving a **UDP** datagram. For sure, we need an enhanced version of mumi CLI (capable of indexing Change-Id) on the server running the post-receive hook to achieve this. > In case it couldn't close an issue, it could send a notification to the > submitter: "hey, I've seen some commits of series NNNN landing to > master, but not all of the commits appears to have been pushed, please > check" Interesting! This could also be done by a server post-receive hook, in contrast to a remote service listening for UDP datagrams. > What mumi does internally would be something like: > > a) Check in its database to establish the Change-Id <-> Issue # relation, > if any. > > b) For each issue, if issue #'s known Change-Ids are all covered by the > change-ids in the arguments, close it I think that b) is better suited for a git post-receive hook and not for mumi triggered by a third service; as said above for sure such a script needs mumi (CLI) to query the mumi (server) database. > This is a bit more complex (UDP datagram, mumi database) but it does > useful work for us committers (instead of simply changing the way we > currently do the work). I agree: an automatic bug closing "machinery" when patches are pushed to master (and any other official branch?) is the best approach > When not provided any change-id argument, 'mumi close-issues' could run > the process on its complete list of issues. Do you mean the list of issues provided by "Close/Fix/Resolve: #bug-number"? If I don't miss something, again this is someting that should be provided by a git post-receive hook and not by an enhanced version on mumi > Since it'd be transparent and requires nothing from a committer, it'd > provide value without having to document yet more processes. No, but we should however document the design of this new kind of machinery, so we can always check that the implementation respects the design and eventually redesign and refactor if needed. WDYT? Thanks, Gio' [1] id:87y1hikln6.fsf@wireframe https://yhetil.org/guix/87y1hikln6.fsf@wireframe [2] id:87pm2pces0.fsf@xelera.eu https://yhetil.org/guix/87pm2pces0.fsf@xelera.eu [3] id:875y4gzu85.fsf@gmail.com https://yhetil.org/guix/875y4gzu85.fsf@gmail.com [4] https://www.gnu.org/software/emacs/manual/html_node/emacs/Bug-Reference.html please also consider that bug-reference-bug-regexp can be customized ;-) [5] https://debbugs.gnu.org/server-control.html -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-12 13:55 ` Giovanni Biscuolo @ 2023-09-13 15:19 ` Maxim Cournoyer 2023-09-14 9:42 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-13 15:19 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: Liliana Marie Prikler, guix-devel, Vagrant Cascadian Hi Giovanni, Giovanni Biscuolo <g@xelera.eu> writes: [...] >>>> Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > >>>> > WDYT about the following >>>> > Applies: [patch] <namespace:#bug-number> >>>> > Closes: [patch] <namespace:#bug-number> >>>> > Resolves: [patch] <namespace:#bug-number> >>>> > Done: [patch] <namespace:#bug-number> [...] > Anyway, I agree with Liliana that having more keyworks will help humans > better capture (and remember) the implied semantics (that we should > definitely document, anyway); for this reason my proposal is to accept > all this _lowercased_ keywords (all followed by a ":" with NO spaces in > between): fix, fixes, close, closes, resolve, resolves, do, done. OK, I now get the point; we're not discussing synonyms but various actions both 'Closes and 'Fixes' would be implement via the NNNNN-done@debbugs.gnu.org special email sent to the control server, but they convey a different idea to us humans. I agree. [...] >> If we choose this simple scheme where the top commit of a series can be >> annotated with Debbugs control commands, I'd opt for: >> >> --8<---------------cut here---------------start------------->8--- >> Applies: #bug-number >> --8<---------------cut here---------------end--------------->8--- > > Uh I think I get it: you mean we could use a keyword in the commit > message to allow the committer to effectively link a commit to a > #bug-number, right? Yes! I think my thought train went that way while Liliana and yours were more focused on a post push action to close *fixed* issues, right? What I described here was a general process by which we could close *patches* series that were forgotten in an 'open' state. > This is something we sould consider, but it's another topic: how to > effectively link commits to #bug-num (I guess we already talked about > this in some other thread) > >> I'm not sure what [patch] or namespace add (is it for a fancy URL?), so >> I'd drop them. > > I'll try to recap, sorry for the repetitions! > > Namespace has been assumed as part of the proposed URI to try address > Vagrant's concerns [1]: > > > Sooooo... I maintain the guix package in Debian, and want to make sure > that whatever bug-closing indicator guix upstream uses, does not end up > triggering when I push new upstream versions to salsa.debian.org ... and > start incorrectly marking incorrect bug numbers on bugs.debian.org that > were meant for debbugs.gnu.org. I don't understand how this risk could be triggered; we're strictly talking about commits made in the Guix repository, not in one of Debian's? Why/how would a Guix commit message trigger a Debian Debbugs server action? Maybe if Vagrant put something like: Fixes: <debbugs.debian.org/NNNNN> that could cause problems? But then the URL is different, so we could filter out these, so I don't see the problem, if we use URLs. And if we accept just 'Fixes: #NNNNN', it should be documented that these are strictly intended to refer to Guix issues, not that of other projects. I don't think we'll be able to make this error proof, so we should instead aim to make it convenient for the main use cases, which is to refer to Guix issues. Does that make sense? > Fixes: [optional bug description] <namespace:#bug-number> > > (here, URI is <namespace>:#<bug-number>) > > ...but then you, Maxim, suggested [3] this form: > > Fixes: bug#65738 (java-ts-mode tests) Note that we can stick with the <issues.guix.gnu.org/NNNNNN> URL and achieve the same result with some extra config (see: bug#65883). >>>> If so, that's adding rather than reducing friction, and I'm not sure >>>> it'd gain much traction. The way I see it, it needs to happen >>>> automatically. >>> I mean, the way I imagine is that you type this as part of your message >>> and then debbugs would do the work of closing the bug. In short, "git >>> push" saves you the work of writing a mail because there's a hook for >>> it. > > I guess all of us are looking for this very same thing: a server side > web hook that automatically closes bugs (via email) when committers > pushing "instructs" it to do so. > > The automatic email message will be sent to our "bug control and > manipulation server" [5], with this header: > > > From: GNU Guix git hook <noreply@gnu.org> > Reply-To: <Committer> <<committer-email>> > To: control@debbugs.gnu.org > > > and this body: > > > package guix > close <bug-number> [<commit-hash>] > quit > > > The "Reply-To:" (I still have to test it) will receive a notification > from the control server with the results of the commands, including > errors if any. > > Then, the documentation for the close command [5] states: Note that 'close' is deprecated in favor of 'done', which does send a reply. > A notification is sent to the user who reported the bug, but (in > contrast to mailing bugnumber-done) the text of the mail which caused > the bug to be closed is not included in that notification. > > If you supply a fixed-version, the bug tracking system will note that > the bug was fixed in that version of the package. > > Last but not least, the very fact that "GNU Guix git hook" have closed > the bug report is tracked and showed in the bug report history, as any > other action made via email using the Debbugs control server. > > WDYT? Yes, these last bits are what an implementation would have to do, whether it's a simple hook working from Git trailers or the more complex idea I had working from mumi and mapping commit sets (via Change-Ids) to Debbugs guix-patches issues. > [...] > >> The process (*for closing lingering *guix-patches* issues) could go >> like this: >> >> 1. commits of a series pushed to master >> 2. Savannah sends datagram to a remote machine to trigger the >> post-commit job, with the newly pushed commits 'Change-Id' values (a >> list of them). >> 3. The remote machine runs something like 'mumi close-issues [change-id-1 >> change-id-2 ...]' > > I think that extending the already existing post-receive hook is better > since it does not depend on the availability of a remote service > receiving a **UDP** datagram. > > For sure, we need an enhanced version of mumi CLI (capable of indexing > Change-Id) on the server running the post-receive hook to achieve this. >> In case it couldn't close an issue, it could send a notification to the >> submitter: "hey, I've seen some commits of series NNNN landing to >> master, but not all of the commits appears to have been pushed, please >> check" > > Interesting! This could also be done by a server post-receive hook, in > contrast to a remote service listening for UDP datagrams. The reason in my scheme why the more capable mumi CLI would be needed is because closed series would be inferred from commits Change-IDs rather than explicitly declared. >> What mumi does internally would be something like: >> >> a) Check in its database to establish the Change-Id <-> Issue # relation, >> if any. >> >> b) For each issue, if issue #'s known Change-Ids are all covered by the >> change-ids in the arguments, close it > > I think that b) is better suited for a git post-receive hook and not for > mumi triggered by a third service; as said above for sure such a script > needs mumi (CLI) to query the mumi (server) database. To clarify, the above should be a sequential process; with the Change-Id scheme, you don't have a direct mapping between a series and the Debbugs issue -- it needs to be figured out by checking in the Mumi database. >> This is a bit more complex (UDP datagram, mumi database) but it does >> useful work for us committers (instead of simply changing the way we >> currently do the work). > > I agree: an automatic bug closing "machinery" when patches are pushed to > master (and any other official branch?) is the best approach > >> When not provided any change-id argument, 'mumi close-issues' could run >> the process on its complete list of issues. > > Do you mean the list of issues provided by "Close/Fix/Resolve: > #bug-number"? > > If I don't miss something, again this is someting that should be > provided by a git post-receive hook and not by an enhanced version on > mumi It could process the 'Fixes: #NNNNN' and other git trailers we choose to use as well, but what I had on mind was processing the *guix-patches* outstanding Debbugs issues based on the presence of unique Change-Ids in them. It complements the other proposal as it could be useful for when a committer didn't specify the needed trailers and forgot to close the issue in *guix-patches*, for example. >> Since it'd be transparent and requires nothing from a committer, it'd >> provide value without having to document yet more processes. > > No, but we should however document the design of this new kind of > machinery, so we can always check that the implementation respects the > design and eventually redesign and refactor if needed. Yes, it should be summarily described at least in the documentation, with pointers to the source. Oof, that's getting long. To recap: We have two propositions in there: 1. A simple one that is declarative: new git trailers added to commit messages would convey actions to be done by the server-side hook. 2. A more complex one that would allow us to close *some* (not all) of the *guix-patches* issues automatically, relying on Change-Ids (and Mumi's ability to parse them) to infer which patch series saw all their commits merged already. I think both have value to be pursued, but 1. could be implemented first since it is simpler. Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 15:19 ` Maxim Cournoyer @ 2023-09-14 9:42 ` Giovanni Biscuolo 2023-09-14 16:58 ` Liliana Marie Prikler 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-14 9:42 UTC (permalink / raw) To: Maxim Cournoyer, Vagrant Cascadian; +Cc: Liliana Marie Prikler, guix-devel [-- Attachment #1: Type: text/plain, Size: 10203 bytes --] Hi Maxim and Vagrant, I'm sorry for some of the inconprehensions. Finally I think we got a useful design overall for the _two_ user cases and the related pieces of metadata and algorithms, now it's time for _two_ implementations proposals, that also means _code_... If nihil obstat, I'm going to open 2 bug reports (severity: wishlist) and will take ownership... but only to coordinate the work, since I miss some competence /and/ some authorization (for example to get and/or install the server side git hook) Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: [...] >> Anyway, I agree with Liliana that having more keyworks will help humans >> better capture (and remember) the implied semantics (that we should >> definitely document, anyway); for this reason my proposal is to accept >> all this _lowercased_ keywords (all followed by a ":" with NO spaces in >> between): fix, fixes, close, closes, resolve, resolves, do, done. > > OK, I now get the point; we're not discussing synonyms but various > actions Yes :-D [...] >>> If we choose this simple scheme where the top commit of a series can be >>> annotated with Debbugs control commands, I'd opt for: >>> >>> --8<---------------cut here---------------start------------->8--- >>> Applies: #bug-number >>> --8<---------------cut here---------------end--------------->8--- >> >> Uh I think I get it: you mean we could use a keyword in the commit >> message to allow the committer to effectively link a commit to a >> #bug-number, right? > > Yes! OK! :-) Let's see how this relates to the 2 use cases we are talking about: 1. Use "Fixes:" (et al) in commit msg to tell "the hook" to close the bug. This "action" implies that the commit we are pushing upstream "Applies:" to that bug report; it has no added value. 2. Use 'Change-Id'... This also implies that the commit we are pushing upstream "Applies:" to that bug report related to that [PATCH]; no added value also. So, when and only when we will implement a 'Change-Id' requirement adding an 'Applies' metadata is not useful for linking [PATCH]es to a bug report. Did I miss something? > I think my thought train went that way while Liliana and yours > were more focused on a post push action to close *fixed* issues, > right? Yes, it's a (super?) /brainstorming/ :-) > What I described here was a general process by which we could close > *patches* series that were forgotten in an 'open' state. Yes: until we miss the 'Change-Id' metadata, we cannot do [1] nothing for forgotten patches series. [...] >> Namespace has been assumed as part of the proposed URI to try address >> Vagrant's concerns [1]: >> >> >> Sooooo... I maintain the guix package in Debian, and want to make sure >> that whatever bug-closing indicator guix upstream uses, does not end up >> triggering when I push new upstream versions to salsa.debian.org ... and >> start incorrectly marking incorrect bug numbers on bugs.debian.org that >> were meant for debbugs.gnu.org. > > I don't understand how this risk could be triggered; we're strictly > talking about commits made in the Guix repository, not in one of > Debian's? Why/how would a Guix commit message trigger a Debian Debbugs > server action? Maybe if Vagrant put something like: > > Fixes: <debbugs.debian.org/NNNNN> that could cause problems? But then > the URL is different, so we could filter out these, so I don't see the > problem, if we use URLs. Yes we are saying the same thing! :-) Sorry I've made confusion but Vagrant's concern was expressed _before_ someone proposed (maybe Liliana) to use namespaced URIs. Vagrant please: do you confirm that using URLs "Fixes: <issues.guix.gnu.org/NNNNNN>" is OK for your usecase? [...] >> Fixes: [optional bug description] <namespace:#bug-number> >> >> (here, URI is <namespace>:#<bug-number>) >> >> ...but then you, Maxim, suggested [3] this form: >> >> Fixes: bug#65738 (java-ts-mode tests) > > Note that we can stick with the <issues.guix.gnu.org/NNNNNN> URL and > achieve the same result Thinking twice about this point, now I see that using the URL is **much** better than <guix:NNNNNN>, simply because URLs can be copy/pasted in a browser for users not using the bug-reference Emacs feature or any other similar feature in their preferred IDE, if available. > with some extra config (see: bug#65883). Fantastic! [...] >> The automatic email message will be sent to our "bug control and >> manipulation server" [5], with this header: >> >> >> From: GNU Guix git hook <noreply@gnu.org> >> Reply-To: <Committer> <<committer-email>> >> To: control@debbugs.gnu.org >> >> >> and this body: >> >> >> package guix >> close <bug-number> [<commit-hash>] >> quit >> >> >> The "Reply-To:" (I still have to test it) will receive a notification >> from the control server with the results of the commands, including >> errors if any. >> >> Then, the documentation for the close command [5] states: > > Note that 'close' is deprecated in favor of 'done', which does send a > reply. Sorry I'm not finding 'done' (and the deprecation note) here: https://debbugs.gnu.org/server-control.html Maybe do you mean that we should not use the control server but send a message to <bug-number>-done@debbugs.gnu.org? Like: --8<---------------cut here---------------start------------->8--- From: guix-commits To: <bug-number>-done@debbugs.gnu.org Version: <commit-hash> This is an automated email from the git hooks/post-receive script. This bug report has been closed on behalf of <Committer> <<committer-email>> since he added an appropriate pseudo-footer in the commit message of <commit-hash> (see <http link to documentation>). For details on the commit content, please see: <http link to commit>. --8<---------------cut here---------------end--------------->8--- OK: this goes in the upcoming [PATCH] and related patch revision process... :-D [...] >> Interesting! This could also be done by a server post-receive hook, in >> contrast to a remote service listening for UDP datagrams. > > The reason in my scheme why the more capable mumi CLI would be needed is > because closed series would be inferred from commits Change-IDs rather > than explicitly declared. Yes I agree: a more capable mumi CLI is also needed in my scheme :-) The "only" difference in my scheme is that we don't need an external server listening for a UPD datagram, IMO a more capable version of our current git hooks/post-receive script is better. >>> What mumi does internally would be something like: >>> >>> a) Check in its database to establish the Change-Id <-> Issue # relation, >>> if any. >>> >>> b) For each issue, if issue #'s known Change-Ids are all covered by the >>> change-ids in the arguments, close it >> >> I think that b) is better suited for a git post-receive hook and not for >> mumi triggered by a third service; as said above for sure such a script >> needs mumi (CLI) to query the mumi (server) database. > > To clarify, the above should be a sequential process; It was clear to me, thanks! > with the Change-Id scheme, you don't have a direct mapping between a > series and the Debbugs issue -- it needs to be figured out by checking > in the Mumi database. Yes, to be precise it needs to be figured out by a tool that is indexing 'Change-Id' via Xapian. The preferred tool to be extended by the Guix project contributors is mumi, obviously ... but a similar feature could also be provided by an enhanced version of (the unofficial) guix-patches public-inbox, that uses Xapian queries for searches [2], it "just" lacks indexing messages by 'Change-Id' (is there a public-inbox CLI for searching and scripting purposes?!?) [...] > It could process the 'Fixes: #NNNNN' and other git trailers we choose to > use as well, but what I had on mind was processing the *guix-patches* > outstanding Debbugs issues based on the presence of unique Change-Ids in > them. It complements the other proposal as it could be useful for when > a committer didn't specify the needed trailers and forgot to close the > issue in *guix-patches*, for example. Yes I think I get it :-) To be cristal clear: I think that "the other proposal" (that is use "Fixes:" and alike in commit msg to close the provided bug num) will be **superseeded** when all the tools to manage (first of all: CLI query tool) the 'Change-Id' preudo-header/footer :-D >>> Since it'd be transparent and requires nothing from a committer, it'd >>> provide value without having to document yet more processes. >> >> No, but we should however document the design of this new kind of >> machinery, so we can always check that the implementation respects the >> design and eventually redesign and refactor if needed. > > Yes, it should be summarily described at least in the documentation, > with pointers to the source. > > Oof, that's getting long. Wow! \O/ > To recap: > > We have two propositions in there: > > 1. A simple one that is declarative: new git trailers added to commit > messages would convey actions to be done by the server-side hook. > > 2. A more complex one that would allow us to close *some* (not all) of > the *guix-patches* issues automatically, relying on Change-Ids (and > Mumi's ability to parse them) to infer which patch series saw all their > commits merged already. > > I think both have value to be pursued, but 1. could be implemented first > since it is simpler. I think that finally we have a clear big picture. Thanks! As stated at the beginning of this message, I'm going to open bug reports :D Happy hacking! Gio' [1] whatever "do" does mean: it could range from a "simple" search with mumi (or something similar) by a human "bug reports gardener" to a full fledged server side git hook to notify involved parties and/or automatically close the related bug report. [2] https://yhetil.org/guix-patches/_/text/help/ -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 9:42 ` Giovanni Biscuolo @ 2023-09-14 16:58 ` Liliana Marie Prikler 0 siblings, 0 replies; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-14 16:58 UTC (permalink / raw) To: Giovanni Biscuolo, Maxim Cournoyer, Vagrant Cascadian; +Cc: guix-devel Am Donnerstag, dem 14.09.2023 um 11:42 +0200 schrieb Giovanni Biscuolo: > OK! :-) Let's see how this relates to the 2 use cases we are talking > about: > > 1. Use "Fixes:" (et al) in commit msg to tell "the hook" to close the > bug. > > This "action" implies that the commit we are pushing upstream > "Applies:" to that bug report; it has no added value. > > 2. Use 'Change-Id'... > > This also implies that the commit we are pushing upstream "Applies:" > to that bug report related to that [PATCH]; no added value also. > > So, when and only when we will implement a 'Change-Id' requirement > adding an 'Applies' metadata is not useful for linking [PATCH]es to a > bug report. > > Did I miss something? On "Fixes:" vs. "Applies:" etc: the point of having more keywords is that "Fixes:" implies a bug, whereas more general wording is preferable when pushing a patch that simply updates a package. I just wrote some example wordings and wanted all of us to agree on the one that makes "the most sense"; alas it got misinterpreted. > > > Maybe if Vagrant put something like: > > > > Fixes: <debbugs.debian.org/NNNNN> that could cause problems? But > > then the URL is different, so we could filter out these, so I don't > > see the problem, if we use URLs. > > Yes we are saying the same thing! :-) > > Sorry I've made confusion but Vagrant's concern was expressed > _before_ someone proposed (maybe Liliana) to use namespaced URIs. > > Vagrant please: do you confirm that using URLs "Fixes: > <issues.guix.gnu.org/NNNNNN>" is OK for your usecase? I actually prefer cool URLs myself, my format was "Fixes: [optional description] <URL>" > > > To be cristal clear: I think that "the other proposal" (that is use > "Fixes:" and alike in commit msg to close the provided bug num) will > be **superseeded** when all the tools to manage (first of all: CLI > query tool) the 'Change-Id' preudo-header/footer :-D Well I still very much prefer human readable footers, but I'm perhaps a little lonely in this debate. Cheers > > > ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-11 20:41 ` Maxim Cournoyer 2023-09-12 13:55 ` Giovanni Biscuolo @ 2023-09-12 17:03 ` Liliana Marie Prikler 2023-09-13 9:37 ` Giovanni Biscuolo 2023-09-13 15:27 ` Maxim Cournoyer 1 sibling, 2 replies; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-12 17:03 UTC (permalink / raw) To: Maxim Cournoyer Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi Maxim, Am Montag, dem 11.09.2023 um 16:41 -0400 schrieb Maxim Cournoyer: > [...] > Perhaps both approach[es] could be combined. I still see value in a > general scheme to automate closing applied series that linger on in > Debbugs. > > [0] > https://lists.gnu.org/archive/html/guix-devel/2023-09/msg00138.html > > Change-Ids would also add the benefit that any commit found in Git > could easily be traced back to their submission on the guix-patches > or guix trackers or vice-versa (git log --grep='Change-Id=XXXX'), as > noted by Giovanni. The thing is, we're discussing the same basic workflow (which you lay out below), just different kinds of metadata that we'd have to attach to our commits. IIUC ChangeIds need to actually be carried around by the committers as they e.g. rewrite patches (rebasing, squashing, what have you), and they're basically opaque hashes so I don't see the benefit to the reader. (I think you might be arguing that the benefit is uniqueness, but I'm not sure if I ought to buy that.) Meanwhile "Fixes: [whatever notation]" also needs to carried around, sure, but at the same time provides semantics by pointing to a (known) bug report. Now again, I personally prefer cool URLs here, but that's a bike we can shed however we want. > The process could go like this: > > 1. commits of a series pushed to master > 2. Savannah sends datagram to a remote machine to trigger the > post-commit job, with the newly pushed commits 'Change-Id' values (a > list of them). > 3. The remote machine runs something like 'mumi close-issues [change- > id-1 change-id-2 ...]' Yeah, I think we basically agree on the 1 and 2 here, but I don't think we have to really implement 3. IMHO we could do something simpler for all parties by just carrying the bug number around (in whichever form), which we do for some of our pre-ChangeLog explanations already. > In case it couldn't close an issue, it could send a notification to > the submitter: "hey, I've seen some commits of series NNNN landing to > master, but not all of the commits appears to have been pushed, > please check" I'm not sure how common this case is, but if it's needed we could add "Part-of: [same stuff as for fixes]" which once parsed by Debbugs/Mumi would send that notification. Cheers ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-12 17:03 ` Liliana Marie Prikler @ 2023-09-13 9:37 ` Giovanni Biscuolo 2023-09-13 15:27 ` Maxim Cournoyer 1 sibling, 0 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-13 9:37 UTC (permalink / raw) To: Liliana Marie Prikler, Maxim Cournoyer Cc: Vagrant Cascadian, guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 3240 bytes --] Hi Liliana and Maxim, Liliana Marie Prikler <liliana.prikler@gmail.com> writes: [...] > The thing is, we're discussing the same basic workflow No, we are discussing two (complementary) workflows: 1. the one I suggested to add a "footer-metadata-field" named Fix/Fixes/Close/Closes/whatever that will allow people pushing to the Guix official repo to _add_ the information that the (already installed, to be enhanced) server side git post-receive hook should also close one or more bug reports; that "metadata-footer" should be "manually" added to the commit message before pushing, the commit must be _amended_ (git commit --amend). 2. the one suggested by Maxim (bringed by Gerrit) to _automatically_ add a "footer-metadata-field" named 'Change-Id' that will allow "a machinery" (IMO it should be the currently installed hook, enhanced) to _automaticcally_ close bug reports when all 'Change-Id's contained in a bug report have been pushed to the official Guix repo. This is my understanding of what we are discussing here: did I miss something? > (which you lay out below), just different kinds of metadata that we'd > have to attach to our commits. Thay are different because they serve different needs. > IIUC ChangeIds need to actually be carried around by the committers as > they e.g. rewrite patches (rebasing, squashing, what have you) Since 'Change-Id' is automaticcaly generated by a _local_ git hook upon committing and left unchanged if already present, the only precaution the committer should apply is to preserve it when rebasing in case the person needs to send a new version of the patch. > and they're basically opaque hashes so I don't see the benefit to the > reader. The benefit are not for the reader but for "the machinery" to be able to compute when a patch set is completely pushed to the Guix official repo, this also means that the related bug repo (related to the patch set) can be happily automatically closed. No? > (I think you might be arguing that the benefit is uniqueness, but I'm > not sure if I ought to buy that.) The benefit is that 'Change-Id' is autogererated as unique, kept between rebases (with some pracaution by the _local_ committer) thus is useful to compute the completion of each patch contained in a bug repo (of class [PATCH]). Obviously all of this should be clearly documented, so everyone will understand how it works. [...] >> In case it couldn't close an issue, it could send a notification to >> the submitter: "hey, I've seen some commits of series NNNN landing to >> master, but not all of the commits appears to have been pushed, >> please check" > I'm not sure how common this case is Don't know the cardinality, but I guess is a /very/ useful usecase for people who have committ access to the official Guix repo... at least for Maxim :-) Anyway, I think the main use case for this _second_ way of automatically closing related bugs (the one based upon 'Change-Id') when all [PATCH]es are pushed is very useful for all people with commit access to the Guix repo, a sort of "push and (almost) forget". [...] Ciao, Gio'. -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-12 17:03 ` Liliana Marie Prikler 2023-09-13 9:37 ` Giovanni Biscuolo @ 2023-09-13 15:27 ` Maxim Cournoyer 2023-09-13 19:14 ` Liliana Marie Prikler 1 sibling, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-13 15:27 UTC (permalink / raw) To: Liliana Marie Prikler Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi Liliana, Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Hi Maxim, > > Am Montag, dem 11.09.2023 um 16:41 -0400 schrieb Maxim Cournoyer: >> [...] >> Perhaps both approach[es] could be combined. I still see value in a >> general scheme to automate closing applied series that linger on in >> Debbugs. >> >> [0] >> https://lists.gnu.org/archive/html/guix-devel/2023-09/msg00138.html >> >> Change-Ids would also add the benefit that any commit found in Git >> could easily be traced back to their submission on the guix-patches >> or guix trackers or vice-versa (git log --grep='Change-Id=XXXX'), as >> noted by Giovanni. > The thing is, we're discussing the same basic workflow (which you lay > out below), just different kinds of metadata that we'd have to attach > to our commits. IIUC ChangeIds need to actually be carried around by > the committers as they e.g. rewrite patches (rebasing, squashing, what > have you), and they're basically opaque hashes so I don't see the > benefit to the reader. (I think you might be arguing that the benefit > is uniqueness, but I'm not sure if I ought to buy that.) Correct; the Change-Ids must be preserved when rebasing ((*if* they were already published -- otherwise it doesn't matter)), and for the human reader they're mostly noise. Since it can be automated though, from the day it's added all the commits would have one and they would become a valuable unique key to cross-reference between what's in master and what was reviewed in guix-patches, for example. > Meanwhile "Fixes: [whatever notation]" also needs to carried around, > sure, but at the same time provides semantics by pointing to a (known) > bug report. Now again, I personally prefer cool URLs here, but that's > a bike we can shed however we want. That's nice, and as I wrote in my previous reply to Giovanni, I think both schemes have their place. >> The process could go like this: >> >> 1. commits of a series pushed to master >> 2. Savannah sends datagram to a remote machine to trigger the >> post-commit job, with the newly pushed commits 'Change-Id' values (a >> list of them). >> 3. The remote machine runs something like 'mumi close-issues [change- >> id-1 change-id-2 ...]' > Yeah, I think we basically agree on the 1 and 2 here, but I don't think > we have to really implement 3. IMHO we could do something simpler for > all parties by just carrying the bug number around (in whichever form), > which we do for some of our pre-ChangeLog explanations already. For just closing cross-referenced bugs, I agree. For closing forgotten, already merged issues on guix-patches we'd need the Change-Id and a tool able to map Change-Ids -> issue number (mumi is in the best place to do so). It's been a hard discussion to follow, but I think we're coming to some understanding that we are discussing two different schemes that could be both implemented to provide different benefits, right? -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 15:27 ` Maxim Cournoyer @ 2023-09-13 19:14 ` Liliana Marie Prikler 2023-09-13 22:12 ` Simon Tournier ` (2 more replies) 0 siblings, 3 replies; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-13 19:14 UTC (permalink / raw) To: Maxim Cournoyer Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Am Mittwoch, dem 13.09.2023 um 11:27 -0400 schrieb Maxim Cournoyer: > For just closing cross-referenced bugs, I agree. For closing > forgotten, already merged issues on guix-patches we'd need the > Change-Id and a tool able to map Change-Ids -> issue number (mumi is > in the best place to do so). > > It's been a hard discussion to follow, but I think we're coming to > some understanding that we are discussing two different schemes that > could be both implemented to provide different benefits, right? I do wonder how the ChangeId would work in practice. Since it's not really assigned by the committer, it would have to be generated "on the fly" and attached to the mail in between, which could result in all kinds of nasty behaviour like unstable Ids or duplicated ones. Also, if we can automate this for ChangeIds, we could also automate this for patch-sets – the last patch in the series just gets the Closes: tag added by mumi. Furthermore, I'm not convinced that it would ease the issue of forgotten bugs as you can't really apply them to the past. So the practical use is limited to the case where you intentionally cherry- pick this or that commit from a series. How we want to deal with that case could be a discussion in its own right, and maybe ChangeIds really trump the explicit tags proposed by Giovanni or myself here. Whether that justifies the cognitive overhead of juggling them around on every submission remains to be shown or disproven. Beyond the scope of the discussion so far, it also doesn't help us with duplicate or superseded patches (e.g. two series on the mailing list propose a similar change, because one of them has already been forgotten). Again, the explicit close tags would allow this case to be handled in an interpretable fashion. In both cases, we do however also introduce the potential for incorrect tagging, which then needs to be resolved manually (more or less a non-issue, as it's the status quo). Cheers ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 19:14 ` Liliana Marie Prikler @ 2023-09-13 22:12 ` Simon Tournier 2023-09-14 3:00 ` Maxim Cournoyer 2023-09-14 10:27 ` Giovanni Biscuolo 2023-09-14 7:20 ` [workflow] Automatically close bug report when a patch is committed Andreas Enge 2023-09-14 10:25 ` Giovanni Biscuolo 2 siblings, 2 replies; 69+ messages in thread From: Simon Tournier @ 2023-09-13 22:12 UTC (permalink / raw) To: Liliana Marie Prikler, Maxim Cournoyer Cc: Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi, On Wed, 13 Sep 2023 at 21:14, Liliana Marie Prikler <liliana.prikler@gmail.com> wrote: > I do wonder how the ChangeId would work in practice. Since it's not > really assigned by the committer, it would have to be generated "on the > fly" and attached to the mail in between, which could result in all > kinds of nasty behaviour like unstable Ids or duplicated ones. Also, > if we can automate this for ChangeIds, we could also automate this for > patch-sets – the last patch in the series just gets the Closes: tag > added by mumi. I think it would work using some pre-commit hook. When one commits their change, this commit is run and it can pre-fill the commit message. Well, that’s how I have understood the thread. > Furthermore, I'm not convinced that it would ease the issue of > forgotten bugs as you can't really apply them to the past. So the > practical use is limited to the case where you intentionally cherry- > pick this or that commit from a series. How we want to deal with that > case could be a discussion in its own right, and maybe ChangeIds really > trump the explicit tags proposed by Giovanni or myself here. Whether > that justifies the cognitive overhead of juggling them around on every > submission remains to be shown or disproven. I agree. I am not convinced by the benefits and I already see some troubles. Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 22:12 ` Simon Tournier @ 2023-09-14 3:00 ` Maxim Cournoyer 2023-09-14 10:48 ` Giovanni Biscuolo 2023-09-14 10:27 ` Giovanni Biscuolo 1 sibling, 1 reply; 69+ messages in thread From: Maxim Cournoyer @ 2023-09-14 3:00 UTC (permalink / raw) To: Simon Tournier Cc: Liliana Marie Prikler, Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hi, Simon Tournier <zimon.toutoune@gmail.com> writes: > Hi, > > On Wed, 13 Sep 2023 at 21:14, Liliana Marie Prikler <liliana.prikler@gmail.com> wrote: > >> I do wonder how the ChangeId would work in practice. Since it's not >> really assigned by the committer, it would have to be generated "on the >> fly" and attached to the mail in between, which could result in all >> kinds of nasty behaviour like unstable Ids or duplicated ones. Also, >> if we can automate this for ChangeIds, we could also automate this for >> patch-sets – the last patch in the series just gets the Closes: tag >> added by mumi. > > I think it would work using some pre-commit hook. When one commits > their change, this commit is run and it can pre-fill the commit > message. Well, that’s how I have understood the thread. Yes; exactly like how it's done in Gerrit, if you've ever used that (we'd reuse their hook). It'd be enabled out-of-the-box so it'd be transparent to users. >> Furthermore, I'm not convinced that it would ease the issue of >> forgotten bugs as you can't really apply them to the past. So the >> practical use is limited to the case where you intentionally cherry- >> pick this or that commit from a series. How we want to deal with that >> case could be a discussion in its own right, and maybe ChangeIds really >> trump the explicit tags proposed by Giovanni or myself here. Whether >> that justifies the cognitive overhead of juggling them around on every >> submission remains to be shown or disproven. I like the 'Closes: ' trailer idea; it's simple. However, it'd need to be something added locally, either the user typing it out (unlikely for most contributors) or via some mumi wizardry (it's unlikely that all users will use mumi), which means its usage (and value) would depend on how motivated individuals are to learn these new tricks. On the other hands, having Change-Ids added by a pre-commit hook automatically would means the user doesn't need to do anything special other than using git, and we could still infer useful information at any time (in a server hook, or as a batch process). For this reason, I think we could have both (why not? Change-Ids by themselves provide some value already -- traceability between our git history and guix-patches). -- Thanks, Maxim ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 3:00 ` Maxim Cournoyer @ 2023-09-14 10:48 ` Giovanni Biscuolo 2023-09-15 21:46 ` Vagrant Cascadian 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-14 10:48 UTC (permalink / raw) To: Maxim Cournoyer, Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2232 bytes --] Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: [...] > I like the 'Closes: ' trailer idea; it's simple. However, it'd need to > be something added locally, either the user typing it out (unlikely for > most contributors) or via some mumi wizardry (it's unlikely that all > users will use mumi), which means its usage (and value) would depend on > how motivated individuals are to learn these new tricks. I agree: the ratio, or better usecase, of my /trivial/ (in design, not in implementation) initial proposal [1] was to try to help committers closing bugs "in one go" by adding proper information to the commit message, e.g. "Closes: #NNNNN" It was _not_ intended for contributors, also because they could _not_ know that **specific** patch in a patch series will really close a **whole** bug report: that's only a judgement of the committer. Also, my ratio was influenced by my misunderstanding of a series of bug closing actions performed by Vagrant (see [1] for details): the problem in the majority (all?) of those cases was **not** that the committer simply forgot to close the related bug report /but/ that bug reports containing (different) patches for the _same_ package were not linked each other: the solution to this class of problems in obviously not "Automatically close bug report when a patch is committed", it's something else [2] > On the other hands, having Change-Ids added by a pre-commit hook > automatically would means the user doesn't need to do anything special > other than using git, and we could still infer useful information at any > time (in a server hook, or as a batch process). > > For this reason, I think we could have both (why not? Change-Ids by > themselves provide some value already -- traceability between our git > history and guix-patches). I agree: just having 'Change-Ids' alone already provide some added value, even if we still miss the tooling (server side git hook, batch processing Thanks! Gio' [1] id:8734zrn1sc.fsf@xelera.eu https://yhetil.org/guix/8734zrn1sc.fsf@xelera.eu/ [2] id:87msxyfhmv.fsf@xelera.eu https://yhetil.org/guix/87msxyfhmv.fsf@xelera.eu -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 10:48 ` Giovanni Biscuolo @ 2023-09-15 21:46 ` Vagrant Cascadian 2023-09-19 16:41 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-15 21:46 UTC (permalink / raw) To: Giovanni Biscuolo, Maxim Cournoyer, Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1814 bytes --] On 2023-09-14, Giovanni Biscuolo wrote: > Maxim Cournoyer <maxim.cournoyer@gmail.com> writes: >> I like the 'Closes: ' trailer idea; it's simple. However, it'd need to >> be something added locally, either the user typing it out (unlikely for >> most contributors) or via some mumi wizardry (it's unlikely that all >> users will use mumi), which means its usage (and value) would depend on >> how motivated individuals are to learn these new tricks. > > I agree: the ratio, or better usecase, of my /trivial/ (in design, not > in implementation) initial proposal [1] was to try to help committers > closing bugs "in one go" by adding proper information to the commit > message, e.g. "Closes: #NNNNN" To be really, really clear, I am honestly pretty much fine with anything except: Closes:.*#NNNNN or Closes:.*NNNNN These are already widely used in Debian, and their use was well established before guix or even nix were even an inkling of an idea wriggling around in any human brains. Staying away from anything that uses any permutation of "close" would be most appreciated. :) (There may be some slightly more complicated variants; I think someone posted a link to the regexp used earlier in the thread) Since I push the entire relevent portions of upstream guix git history when pushing changes for guix packaging in Debian, it would be a significant bother for me if guix started using the same syntax, or similar enough that a trivial typo might lead to something acting on the wrong issue tracker... This is why I think it is important for projects to have some sort of namespacing for this sort of thing; I am not really opinionated on the exact details, other than it not conflicting with Debian's terribly generic entirely un-namespaced historical "Closes:" syntax. :) live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-15 21:46 ` Vagrant Cascadian @ 2023-09-19 16:41 ` Giovanni Biscuolo 0 siblings, 0 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-19 16:41 UTC (permalink / raw) To: Vagrant Cascadian, Maxim Cournoyer, Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 670 bytes --] Hi Vagrant, Vagrant Cascadian <vagrant@debian.org> writes: [...] > This is why I think it is important for projects to have some sort of > namespacing for this sort of thing; I am not really opinionated on the > exact details, other than it not conflicting with Debian's terribly > generic entirely un-namespaced historical "Closes:" syntax. :) Noted and agreed! At this point of discussion I also think there is consensus (by the persons involved in this thread until now) to use a namespaced URI (a full URL) for that upcoming feature (one of the two discussed in the thread). Thanks, Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 22:12 ` Simon Tournier 2023-09-14 3:00 ` Maxim Cournoyer @ 2023-09-14 10:27 ` Giovanni Biscuolo 2023-09-14 12:25 ` Simon Tournier 1 sibling, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-14 10:27 UTC (permalink / raw) To: Simon Tournier, Liliana Marie Prikler, Maxim Cournoyer Cc: Vagrant Cascadian, guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 645 bytes --] Simon Tournier <zimon.toutoune@gmail.com> writes: [...] >> maybe ChangeIds really trump the explicit tags proposed by Giovanni >> or myself here. Whether that justifies the cognitive overhead of >> juggling them around on every submission remains to be shown or >> disproven. > > I agree. I am not convinced by the benefits and I already see some > troubles. Please can you expand what troubles do you see in automatically adding 'Change-Id:' using a hook-commit-msg like https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html ? Thanks, Gio' -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 10:27 ` Giovanni Biscuolo @ 2023-09-14 12:25 ` Simon Tournier 2023-09-15 7:16 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-14 12:25 UTC (permalink / raw) To: Giovanni Biscuolo, Liliana Marie Prikler, Maxim Cournoyer Cc: Vagrant Cascadian, guix-devel, Ludovic Courtès Hi, On Thu, 14 Sep 2023 at 12:27, Giovanni Biscuolo <g@xelera.eu> wrote: > Please can you expand what troubles do you see in automatically adding > 'Change-Id:' using a hook-commit-msg like > https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html > ? 1. The hook must be installed. 2. The hook must not be in conflict with user configuration. 3. The generated Change-Id string can be mangled by some user unexpected action. 4. etc. Many things can rail out on user side. For an example, base-commit is almost appearing systematically in submitted patches almost 3 years later. The patches of some submissions are badly formatted. Etc. Whatever the implementation, I am not convinced that the effort is worth the benefits. And I am not convinced it will help in closing the submissions when the patches have already been applied. That’s said, I am not against the proposal. I just have mixed feelings and before deploying I strongly suggest to review if the proposal covers the intent. Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 12:25 ` Simon Tournier @ 2023-09-15 7:16 ` Giovanni Biscuolo 2023-09-15 9:03 ` Simon Tournier 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-15 7:16 UTC (permalink / raw) To: Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 3628 bytes --] Hello Simon, thank you for havig listed possible troubles. Before commenting, just let me repeat that we are _copying_ the 'Change-Id' idea (and related possible implementation issues) from Gerrit: https://gerrit-review.googlesource.com/Documentation/user-changeid.html This means that Somewhere™ in our documentation we should start explaining that: --8<---------------cut here---------------start------------->8--- Our code review system needs to identify commits that belong to the same review. For instance, when a proposed patch needs to be modified to address the comments of code reviewers, a second version of that patch can be sent to guix-patches@gnu.org. Our code review system allows attaching those 2 commits to the same change, and relies upon a Change-Id line at the bottom of a commit message to do so. With this Change-Id, our code review system can automatically associate a new version of a patch back to its original review, even across cherry-picks and rebases. --8<---------------cut here---------------end--------------->8--- In other words, 'Change-Id' is /just/ metadata automatically added to help in code review **tracking**, specificcally helping "across cherry-picks and rebases" [1] Sorry if I'm repeating things probably already understood! Simon Tournier <zimon.toutoune@gmail.com> writes: [...] >> Please can you expand what troubles do you see in automatically adding >> 'Change-Id:' using a hook-commit-msg like >> https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html >> ? > > 1. The hook must be installed. AFAIU a hook is already installed when configuring for contribution. If this is stil not properly documented it will be fixed. > 2. The hook must not be in conflict with user configuration. I guess you mean not in conflict with other locally installed git hooks: since AFAIU we **already** have a locally installed git hook, this is already a requirement and this is something the user (contributor) should be aware of. If this is stil not properly documented it will be fixed. > 3. The generated Change-Id string can be mangled by some user unexpected > action. Contributors and committers should not delete or change and already existing 'Change-Id', this will be documented. > Many things can rail out on user side. For an example, base-commit is > almost appearing systematically in submitted patches almost 3 years > later. I don't understand how this could impact the addition of the patch-tracking metadata named 'Change-Id' > The patches of some submissions are badly formatted. Etc. I don't understand what is the problem of having a 'Change-Id' (in commit messages) in badly formatted patch submissions. > Whatever the implementation, I am not convinced that the effort is worth > the benefits. OK, I'm sorry > And I am not convinced it will help in closing the submissions when > the patches have already been applied. OK, I'm sorry > That’s said, I am not against the proposal. I just have mixed feelings > and before deploying I strongly suggest to review if the proposal covers > the intent. OK, thank you for your suggestion. Happy hacking! Gio' [1] AFAIU 'Change-Id' can even track different versions of patches (that by design are from commits in the same branch, properly rebased as needed) sent by mistake via **different bug reports**, this also means that different bug reports containing the same 'Change-Id' are _surely_ linked togheter. -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-15 7:16 ` Giovanni Biscuolo @ 2023-09-15 9:03 ` Simon Tournier 2023-09-15 14:37 ` The already complicated (complex?) process for contributing Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-15 9:03 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: guix-devel Hi Giovanni, Before commenting, let me repeat. ;-) That’s said, I am not against the proposal. I just have mixed feelings and before deploying I strongly suggest to review if the proposal covers the intent. On Fri, 15 Sep 2023 at 09:16, Giovanni Biscuolo <g@xelera.eu> wrote: > Before commenting, just let me repeat that we are _copying_ the > 'Change-Id' idea (and related possible implementation issues) from > Gerrit: > > https://gerrit-review.googlesource.com/Documentation/user-changeid.html > > This means that Somewhere™ in our documentation we should start > explaining that: > > --8<---------------cut here---------------start------------->8--- > > Our code review system needs to identify commits that belong to the same > review. For instance, when a proposed patch needs to be modified to > address the comments of code reviewers, a second version of that patch > can be sent to guix-patches@gnu.org. Our code review system allows > attaching those 2 commits to the same change, and relies upon a > Change-Id line at the bottom of a commit message to do so. With this > Change-Id, our code review system can automatically associate a new > version of a patch back to its original review, even across cherry-picks > and rebases. > > --8<---------------cut here---------------end--------------->8--- > > In other words, 'Change-Id' is /just/ metadata automatically added to > help in code review **tracking**, specificcally helping "across > cherry-picks and rebases" [1] > > Sorry if I'm repeating things probably already understood! All this does not address my concern. :-) >> 1. The hook must be installed. [...] > If this is stil not properly documented it will be fixed. Maybe… and it will be another item in the already very long list of steps to complete before contributing. This is one of my concern: add yet another thing to an already complicated process for contributing. >> 2. The hook must not be in conflict with user configuration. > > I guess you mean not in conflict with other locally installed git hooks: > since AFAIU we **already** have a locally installed git hook, this is > already a requirement and this is something the user (contributor) > should be aware of. AFAIK, we have a pre-push hook. This hook is only useful for the small set of people who push the code. And we can assume that this set of people is skilled and are able to invest if something is unexpected. Being Guix committer implies such commitment, IMHO. Here, we are speaking for a Git hook applied to all. That’s a different situation, IMHO. As an user and simple contributor, if I already have a global pre-commit hook and then when I want to contribute to Guix, I potentially hit some unexpected behaviour or even conflict, then as an user, either a. I give up, drop and move my interest to something else than Guix, either b. I spend some time for fixing this annoyance and that is pure friction (no value for me and no value for the project). > If this is stil not properly documented it will be fixed. Yes, yet another thing to an already complicated process for contributing. >> 3. The generated Change-Id string can be mangled by some user unexpected >> action. > > Contributors and committers should not delete or change and already > existing 'Change-Id', this will be documented. Yes, yet another thing to an already complicated process for contributing. >> Many things can rail out on user side. For an example, base-commit is >> almost appearing systematically in submitted patches almost 3 years >> later. > > I don't understand how this could impact the addition of the > patch-tracking metadata named 'Change-Id' > >> The patches of some submissions are badly formatted. Etc. > > I don't understand what is the problem of having a 'Change-Id' (in > commit messages) in badly formatted patch submissions. In these both example, I just pointed that we already have some potential frictions. And here, another one is added. What I know from my experience at work and from the small experience backed by my reading of help-guix or some bug reports is that: robustness is hard in an environment you do not control. More action we add in that uncontrolled environment and weaker the robustness becomes; and weak robustness means friction. Again, I am not saying the proposal is not worth – I am following the discussion with interest. :-) I am just trying to ask if this proposal will really fix an concrete annoyance compared to the relative complexity it adds, and if it is the right balance between the part and the counter-part. Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* The already complicated (complex?) process for contributing. 2023-09-15 9:03 ` Simon Tournier @ 2023-09-15 14:37 ` Giovanni Biscuolo 2023-09-15 16:43 ` Simon Tournier 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-15 14:37 UTC (permalink / raw) To: Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 3302 bytes --] Hi Simon, maybe we are drifting... again? ;-) Simon Tournier <zimon.toutoune@gmail.com> writes: [...] >> If this is stil not properly documented it will be fixed. > > Maybe… and it will be another item in the already very long list of > steps to complete before contributing. This is one of my concern: add > yet another thing to an already complicated process for contributing. [...] > Yes, yet another thing to an already complicated process for > contributing. [...] > Yes, yet another thing to an already complicated process for > contributing. [...] While I agree that if some-"thing" (or the lack of, OK?) is /complicating/ the contributing process, that "thing" should be addressed, I disagree that _adding_ the **requirement** for contributors to properly configure git to use git hooks provided by Guix and understand the purpose of and pay attention to the 'Change-Id' field is another "thing" that adds /complication/. Talking in general: if you mean that contributing to Guix is /complex/ I agree, but /complex/ does not imply /complication/; also, /complexity/ is common to every DCVS based project with significant dimensions that I know of. So yes, contributing /in general/ is a complex process and I guess we all would like it to be less complicated as possible; proposals in this thread are trying to go in this direction: adding a little help in «integrating a proposed change» with no complications (useless by design) for _all_ involved parties. Looking at other project development processes, take as an example **one** of the activities in the Linux kernel development process: «posting patches» [1]. You also need to know: - «Submitting patches: the essential guide to getting your code into the kernel» [2] - «Linux Kernel patch submission checklist» [3] - «Linux kernel coding style» [4] - «Email clients info for Linux» [5]... just to mention one of the cited MUAs, it states: «Gmail (Web GUI). Does not work for sending patches..». Probably Guix should copy/paste that. Is it /complex/ or /complicated/? To begin with, it's quite a lot of documentation, quite challenging to study /just/ to be able to send a useful patch to the Linux kernel... or /just/ to understand how and _why_ the process is designed that way. I hear you Someone™ reader: I cannot summarise, sorry! :-D ...anyway it's a very interesting reading, I'd suggest it. (I did not read all.) To have an overall picture of the /complexity/ of the whole development process of the Linux kernel, take a look at «the index» [6]. :-O Could it be simpified without making it /complicated/ for Someone™? ...maybe. Is Guix development process comparable to the Linux kernel one? ...who knows :-D Thanks! Gio' [1] https://docs.kernel.org/process/5.Posting.html [2] https://www.kernel.org/doc/html/latest/process/submitting-patches.html [3] https://www.kernel.org/doc/html/latest/process/submit-checklist.html [4] https://www.kernel.org/doc/html/latest/process/coding-style.html [5] https://docs.kernel.org/process/email-clients.html "Run away from it.": ROTFL! [6] https://docs.kernel.org/process/index.html -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: The already complicated (complex?) process for contributing. 2023-09-15 14:37 ` The already complicated (complex?) process for contributing Giovanni Biscuolo @ 2023-09-15 16:43 ` Simon Tournier 2023-09-16 7:33 ` Giovanni Biscuolo 0 siblings, 1 reply; 69+ messages in thread From: Simon Tournier @ 2023-09-15 16:43 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: guix-devel Hi Giovanni, On Fri, 15 Sep 2023 at 16:37, Giovanni Biscuolo <g@xelera.eu> wrote: > maybe we are drifting... again? ;-) Yes we are. :-) > Is it /complex/ or /complicated/? Change-Id is not really complex – especially if the complexity is hidden behind some pre-commit hook – and it is not complex compared to setup git-send-email for example. IMHO, it is complicated because it adds yet another point of potential friction. Well, let focus the discussion on practical implementation details instead of some abstract considerations. It is only once all is implemented that this discussion about “complicated” enters, IMHO. On a side note, documentation is very fine but I do not read (or study!?) the documentation of my oven, instead I am just cooking stuff for fun. Other said, the first principle is the principle of the least astonishment (POLA). If a project needs really lengthy documentation for just contributing, either it is a more-than-thousand contributors project as the Linux kernel, either something is wrong. Maybe both. ;-) Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: The already complicated (complex?) process for contributing. 2023-09-15 16:43 ` Simon Tournier @ 2023-09-16 7:33 ` Giovanni Biscuolo 2023-09-16 8:33 ` Simon Tournier 0 siblings, 1 reply; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-16 7:33 UTC (permalink / raw) To: Simon Tournier; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2941 bytes --] Hi Simon, since I already replied you offline please forgive me for any repetitions, but later I realized a better comment to your metaphore (see below) could be useful to other people. Simon Tournier <zimon.toutoune@gmail.com> writes: [...] > On a side note, documentation is very fine but I do not read (or > study!?) the documentation of my oven, instead I am just cooking stuff > for fun. On a side note, I like your metaphores! OK but in my view the GNU Guix project is not a personal kitchen but an international food company [1], with a complex /distributed/ production process involving tools (ovens, etc.) and recipes (code) ranging from trivial to very complex; not to forget **legal requirements**, a challenging supply chain management and a very _peculiar_ process called "change integration management" from "customers" proposals. Am I exaggerating? Now, given the above context is a valid analogy, is it a fair expectation you can contribute to the company [1] with the food you cook just for fun with your oven? The food GNU Guix company [1] supplies is boostrappable and reproducible binary code, largerly "baked" using third-party recipes, with a progressively shrinking binary seed: yeah! :-D Well, to be honest the food analogy does not fit very well: Guix supplies /peculiar/ tools that users can use for a variety of activities, ranging from cooking just for fun to complex infrastructures management... and to effectively use /that/ tools users should better study its documentation (ungrateful job the documentation writer!) ;-) [...] > If a project needs really lengthy documentation for just contributing, > either it is a more-than-thousand contributors project, as the Linux > kernel I disagree this is a valid metric to measure the complexity of the process called "change integration management", it could even be _one_ customer asking to change the recipe for his preferred cake. > either something is wrong. Maybe both. ;-) ...or maybe it's not "just" a project but a whole food compay [1]. Oh, oh, oh: wait! Are we going into /that/ famous essay [2] and its sequel [3] ?!? (very interesting readings!) ...OK, I surrender, unconditionally! :-D Happy cooking! :-) Gio' [1] with a very peculiar vision, mission and business model; but please concede the analogy [2] "On Management and the Maginot Line" http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s12.html [3] "Project Structures and Ownership" http://catb.org/~esr/writings/homesteading/homesteading/ar01s16.html P.S.: on a side note, I think that part (all?) of the problems discussed in [2] and [3] are rooted in the anthropological set of questions known as «Phenomenon of Bullshit Jobs» https://davidgraeber.org/articles/on-the-phenomenon-of-bullshit-jobs-a-work-rant/ -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: The already complicated (complex?) process for contributing. 2023-09-16 7:33 ` Giovanni Biscuolo @ 2023-09-16 8:33 ` Simon Tournier 0 siblings, 0 replies; 69+ messages in thread From: Simon Tournier @ 2023-09-16 8:33 UTC (permalink / raw) To: Giovanni Biscuolo; +Cc: guix-devel Hi Giovanni, On Sat, 16 Sep 2023 at 09:33, Giovanni Biscuolo <g@xelera.eu> wrote: > since I already replied you offline please forgive me for any > repetitions, but later I realized a better comment to your metaphore > (see below) could be useful to other people. Since your offlist comment is more or less about the same idea, let me paste my answer. :-) First, Guix is done by volunteers and is not an “industrial food company”. :-) Being done by volunteers does not mean low-quality – Guix is probably better than many products done by professionals ;-). Instead, done by volunteers implies other mechanisms than the ones used in “industrial food company”. Second, I think we all agree with: we all have or had to read some documentation and have to make some trial/error loop before being able to run Guix. That's also all my point, IMHO. :-) As you said elsewhere, complex does not mean complicated. Simple is not necessary easy. Etc. Somehow, Rich Hikey says the obvious in their talk [1] and that’s why the talk speaks to many people, I guess. Rich Hikey makes clear what we already know and had never said explicitly. It is important to remember the message behind, IMHO. From my point of view, if the Guix community wants to Guix being successful, then we have to work on two directions: 1. Spread the word. 2. Keep easy what should be easy. About #1, it means talks, skill sharing, blog posts, tutorials, documentation, etc. and being pedagogical by showing what Guix is able to offer. About #2, it is where Guix is still a bit weak and we need to work on that part. Although, it is regularly improving. Back to the initial discussion of this thread, which is a tiny stuff in that picture :-) Your answer "it will be documented" focus on #1. That's fine and yes having a good documentation is more than important. My concern is to just say: please do not forget #2. Thanks for the discussion. And thanks for pushing ideas and for pushing how to make them concrete. My final word, the culinary proverb: talk does not cook the rice. :-) I am going to try to cook some rice. ;-) Cheers, simon ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 19:14 ` Liliana Marie Prikler 2023-09-13 22:12 ` Simon Tournier @ 2023-09-14 7:20 ` Andreas Enge 2023-09-14 10:25 ` Giovanni Biscuolo 2 siblings, 0 replies; 69+ messages in thread From: Andreas Enge @ 2023-09-14 7:20 UTC (permalink / raw) To: Liliana Marie Prikler Cc: Maxim Cournoyer, Giovanni Biscuolo, Vagrant Cascadian, guix-devel, Ludovic Courtès Hello, Am Wed, Sep 13, 2023 at 09:14:52PM +0200 schrieb Liliana Marie Prikler: > I do wonder how the ChangeId would work in practice. Since it's not > really assigned by the committer, it would have to be generated "on the > fly" and attached to the mail in between, which could result in all > kinds of nasty behaviour like unstable Ids or duplicated ones. this one would be easy to solve: it could just be the hash of something. For instance, it could actually be the commit "number" itself of the commit when it is first created. Andreas ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-13 19:14 ` Liliana Marie Prikler 2023-09-13 22:12 ` Simon Tournier 2023-09-14 7:20 ` [workflow] Automatically close bug report when a patch is committed Andreas Enge @ 2023-09-14 10:25 ` Giovanni Biscuolo 2 siblings, 0 replies; 69+ messages in thread From: Giovanni Biscuolo @ 2023-09-14 10:25 UTC (permalink / raw) To: Liliana Marie Prikler, Maxim Cournoyer; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 3805 bytes --] Hi Liliana Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Mittwoch, dem 13.09.2023 um 11:27 -0400 schrieb Maxim Cournoyer: [...] > I do wonder how the ChangeId would work in practice. It's a «tag to track commits across cherry-picks and rebases.» It is used by Gerrit to identify commits that belong to the same review: https://gerrit-review.googlesource.com/Documentation/user-changeid.html We could use it for the same purpose and instead of building a web application for code review, "simply" count that all 'Change-Id's in a patchset have been pushed to the Guix official repo to declare the related bug report closed. > Since it's not really assigned by the committer, it would have to be > generated "on the fly" and attached to the mail in between Not to the mail, to the commit msg! [1] > which could result in all kinds of nasty behaviour like unstable Ids > or duplicated ones. No, modulo hook script bugs obviously. > Also, if we can automate this for ChangeIds, we could also automate > this for patch-sets – the last patch in the series just gets the > Closes: tag added by mumi. The idea is that, but we don't need to add "Closes" to the commit msg (via post-receive hook), we "just" need the hook to send an email to NNNN-done on behalf of the committer (the committer, not the contributor). > Furthermore, I'm not convinced that it would ease the issue of > forgotten bugs as you can't really apply them to the past. No, this 'Change-Id' is not intended for past bug reports since we **must not** rewrite past commits _because_ commit messages are /embedded/ in commit objects. ...but for this purpose we could use git-notes, **if** wanted: https://git-scm.com/docs/git-notes :-D > So the practical use is limited to the case where you intentionally > cherry- pick this or that commit from a series. No: the practical use is that for each guix-patch bug report we can count how many [PATCH]es are left to be committed and act accordigly, for example notify all involved parties (contributor, committer, 'X-Debbugs-CC's) that N/M patches from the series are still to be merged upstream... or close the bug report if zero patches are left. > How we want to deal with that case could be a discussion in its own > right, and maybe ChangeIds really trump the explicit tags proposed by > Giovanni or myself here. Whether that justifies the cognitive > overhead of juggling them around on every submission remains to be > shown or disproven. There will be no additional cognitive overhead for contributors since 'Change-Id' will be automatically managed, they can simply ignore it. > Beyond the scope of the discussion so far, it also doesn't help us with > duplicate or superseded patches (e.g. two series on the mailing list > propose a similar change, because one of them has already been > forgotten). No, IMO there is **no** solution to this problems other than "triaging" (id:87msxyfhmv.fsf@xelera.eu https://yhetil.org/guix/87msxyfhmv.fsf@xelera.eu/) > Again, the explicit close tags would allow this case to be > handled in an interpretable fashion. In both cases, we do however also > introduce the potential for incorrect tagging, which then needs to be > resolved manually (more or less a non-issue, as it's the status quo). There is no potential of incorret tagging when using a hook-commit-msg [1] to add 'Change-Id'. For the other method discussed here, there is no way to avoid users mistyping 'Closes:' pseuto-headers in their commit messages: if mistuped they will be ignored :-( Cheeers, Gio' [1] https://gerrit-review.googlesource.com/Documentation/cmd-hook-commit-msg.html -- Giovanni Biscuolo Xelera IT Infrastructures [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 849 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-09 23:59 ` Liliana Marie Prikler 2023-09-11 8:09 ` Giovanni Biscuolo @ 2023-09-14 22:51 ` Vagrant Cascadian 2023-09-15 4:23 ` Liliana Marie Prikler 1 sibling, 1 reply; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-14 22:51 UTC (permalink / raw) To: Liliana Marie Prikler, Giovanni Biscuolo, Maxim Cournoyer Cc: guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 1122 bytes --] On 2023-09-10, Liliana Marie Prikler wrote: > Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant Cascadian: >> I am much more comfortable with the "Fixes" convention of: >> >> Fixes: https://issues.guix.gnu.org/NNN > I like the idea, but we should also consider the bugs.gnu.org address > here as well as the convention of putting it into angular brackets. In > fact, I might even prefer it if the convention was > Fixes: Bug description <link> > where bug description is a (possibly empty) name for the bug such as > "Emacs hangs when I press a key" or something. > > > As for when to send it, remember that we already send a bunch of mails > to guix-commits@gnu.org as our commit hook? I think it shouldn't be > too hard to search for the fixes line and send it to debbugs control. Well, the complication gets to be ... which branch did it land in? in master, it's fairly obvious... you can just mark it as done/closed/etc. I guess with other branches it makes sense to mark it with the "pending" or maybe some more specific usertag "pending-in-BRANCH"? live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-14 22:51 ` Vagrant Cascadian @ 2023-09-15 4:23 ` Liliana Marie Prikler 2023-09-15 21:30 ` Vagrant Cascadian 0 siblings, 1 reply; 69+ messages in thread From: Liliana Marie Prikler @ 2023-09-15 4:23 UTC (permalink / raw) To: Vagrant Cascadian, Giovanni Biscuolo, Maxim Cournoyer Cc: guix-devel, Ludovic Courtès Am Donnerstag, dem 14.09.2023 um 15:51 -0700 schrieb Vagrant Cascadian: > On 2023-09-10, Liliana Marie Prikler wrote: > > Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant > > Cascadian: > > > I am much more comfortable with the "Fixes" convention of: > > > > > > Fixes: https://issues.guix.gnu.org/NNN > > I like the idea, but we should also consider the bugs.gnu.org > > address > > here as well as the convention of putting it into angular > > brackets. In > > fact, I might even prefer it if the convention was > > Fixes: Bug description <link> > > where bug description is a (possibly empty) name for the bug such > > as "Emacs hangs when I press a key" or something. > > > > > > As for when to send it, remember that we already send a bunch of > > mails to guix-commits@gnu.org as our commit hook? I think it > > shouldn't be too hard to search for the fixes line and send it to > > debbugs control. > > Well, the complication gets to be ... which branch did it land in? in > master, it's fairly obvious... you can just mark it as > done/closed/etc. I guess with other branches it makes sense to mark > it with the "pending" or maybe some more specific usertag > "pending-in-BRANCH"? I don't think such a distinction is needed in most cases. In fact, if it's about regular bugs, then a graft should likely hit master in case that an actual update is needed on another branch. Other than that, it'd be silly to mark bugs specifically for e.g. "emacs-team" as still pending on the account of them not having hit master yet. Cheers ^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [workflow] Automatically close bug report when a patch is committed 2023-09-15 4:23 ` Liliana Marie Prikler @ 2023-09-15 21:30 ` Vagrant Cascadian 0 siblings, 0 replies; 69+ messages in thread From: Vagrant Cascadian @ 2023-09-15 21:30 UTC (permalink / raw) To: Liliana Marie Prikler, Giovanni Biscuolo, Maxim Cournoyer Cc: guix-devel, Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 2193 bytes --] On 2023-09-15, Liliana Marie Prikler wrote: > Am Donnerstag, dem 14.09.2023 um 15:51 -0700 schrieb Vagrant Cascadian: >> On 2023-09-10, Liliana Marie Prikler wrote: >> > Am Donnerstag, dem 07.09.2023 um 09:12 -0700 schrieb Vagrant >> > Cascadian: >> > > I am much more comfortable with the "Fixes" convention of: >> > > >> > > Fixes: https://issues.guix.gnu.org/NNN >> > I like the idea, but we should also consider the bugs.gnu.org >> > address >> > here as well as the convention of putting it into angular >> > brackets. In >> > fact, I might even prefer it if the convention was >> > Fixes: Bug description <link> >> > where bug description is a (possibly empty) name for the bug such >> > as "Emacs hangs when I press a key" or something. >> > >> > >> > As for when to send it, remember that we already send a bunch of >> > mails to guix-commits@gnu.org as our commit hook? I think it >> > shouldn't be too hard to search for the fixes line and send it to >> > debbugs control. >> >> Well, the complication gets to be ... which branch did it land in? in >> master, it's fairly obvious... you can just mark it as >> done/closed/etc. I guess with other branches it makes sense to mark >> it with the "pending" or maybe some more specific usertag >> "pending-in-BRANCH"? > I don't think such a distinction is needed in most cases. In fact, if > it's about regular bugs, then a graft should likely hit master in case > that an actual update is needed on another branch. Other than that, > it'd be silly to mark bugs specifically for e.g. "emacs-team" as still > pending on the account of them not having hit master yet. I guess I do not consider anything done until it lands in the master branch, but obviously if it is committed in some branch, it is nice to flag that somehow. "pending" seems appropriate up until it lands in master. Maybe marking by team or branch or whatnot is overkill, sure. Though it would allow you could see at a glance which branch to look in without diving into the whole history of the issue... Of course, I will not make terrible loud noises if folks decide otherwise. :) live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 69+ messages in thread
end of thread, other threads:[~2023-09-27 14:42 UTC | newest] Thread overview: 69+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-09-06 8:28 [workflow] Automatically close bug report when a patch is committed Giovanni Biscuolo 2023-09-06 9:45 ` Christopher Baines 2023-09-07 9:38 ` [workflow] Triaging issues (was Automatically close bug report when a patch is committed) Giovanni Biscuolo 2023-09-07 15:41 ` Vagrant Cascadian 2023-09-11 7:37 ` Giovanni Biscuolo 2023-09-11 15:29 ` Simon Tournier 2023-09-11 17:08 ` Giovanni Biscuolo 2023-09-06 16:14 ` [workflow] Automatically close bug report when a patch is committed Maxim Cournoyer 2023-09-07 0:23 ` Simon Tournier 2023-09-07 2:01 ` Maxim Cournoyer 2023-09-07 9:58 ` Simon Tournier 2023-09-09 23:43 ` Maxim Cournoyer 2023-09-07 13:11 ` Giovanni Biscuolo 2023-09-09 23:39 ` Maxim Cournoyer 2023-09-11 7:53 ` Giovanni Biscuolo 2023-09-11 14:01 ` Maxim Cournoyer 2023-09-11 17:10 ` Giovanni Biscuolo 2023-09-07 11:08 ` Giovanni Biscuolo 2023-09-07 11:58 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 2023-09-07 13:09 ` Maxim Cournoyer 2023-09-07 15:52 ` Vagrant Cascadian 2023-09-09 23:50 ` Maxim Cournoyer 2023-09-11 11:00 ` Simon Tournier 2023-09-11 13:46 ` Maxim Cournoyer 2023-09-11 14:11 ` Simon Tournier 2023-09-11 15:33 ` Maxim Cournoyer 2023-09-13 2:46 ` Vagrant Cascadian 2023-09-13 15:49 ` Maxim Cournoyer 2023-09-14 16:30 ` Vagrant Cascadian 2023-09-14 18:02 ` Maxim Cournoyer 2023-09-07 13:19 ` Giovanni Biscuolo 2023-09-07 10:40 ` Giovanni Biscuolo 2023-09-07 13:49 ` Giovanni Biscuolo 2023-09-27 14:36 ` Christopher Baines 2023-09-07 16:12 ` Vagrant Cascadian 2023-09-07 16:28 ` Felix Lechner via Development of GNU Guix and the GNU System distribution. 2023-09-09 23:59 ` Liliana Marie Prikler 2023-09-11 8:09 ` Giovanni Biscuolo 2023-09-11 13:59 ` Maxim Cournoyer 2023-09-11 17:55 ` Liliana Marie Prikler 2023-09-11 18:36 ` Maxim Cournoyer 2023-09-11 18:51 ` Liliana Marie Prikler 2023-09-11 20:41 ` Maxim Cournoyer 2023-09-12 13:55 ` Giovanni Biscuolo 2023-09-13 15:19 ` Maxim Cournoyer 2023-09-14 9:42 ` Giovanni Biscuolo 2023-09-14 16:58 ` Liliana Marie Prikler 2023-09-12 17:03 ` Liliana Marie Prikler 2023-09-13 9:37 ` Giovanni Biscuolo 2023-09-13 15:27 ` Maxim Cournoyer 2023-09-13 19:14 ` Liliana Marie Prikler 2023-09-13 22:12 ` Simon Tournier 2023-09-14 3:00 ` Maxim Cournoyer 2023-09-14 10:48 ` Giovanni Biscuolo 2023-09-15 21:46 ` Vagrant Cascadian 2023-09-19 16:41 ` Giovanni Biscuolo 2023-09-14 10:27 ` Giovanni Biscuolo 2023-09-14 12:25 ` Simon Tournier 2023-09-15 7:16 ` Giovanni Biscuolo 2023-09-15 9:03 ` Simon Tournier 2023-09-15 14:37 ` The already complicated (complex?) process for contributing Giovanni Biscuolo 2023-09-15 16:43 ` Simon Tournier 2023-09-16 7:33 ` Giovanni Biscuolo 2023-09-16 8:33 ` Simon Tournier 2023-09-14 7:20 ` [workflow] Automatically close bug report when a patch is committed Andreas Enge 2023-09-14 10:25 ` Giovanni Biscuolo 2023-09-14 22:51 ` Vagrant Cascadian 2023-09-15 4:23 ` Liliana Marie Prikler 2023-09-15 21:30 ` Vagrant Cascadian
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).