guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Codifying/Documenting Guix commit message conventions?


From: Richard Sent
Subject: Codifying/Documenting Guix commit message conventions?
Date: Thu, 27 Jun 2024 19:04:49 -0400

Hi Guix,

I noticed that there seems to be discrepencies between the GNU Changelog
format and Guix's commit message convention. For example, see these
lines from [1].

>    Our convention for indicating conditional changes is to use _square
> brackets around the name of the condition_.
> 
>    Conditional changes can happen in numerous scenarios and with many
> variations, so here are some examples to help clarify. This first
> example describes changes in C, Perl, and Python files which are
> conditional but do not have an associated function or entity name:
> 
>      * xterm.c [SOLARIS2]: Include <string.h>.

Meanwhile in Guix commit messages, [foo] seems to be used to refer to a
subset of a larger part [2]:

> * doc/guix.texi (Base Services)[extra-special-file]: Add warning regarding
> files in /etc.

>From what I'm seeing, the GNU Changelog convention is to indicate
subsets using <> [3].

> * progmodes/sh-script.el (sh-while-getopts) <sh>: Handle case that
> user-specified option string is empty.

Guix states that commit messages should follow the ChangeLog format
and—as far as I can tell—leaves it at that with no mention of
discrepencies or quirks [4].

>    Please write commit logs in the ChangeLog format (*note
> (standards)Change Logs::); you can check the commit history for
> examples.

My questions to the group are thus:

1. Is this in fact a discrepency between the GNU ChangeLog format and
Guix convention or am I missing something?

2. Are there other discrepencies out there that people know of?

3. How should we go about documenting Guix-specific conventions?

I suspect another discrepency not mentioned is Guix's tendency to prefix
header lines with e.g. "doc:" or "gnu:". I haven't found a better way to
identify what to put for those besides viewing commits touching X file.
And if a commit evenly spans multiple categories it can sometimes be
blurry determining what fits best.

Another one seems to be the [security fixes], [fixes CVE-...], and
[fixes TROVE-...] blocks added to certain header lines. What other tags
exist? There seems to be inconsistency here when referring to multiple
CVEs. For example, when a fixes tag references multiple CVEs you can
find.

[fixes CVE-2020-10700, CVE-2020-10704]  [5]
[fixes CVE-2020-3898 & CVE-2019-8842]   [6]
[fixes CVE-2023-{28755, 28756}]         [7]

I'm happy to write up documentation on best practices, but I figure a
general post on guix-devel is a good idea to make sure nothing's missed.
I'm not advocating for a new French revolution to overthrow the
ChangeLog aristocracy.

[8] seems like a very interesting commit to analyze in terms of Guix
conventions since it deals with a dense, nontrivial package change and
refers to "sub-sub elements", which don't seem to be a thing in GNU
ChangeLog land.

[1]: (standards) Conditional Changes
[2]: Guix commit 398393187cc48f449215b14cf18b13fefb228558
[3]: (standards) Indicating the Part Changed
[4]: (guix) Submitting Patches
[5]: 62881ad61c
[6]: a9ca7998f7
[7]: cd0a8950e4
[8]: 77d949c812

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]