Subject: bug#75871: closed ([bug#75871] [PATCH 0/1] Partial version support for 'guix refresh --target-version'.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 28 Feb 2025 13:24:02 +0000

Your bug report

#75871: [PATCH 0/1] Partial version support for 'guix refresh --target-version'.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
75871: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75871
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: [bug#75871] [PATCH 0/1] Partial version support for 'guix refresh --target-version'.
From: Maxim Cournoyer <[email-masked]>
To: Liliana Marie Prikler <[email-masked]>
Cc: [email-masked]
Date: Fri, 28 Feb 2025 22:23:16 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

[...]

>> Not an objection, but two questions.
>>
>> First, regarding the handling of multiple packages:  Does 
>>   $ guix refresh
>>     --target-version=46 evince epiphany gnome-shell … \
>>     --target-version=4 gtk …
>> do what one would expect and update evince, gnome-shell etc. to
>> 46.whatever and gtk etc. to 4.something?
>
> I don't think that's supported, at least I never considered this use
> case when --target-version was introduced.  I'm not sure what's the
> default behavior of our parser; perhaps it uses the last value provided?
>
>> Second, should we also have a postfix notation (e.g. evince~46 or
>> evince=46.*) to ease typing?
>
> I thought about adding something like 'evince=^46', which would be nice
> to have, but can/should be added separately given this change is already
> huge.

Pushed.  Now would be a good time to add the above :-).

-- 
Thanks,
Maxim

Subject: [PATCH 0/1] Partial version support for 'guix refresh --target-version'.
From: Maxim Cournoyer <[email-masked]>
To: [email-masked]
Cc: Maxim Cournoyer <[email-masked]>
Date: Sun, 26 Jan 2025 23:59:33 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

This adds support for providing incomplete version strings to 'guix refresh
--target-version', for example allowing to do:

$ guix refresh --target-version=46 evince
gnu/packages/gnome.scm:2710:13: evince would be upgraded from 44.3 to 46.3.1

The change looks massive because all the importers are adjusted to support
this, but the adjustments needed are mechanical and simple, hopefully making
the review not overly painful.  The most critical and complex bit may be in
the modified 'rewrite-url' procedure, which is covered by unit tests.

Maxim Cournoyer (1):
  refresh: Add support for partial target versions.

 doc/guix.texi             |  12 +++
 guix/gnu-maintenance.scm  | 120 ++++++++++++++-----------
 guix/import/composer.scm  |  59 ++++++------
 guix/import/cpan.scm      |   2 +-
 guix/import/cran.scm      |   4 +-
 guix/import/crate.scm     |  51 ++++++-----
 guix/import/egg.scm       |  33 +++----
 guix/import/elpa.scm      |   2 +-
 guix/import/gem.scm       |  29 ++++--
 guix/import/git.scm       | 103 +++++++++------------
 guix/import/github.scm    | 114 +++++++++++------------
 guix/import/gnome.scm     |  50 ++++-------
 guix/import/hackage.scm   |   2 +-
 guix/import/hexpm.scm     |  42 +++++----
 guix/import/kde.scm       |  57 ++++++------
 guix/import/launchpad.scm |  36 ++++----
 guix/import/minetest.scm  |   2 +-
 guix/import/opam.scm      |   2 +-
 guix/import/pypi.scm      |  25 ++++--
 guix/import/stackage.scm  |   2 +-
 guix/import/test.scm      |  15 ++--
 guix/import/texlive.scm   |  38 ++++----
 guix/import/utils.scm     |  20 ++++-
 guix/scripts/refresh.scm  | 185 ++++++++++++++++++++------------------
 guix/upstream.scm         |  26 +++---
 tests/gem.scm             |  22 +++++
 tests/gnu-maintenance.scm |  65 +++++++++++---
 tests/guix-refresh.sh     |  10 ++-
 tests/import-git.scm      |   4 +
 29 files changed, 629 insertions(+), 503 deletions(-)

base-commit: be058cf6fcf01be49e98b8a646e1ffdb34130db6
-- 
2.47.1