mbox series

[bug#50359,v3,0/3] Add 'generic-git' updater

Message ID cover.1631865317.git.public@yoctocell.xyz
Headers show
Series Add 'generic-git' updater | expand

Message

Xinglu Chen Sept. 17, 2021, 8:04 a.m. UTC
Changes since v2:

* Address the feedback by Ludovic and Sarah.

One problem I noticed was that when ‘accept-pre-releases?’ is #t, a tag
like “1-2-3-alpha” would turn into “1.2.3.alpha”, but I think the
correct version string would be “1.2.3-alpha”.

I solved the problem by making the pre-release part a separate regexp
group, and then appending the pre-release part after extracting the
version from the tag.  That way, the “-” in “-alpha” would not be
interpreted as a version delimiter.  I also added a new test for testing
this.

One of the tests in tests/channels.scm is failing; I am not sure why.
Before the first and second patches were applied, 6 of them were failing
for me, so I guess it’s an improvement.  However, on IRC, Ludovic said
that all of them were passing (prior to apply my patches).  It would
be great if people could run the tests before and after applying
patches, and see if they pass.

Xinglu Chen (3):
  tests: git: Don't read from the users global Git config file.
  tests: git: Make 'tag' directive non-interactive.
  import: Add 'generic-git' updater.

 Makefile.am          |   2 +
 doc/guix.texi        |  34 ++++++
 guix/git.scm         |  41 ++++++++
 guix/import/git.scm  | 225 +++++++++++++++++++++++++++++++++++++++
 guix/tests/git.scm   |   6 +-
 tests/channels.scm   |   2 +-
 tests/git.scm        |  28 +++++
 tests/import-git.scm | 245 +++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 580 insertions(+), 3 deletions(-)
 create mode 100644 guix/import/git.scm
 create mode 100644 tests/import-git.scm


base-commit: 33bc3fb2a5f30a6e21f1b8d6d43867d921bd951c

Comments

Ludovic Courtès Sept. 18, 2021, 5:47 p.m. UTC | #1
Hello!

Xinglu Chen <public@yoctocell.xyz> skribis:

> Changes since v2:
>
> * Address the feedback by Ludovic and Sarah.
>
> One problem I noticed was that when ‘accept-pre-releases?’ is #t, a tag
> like “1-2-3-alpha” would turn into “1.2.3.alpha”, but I think the
> correct version string would be “1.2.3-alpha”.
>
> I solved the problem by making the pre-release part a separate regexp
> group, and then appending the pre-release part after extracting the
> version from the tag.  That way, the “-” in “-alpha” would not be
> interpreted as a version delimiter.  I also added a new test for testing
> this.

I think that’s fine; this is all guesswork anyway, and there are always
cases where we’ll get it wrong.  What’s useful though is tests to guard
against regressions in the heuristics.

> One of the tests in tests/channels.scm is failing; I am not sure why.
> Before the first and second patches were applied, 6 of them were failing
> for me, so I guess it’s an improvement.  However, on IRC, Ludovic said
> that all of them were passing (prior to apply my patches).  It would
> be great if people could run the tests before and after applying
> patches, and see if they pass.

Turns out that the failure in tests/channels.scm was a real bug:
‘channel-news-entry-commit’ was not resolving annotated tags correctly
(it would return the ID of the tag instead of the ID of the commit
pointed to by the tag).  Fixed in
778c1fb4eabbb48c05f6c7555c89466d5249ebce.

>   tests: git: Don't read from the users global Git config file.
>   tests: git: Make 'tag' directive non-interactive.
>   import: Add 'generic-git' updater.

Applied!  I changed the second patch to preserve support for
non-annotated tags and to leave tests/channels.scm unchanged.

BTW, “git tag xyz” is not interactive AFAICS.

Thanks Sarah & Xinglu for this work!  Let’s update our packages!  :-)

Ludo’.