RFC: Require full $P not just $PN on stable/keyword commit messages

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

RFC: Require full $P not just $PN on stable/keyword commit messages

Michael 'veremitz' Everitt
Hello,

I've noticed a lot of stabilisation commit messages (and a few keywording
ones too) simply state the package atom and not the relevant
release/version. I find this a little meaningless, as unless this is the
first time the package has ever been either stabilised or keyworded, it is
reasonable to expect that there is/was some transition point for a package
from when it first entered the Gentoo Repository.

Therefore, it would be much /more/ useful to have the package-version
tagged in the commit message, so that you could easily grep logs for when a
given version of a package was stabilised, and/or keyworded. Granted, this
is more of-use in a historical context compared to a present (future?!)
one, but I would argue that it conveys more meaning -with- the version than
without.

Thoughts from outside peanut gallery?

Michael / veremitz.


signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Michael 'veremitz' Everitt
On 01/11/19 19:59, Michael 'veremitz' Everitt wrote:

> Hello,
>
> I've noticed a lot of stabilisation commit messages (and a few keywording
> ones too) simply state the package atom and not the relevant
> release/version. I find this a little meaningless, as unless this is the
> first time the package has ever been either stabilised or keyworded, it is
> reasonable to expect that there is/was some transition point for a package
> from when it first entered the Gentoo Repository.
>
> Therefore, it would be much /more/ useful to have the package-version
> tagged in the commit message, so that you could easily grep logs for when a
> given version of a package was stabilised, and/or keyworded. Granted, this
> is more of-use in a historical context compared to a present (future?!)
> one, but I would argue that it conveys more meaning -with- the version than
> without.
>
> Thoughts from outside peanut gallery?
>
> Michael / veremitz.
>
Also, it's particularly helpful if you have an atom feed of a given
package, to see when versions are stabilised (present and future contexts
covered... ;D)


signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Matt Turner-5
In reply to this post by Michael 'veremitz' Everitt
On Fri, Nov 1, 2019 at 12:59 PM Michael 'veremitz' Everitt
<[hidden email]> wrote:

>
> Hello,
>
> I've noticed a lot of stabilisation commit messages (and a few keywording
> ones too) simply state the package atom and not the relevant
> release/version. I find this a little meaningless, as unless this is the
> first time the package has ever been either stabilised or keyworded, it is
> reasonable to expect that there is/was some transition point for a package
> from when it first entered the Gentoo Repository.
>
> Therefore, it would be much /more/ useful to have the package-version
> tagged in the commit message, so that you could easily grep logs for when a
> given version of a package was stabilised, and/or keyworded. Granted, this
> is more of-use in a historical context compared to a present (future?!)
> one, but I would argue that it conveys more meaning -with- the version than
> without.

Yes, I agree we should do this. My commit messages look like:

sys-apps/systemd-243-r2: ppc64 stable, bug 698766
net-misc/mosh-1.3.2: added ~alpha

In the past people have argued that the version in the title is
superfluous since you can get the same info from git (log|show) --stat
but the same (misguided argument) can be used to justify something
absurd like simply making the bug number the subject.

Honestly, just put the dang version in the title.

Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Rich Freeman
On Fri, Nov 1, 2019 at 4:36 PM Matt Turner <[hidden email]> wrote:
>
> On Fri, Nov 1, 2019 at 12:59 PM Michael 'veremitz' Everitt
> <[hidden email]> wrote:
> >
> >
> > Therefore, it would be much /more/ useful to have the package-version
> > tagged in the commit message, so that you could easily grep logs for when a
> > given version of a package was stabilised, and/or keyworded.

git log --format=oneline glibc-2.29-r2.ebuild | grep stable
9c04d06d06d51d9c76b3fe5ceb573213769f45ae sys-libs/glibc-2.29-r2: sparc
stable, bug 685818
b61ab167e82261ed2078c068ba0c2fc3a7b58aa3 sys-libs/glibc: stable
2.29-r2 for hppa, bug #685818
fad52f75c759ca326ce0f8c37e227827f01cd2f1 sys-libs/glibc: m68k stable
wrt bug #685818
0fe91535a7ba382f10084def5482e61359f201cb sys-libs/glibc: sh stable wrt
bug #685818
7b7ec9a6b3355d6111e1a449ca13e24cb6ef0295 sys-libs/glibc: s390 stable
wrt bug #685818
bcddad6780ead2b44528a4aa1d51107b4a225524 sys-libs/glibc-2.29-r2: alpha stable
2ca6a4b9d647f567d2300e7b90829993d7575b41 sys-libs/glibc: ia64 stable
wrt bug #685818
e56c3c1f1c0a256c228a59be94869751d7fd31d7 sys-libs/glibc: ppc64 stable
wrt bug #685818
52355459ec00b9ca9921bd5f788bad9b95346910 sys-libs/glibc: ppc stable
wrt bug #685818
745b07e84b5035576737d3e1a719121d02e53feb sys-libs/glibc: arm stable
wrt bug #685818
332fc91e3e72a6dd1b183ce4a19d08b45daa8e00 sys-libs/glibc: x86 stable
(bug #685818)
9e06c1242e104b66a532e7d5d919c1b3b1f8343d sys-libs/glibc: arm64 stable
(bug #685818)
b3ad265998a04a40820d078d25c06b7cb51173ef sys-libs/glibc: amd64 stable
wrt bug #685818

Seems to work fine for me.

>
> In the past people have argued that the version in the title is
> superfluous since you can get the same info from git (log|show) --stat
> but the same (misguided argument) can be used to justify something
> absurd like simply making the bug number the subject.

I don't think these are at all equivalent.  The current state just
relies on finding version history in git, which is basically the main
purpose git serves.  Your example involves joining two disparate
datasets, neither of which natively offer an SQL-compatible interface.

I think the rationale for not putting more mandatory content in the
commit summary was that its length is limited and the more boilerplate
we cram in there, the less room we have for meaningful description,
when the boilerplate is already easily searched using git (though
admittedly not from changelog extracts).  Sure, for stable/keyword
changes there isn't much in the way of description to worry about, but
for other changes I suspect that this could be limiting.

From GLEP 66: The summary line must not exceed 69 characters, and must
not be wrapped.

In the example I cited the longest summary is already 59 chars:
sys-libs/glibc: Fix handling of ${EPREFIX} when building cross-glibc

If you wanted to stick 7 more chars of PV info in there then we'd be
just 3 chars short of the limit, and this is just a randomly chosen
example.  Packages with longer PV certainly exist, along with ones
with longer summaries.

Personally I don't really care that much one way or another as long as
repoman is updated to follow any new standard, but this seems like it
could be impactful to people doing more complex work in the tree.  I
get that some people really seem to want to avoid using git, but this
is basically what it was made to do, and IMO seems like a step in the
wrong direction.  I think the main purpose of putting PN in there at
all was so that commits that hit multiple packages would be more clear
in logs.

--
Rich

Reply | Threaded
Open this post in threaded view
|

RFC: Require full $P not just $PN on stable/keyword commit messages

Michael 'veremitz' Everitt
On 01/11/19 21:11, Rich Freeman wrote:

> On Fri, Nov 1, 2019 at 4:36 PM Matt Turner <[hidden email]> wrote:
>> On Fri, Nov 1, 2019 at 12:59 PM Michael 'veremitz' Everitt
>> <[hidden email]> wrote:
>>>
>>> Therefore, it would be much /more/ useful to have the package-version
>>> tagged in the commit message, so that you could easily grep logs for when a
>>> given version of a package was stabilised, and/or keyworded.
> git log --format=oneline glibc-2.29-r2.ebuild | grep stable
> 9c04d06d06d51d9c76b3fe5ceb573213769f45ae sys-libs/glibc-2.29-r2: sparc
> stable, bug 685818
> b61ab167e82261ed2078c068ba0c2fc3a7b58aa3 sys-libs/glibc: stable
> 2.29-r2 for hppa, bug #685818
> fad52f75c759ca326ce0f8c37e227827f01cd2f1 sys-libs/glibc: m68k stable
> wrt bug #685818
> 0fe91535a7ba382f10084def5482e61359f201cb sys-libs/glibc: sh stable wrt
> bug #685818
> 7b7ec9a6b3355d6111e1a449ca13e24cb6ef0295 sys-libs/glibc: s390 stable
> wrt bug #685818
> bcddad6780ead2b44528a4aa1d51107b4a225524 sys-libs/glibc-2.29-r2: alpha stable
> 2ca6a4b9d647f567d2300e7b90829993d7575b41 sys-libs/glibc: ia64 stable
> wrt bug #685818
> e56c3c1f1c0a256c228a59be94869751d7fd31d7 sys-libs/glibc: ppc64 stable
> wrt bug #685818
> 52355459ec00b9ca9921bd5f788bad9b95346910 sys-libs/glibc: ppc stable
> wrt bug #685818
> 745b07e84b5035576737d3e1a719121d02e53feb sys-libs/glibc: arm stable
> wrt bug #685818
> 332fc91e3e72a6dd1b183ce4a19d08b45daa8e00 sys-libs/glibc: x86 stable
> (bug #685818)
> 9e06c1242e104b66a532e7d5d919c1b3b1f8343d sys-libs/glibc: arm64 stable
> (bug #685818)
> b3ad265998a04a40820d078d25c06b7cb51173ef sys-libs/glibc: amd64 stable
> wrt bug #685818
>
> Seems to work fine for me.
>
>
How well does git handle that when the ebuild is deleted from the tree?



signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Mike Gilbert-2
On Fri, Nov 1, 2019 at 5:34 PM Michael 'veremitz' Everitt
<[hidden email]> wrote:

>
> On 01/11/19 21:11, Rich Freeman wrote:
> > On Fri, Nov 1, 2019 at 4:36 PM Matt Turner <[hidden email]> wrote:
> >> On Fri, Nov 1, 2019 at 12:59 PM Michael 'veremitz' Everitt
> >> <[hidden email]> wrote:
> >>>
> >>> Therefore, it would be much /more/ useful to have the package-version
> >>> tagged in the commit message, so that you could easily grep logs for when a
> >>> given version of a package was stabilised, and/or keyworded.
> > git log --format=oneline glibc-2.29-r2.ebuild | grep stable
> > 9c04d06d06d51d9c76b3fe5ceb573213769f45ae sys-libs/glibc-2.29-r2: sparc
> > stable, bug 685818
> > b61ab167e82261ed2078c068ba0c2fc3a7b58aa3 sys-libs/glibc: stable
> > 2.29-r2 for hppa, bug #685818
> > fad52f75c759ca326ce0f8c37e227827f01cd2f1 sys-libs/glibc: m68k stable
> > wrt bug #685818
> > 0fe91535a7ba382f10084def5482e61359f201cb sys-libs/glibc: sh stable wrt
> > bug #685818
> > 7b7ec9a6b3355d6111e1a449ca13e24cb6ef0295 sys-libs/glibc: s390 stable
> > wrt bug #685818
> > bcddad6780ead2b44528a4aa1d51107b4a225524 sys-libs/glibc-2.29-r2: alpha stable
> > 2ca6a4b9d647f567d2300e7b90829993d7575b41 sys-libs/glibc: ia64 stable
> > wrt bug #685818
> > e56c3c1f1c0a256c228a59be94869751d7fd31d7 sys-libs/glibc: ppc64 stable
> > wrt bug #685818
> > 52355459ec00b9ca9921bd5f788bad9b95346910 sys-libs/glibc: ppc stable
> > wrt bug #685818
> > 745b07e84b5035576737d3e1a719121d02e53feb sys-libs/glibc: arm stable
> > wrt bug #685818
> > 332fc91e3e72a6dd1b183ce4a19d08b45daa8e00 sys-libs/glibc: x86 stable
> > (bug #685818)
> > 9e06c1242e104b66a532e7d5d919c1b3b1f8343d sys-libs/glibc: arm64 stable
> > (bug #685818)
> > b3ad265998a04a40820d078d25c06b7cb51173ef sys-libs/glibc: amd64 stable
> > wrt bug #685818
> >
> > Seems to work fine for me.
> >
> >
> How well does git handle that when the ebuild is deleted from the tree?

It handles it just fine, though you need to add "--" to disambiguate
it from a ref. For example:

git log --format=oneline --grep=stable -- foo-123.ebuild

Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Rich Freeman
In reply to this post by Michael 'veremitz' Everitt
On Fri, Nov 1, 2019 at 5:34 PM Michael 'veremitz' Everitt
<[hidden email]> wrote:
>
> > git log --format=oneline glibc-2.29-r2.ebuild | grep stable
> >
> How well does git handle that when the ebuild is deleted from the tree?
>

git log --format=oneline -- glibc-2.29-r4.ebuild
23d1c015230d9ff44bcdd7b72e00ca3533815fa4 sys-libs/glibc: drop old
f3872a506edc7da0d987bcf0a90d4709945328a7 sys-libs/glibc: restore strip
quirk for 'libpthread.so.0'
650d70eb5d91265329e2f730bc1aed0fa5863db6 sys-libs/glibc: disable
stripping for cross-glibc
e14229b10b513a164f8379ff14cc8c644c071f27 sys-libs/glibc: drop
prepallstrip, bug #587296
fb2fe75af62ad29a44aeba1b8e9e41ce5acb3992 sys-libs/glibc: Add 2.29
revision with compile-locales support

I was too lazy to find something that had stable keywords, but I'm
sure substituting the appropriate filename and grepping would work
fine.  The trick is to put the "--" in the command line.

However, you could hardly be blamed for hitting your head against the
wall trying to figure out how to do this.  I had to google it as I've
run into this myself.  As many have said git is an amazing data model
with a terrible UI.

--
Rich

Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Michael 'veremitz' Everitt
In reply to this post by Mike Gilbert-2
On 01/11/19 21:45, Mike Gilbert wrote:

> On Fri, Nov 1, 2019 at 5:34 PM Michael 'veremitz' Everitt
> <[hidden email]> wrote:
>> On 01/11/19 21:11, Rich Freeman wrote:
>>> On Fri, Nov 1, 2019 at 4:36 PM Matt Turner <[hidden email]> wrote:
>>>> On Fri, Nov 1, 2019 at 12:59 PM Michael 'veremitz' Everitt
>>>> <[hidden email]> wrote:
>>>>> Therefore, it would be much /more/ useful to have the package-version
>>>>> tagged in the commit message, so that you could easily grep logs for when a
>>>>> given version of a package was stabilised, and/or keyworded.
>>> git log --format=oneline glibc-2.29-r2.ebuild | grep stable
>>> 9c04d06d06d51d9c76b3fe5ceb573213769f45ae sys-libs/glibc-2.29-r2: sparc
>>> stable, bug 685818
>>> b61ab167e82261ed2078c068ba0c2fc3a7b58aa3 sys-libs/glibc: stable
>>> 2.29-r2 for hppa, bug #685818
>>> fad52f75c759ca326ce0f8c37e227827f01cd2f1 sys-libs/glibc: m68k stable
>>> wrt bug #685818
>>> 0fe91535a7ba382f10084def5482e61359f201cb sys-libs/glibc: sh stable wrt
>>> bug #685818
>>> 7b7ec9a6b3355d6111e1a449ca13e24cb6ef0295 sys-libs/glibc: s390 stable
>>> wrt bug #685818
>>> bcddad6780ead2b44528a4aa1d51107b4a225524 sys-libs/glibc-2.29-r2: alpha stable
>>> 2ca6a4b9d647f567d2300e7b90829993d7575b41 sys-libs/glibc: ia64 stable
>>> wrt bug #685818
>>> e56c3c1f1c0a256c228a59be94869751d7fd31d7 sys-libs/glibc: ppc64 stable
>>> wrt bug #685818
>>> 52355459ec00b9ca9921bd5f788bad9b95346910 sys-libs/glibc: ppc stable
>>> wrt bug #685818
>>> 745b07e84b5035576737d3e1a719121d02e53feb sys-libs/glibc: arm stable
>>> wrt bug #685818
>>> 332fc91e3e72a6dd1b183ce4a19d08b45daa8e00 sys-libs/glibc: x86 stable
>>> (bug #685818)
>>> 9e06c1242e104b66a532e7d5d919c1b3b1f8343d sys-libs/glibc: arm64 stable
>>> (bug #685818)
>>> b3ad265998a04a40820d078d25c06b7cb51173ef sys-libs/glibc: amd64 stable
>>> wrt bug #685818
>>>
>>> Seems to work fine for me.
>>>
>>>
>> How well does git handle that when the ebuild is deleted from the tree?
> It handles it just fine, though you need to add "--" to disambiguate
> it from a ref. For example:
>
> git log --format=oneline --grep=stable -- foo-123.ebuild
>
Consider me somewhat enlightened .. (!) :]


signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Sergei Trofimovich-6
In reply to this post by Michael 'veremitz' Everitt
On Fri, 1 Nov 2019 19:59:35 +0000
Michael 'veremitz' Everitt <[hidden email]> wrote:

> Hello,
>
> I've noticed a lot of stabilisation commit messages (and a few keywording
> ones too) simply state the package atom and not the relevant
> release/version. I find this a little meaningless, as unless this is the
> first time the package has ever been either stabilised or keyworded, it is
> reasonable to expect that there is/was some transition point for a package
> from when it first entered the Gentoo Repository.
>
> Therefore, it would be much /more/ useful to have the package-version
> tagged in the commit message, so that you could easily grep logs for when a
> given version of a package was stabilised, and/or keyworded. Granted, this
> is more of-use in a historical context compared to a present (future?!)
> one, but I would argue that it conveys more meaning -with- the version than
> without.
>
> Thoughts from outside peanut gallery?

A few points:

1. Given that you can't rely on that information today it won't be of much use in
   future if it's already not precise.

   If you want consistent keywording/stabilizing behaviour you might want to
   propose/implement a tool that generates commits in a form everybody agrees.
   Say, a specific form of repoman commit.

   Today even keywording itself in not exactly fully automated process:
       https://bugs.gentoo.org/639724

2. repoman was changed to disallow long enough subject lines from being committed.

  As a result sometimes you can't just fit both package name and package version
  into the fist line. Let alone full arch list and bug number.

  Thus requiring ${P} is technically infeasible.

It would probably help to describe original problem in more detail being solved before
discussing of a solution.

If you need a precise solution for "when foo was stabilized" you have to look at the
ebuild's metadata as an authoritative source.

--

  Sergei

Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Kent Fredric-2
In reply to this post by Michael 'veremitz' Everitt
On Fri, 1 Nov 2019 19:59:35 +0000
Michael 'veremitz' Everitt <[hidden email]> wrote:

> Thoughts from outside peanut gallery?
>
> Michael / veremitz.

I have an alternative that might be more pleasant:

1. Change repoman so that when its clear that:
   - There is at least one ebuild being changed
   - There is only one ebuild being changed
  Then the templated summary line is full ${P}

2. Otherwise, retain the current semantics of using a simpler
   ${P} in other cases.

3. Make no *requirements* that ${P} be used instead of ${PN},
   and that way people who think they have a good reason to use ${PN}
   instead of ${P} can do just that (if for instance, they need to lop
   off context so they can have a longer commit message )

This IMO improves things by default, given that the majority of changes
get run through repoman, and a majority of changes have very terse
requirements for extra data.

It also means that by default, when people just make the commit message
something silly like "bump", or "version bump", despite the fact they
didn't put in much effort, the log defaults to being useful, and the
commit messages relayed to #gentoo-commits improves in usefulness.

Partly, because for me, one of my prime vectors where I become aware
changes are occuring is in #gentoo commits, particularly because
something in there highlights me.

I don't want to *have* to:
- Resync my git repo
- Dig into git wizardry

*just* to ascertain what version was involved, and to then ascertain if
I need to investigate further.

( Because once I've already synced and started using git wizardry, I'm
already starting to pay investigation taxes )





attachment0 (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: Require full $P not just $PN on stable/keyword commit messages

Michael 'veremitz' Everitt
On 02/11/19 08:54, Kent Fredric wrote:

> On Fri, 1 Nov 2019 19:59:35 +0000
> Michael 'veremitz' Everitt <[hidden email]> wrote:
>
>> Thoughts from outside peanut gallery?
>>
>> Michael / veremitz.
> I have an alternative that might be more pleasant:
>
> 1. Change repoman so that when its clear that:
>    - There is at least one ebuild being changed
>    - There is only one ebuild being changed
>   Then the templated summary line is full ${P}
>
> 2. Otherwise, retain the current semantics of using a simpler
>    ${P} in other cases.
>
> 3. Make no *requirements* that ${P} be used instead of ${PN},
>    and that way people who think they have a good reason to use ${PN}
>    instead of ${P} can do just that (if for instance, they need to lop
>    off context so they can have a longer commit message )
>
> This IMO improves things by default, given that the majority of changes
> get run through repoman, and a majority of changes have very terse
> requirements for extra data.
>
> It also means that by default, when people just make the commit message
> something silly like "bump", or "version bump", despite the fact they
> didn't put in much effort, the log defaults to being useful, and the
> commit messages relayed to #gentoo-commits improves in usefulness.
>
> Partly, because for me, one of my prime vectors where I become aware
> changes are occuring is in #gentoo commits, particularly because
> something in there highlights me.
>
> I don't want to *have* to:
> - Resync my git repo
> - Dig into git wizardry
>
> *just* to ascertain what version was involved, and to then ascertain if
> I need to investigate further.
>
> ( Because once I've already synced and started using git wizardry, I'm
> already starting to pay investigation taxes )
>
>
This sounds like a good compromise, and one I'm content to work on. Anyone
else able/willing to pitch in?


signature.asc (817 bytes) Download Attachment