unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* guix refresh to a specific version?
@ 2022-06-15 11:34 Hartmut Goebel
  2022-06-17 15:37 ` Ludovic Courtès
  2022-06-28 10:59 ` Maxime Devos
  0 siblings, 2 replies; 14+ messages in thread
From: Hartmut Goebel @ 2022-06-15 11:34 UTC (permalink / raw)
  To: guix-devel

Hi,

I wonder whether this is a way to refresh to a specific version, like 
one can import a specific version:

works:

     guix import pypi trytond@6.2.0

does not work:

     guix refresh -u trytond@6.2.0
     […]
     guix refresh: error: trytond: package not found for version 6.2.0

My use-case is to update 170 trytond modules from 6.0.x to the 6.2.x, 
while 6.4 is current. (I have a list of exact versions, thus being able 
to specify a discrete version is fine.)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-15 11:34 guix refresh to a specific version? Hartmut Goebel
@ 2022-06-17 15:37 ` Ludovic Courtès
  2022-06-19  9:23   ` Hartmut Goebel
  2022-06-28 10:59 ` Maxime Devos
  1 sibling, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2022-06-17 15:37 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hi,

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> I wonder whether this is a way to refresh to a specific version, like
> one can import a specific version:
>
> works:
>
>     guix import pypi trytond@6.2.0

It’s currently not possible, but pretty much all the machinery is there,
in importers.  It’s a low-hanging fruit that I think we should pick!

Ludo’.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-17 15:37 ` Ludovic Courtès
@ 2022-06-19  9:23   ` Hartmut Goebel
  2022-06-22 13:35     ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: Hartmut Goebel @ 2022-06-19  9:23 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Hi,

Am 17.06.22 um 17:37 schrieb Ludovic Courtès:
> It’s currently not possible, but pretty much all the machinery is there,
> in importers.  It’s a low-hanging fruit that I think we should pick!

I gave it a try and discovered that we need to discuss the interface and 
design:

One can already specify a version, which defines the package to be 
updated. The respective place the code has the comment

Take either the specified version or the latest one.

and this was added by you (Ludo) in 
4b9b3cbbc45afa3e374889847d4ab8673b8b2db2 (April 2015):

refresh: Allow users to refer to specific package versions.

* guix/scripts/refresh.scm (guix-refresh): Use 'specification->package'
   instead of 'find-packages-by-name'.  This allows users to specify
   things like "qt-4.8.6".


Beside this, I'm unconfident about the implementation: Currently refresh 
passes around package objects and passes this to the updater. When 
updating to a specific version, we need to pass around both the package 
and the desired version, which implies case-handling at many places. Any 
idea how to solve this elegantly?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-19  9:23   ` Hartmut Goebel
@ 2022-06-22 13:35     ` Ludovic Courtès
  2022-06-28  8:08       ` Hartmut Goebel
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2022-06-22 13:35 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hi,

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> One can already specify a version, which defines the package to be
> updated. The respective place the code has the comment
>
> Take either the specified version or the latest one.
>
> and this was added by you (Ludo) in
> 4b9b3cbbc45afa3e374889847d4ab8673b8b2db2 (April 2015):
>
> refresh: Allow users to refer to specific package versions.
>
> * guix/scripts/refresh.scm (guix-refresh): Use 'specification->package'
>   instead of 'find-packages-by-name'.  This allows users to specify
>   things like "qt-4.8.6".

Like you write, this commit is the “wrong end”: it’s about selecting the
package you’re willing to update.

Most entry points in (guix import …) already take a #:version parameter,
which allows you to ask for a specific version when running ‘guix
import’, as in:

  guix import pypi itsdangerous@1.1.0

The goal here is to expose that in the <upstream-updater> API and to use
it in ‘guix refresh’.

Ludo’.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-22 13:35     ` Ludovic Courtès
@ 2022-06-28  8:08       ` Hartmut Goebel
  2022-06-30 11:58         ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: Hartmut Goebel @ 2022-06-28  8:08 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

FYI: I'm working on this. Given the number of importers and updaters is 
just takes some time.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-15 11:34 guix refresh to a specific version? Hartmut Goebel
  2022-06-17 15:37 ` Ludovic Courtès
@ 2022-06-28 10:59 ` Maxime Devos
  1 sibling, 0 replies; 14+ messages in thread
From: Maxime Devos @ 2022-06-28 10:59 UTC (permalink / raw)
  To: Hartmut Goebel, guix-devel

[-- Attachment #1: Type: text/plain, Size: 312 bytes --]

Hartmut Goebel schreef op wo 15-06-2022 om 13:34 [+0200]:
> Hi,
> 
> I wonder whether this is a way to refresh to a specific version, like 
> one can import a specific version:
> 
> works:
> 
>      guix import pypi trytond@6.2.0

FWIW, this works for the 'crate' importer.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-28  8:08       ` Hartmut Goebel
@ 2022-06-30 11:58         ` Ludovic Courtès
  2022-07-04 14:06           ` Hartmut Goebel
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2022-06-30 11:58 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> FYI: I'm working on this. Given the number of importers and updaters
> is just takes some time.

Excellent.  If you want, you can ping me for early comments on the
<updater> API for this.

Ludo’.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-06-30 11:58         ` Ludovic Courtès
@ 2022-07-04 14:06           ` Hartmut Goebel
  2022-07-04 15:53             ` zimoun
  2022-07-07  7:45             ` Ludovic Courtès
  0 siblings, 2 replies; 14+ messages in thread
From: Hartmut Goebel @ 2022-07-04 14:06 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Am 30.06.22 um 13:58 schrieb Ludovic Courtès:
> Excellent. If you want, you can ping me for early comments on the
> <updater> API for this.

Thanks for offering this, I appreciate.

I pushed my current working state to wip-import-version. The branch also 
contains some patches from bug56295 (Add some Chicken eggs and fix egg 
importer) and bug56318 (Fix github updater).

Basic ideas

  * Add a keyword argument „version“ to all “latest-X-release” functions
    and eventually pass it on to called functions.
  * Minimal changes

Here is a list of updaters and packages to test the import-specific-version:

+crate: rust-sequoia-openpgp@1.7.0
+egg: testing requires new packages (see bug56295),
       changing version of “chicken-args” to 1.6.0 in chicken.scm and
       test updating to chicken-args@1.6.1
+generic-git (import/git): remmina@1.4.25
+generic-html (gnu-maintenance): xclock@1.1.0
+github: libwacom@1.12
+gnome: gtk@4.6.2
+gnu (gnu-maintenance): help2man@1.49.1
+gnu-ftp (gnu-maintenance): libgpg-error@1.43
+hexpm: testing requires changing version in erlang.scm
        erlang-relx to 4.5.0 and test updating to erlang-relx@4.6.0
+kde: plasma-framework@5.93.0
+kernel.org (gnu-maintenance) = html: iw@5.3
+launchpad: testing requires changing version in terminals.scm
            sakura to 3.8.0 and testing upate to sakura@3.8.3
+pypi: trytond-party@6.2.0
+savannah (gnu-maintenance) = html: libpipeline@1.5.4
+xorg (gnu-maintenance) = ftp : libxi@1.7.99.2


These updaters report an error that they can't update to a specific 
version, if a version is given:

?bioconductor (cran.scm) -- repo supports latest version only
?cran -- repo supports latest version only
           old version available in
https://cran.r-project.org/src/contrib/Archive/PACKAGENAME
-cpan  --- no version, not recursive
-elm  -- no updater
-elpa  --- no version
-gem  --- no version
-hackage  --- no version
-minetest  --- no version
-opam  --- no version
-sourceforge (gnu-maintenance) -- to complicated
-json  -- n/a
-texlive  --- no version, not recursive, no updater

Not yet implemented — unclear how to handle:

# stackage  --- LTS version

Still missing:

  * Finishing commit messages
  * Documentation?
  * For the final commit, I'll squash the commits.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-07-04 14:06           ` Hartmut Goebel
@ 2022-07-04 15:53             ` zimoun
  2022-07-05  9:32               ` bokr
  2022-07-07  7:45             ` Ludovic Courtès
  1 sibling, 1 reply; 14+ messages in thread
From: zimoun @ 2022-07-04 15:53 UTC (permalink / raw)
  To: Hartmut Goebel, Ludovic Courtès; +Cc: guix-devel

Hi,

Thanks for working on this.


On Mon, 04 Jul 2022 at 16:06, Hartmut Goebel <h.goebel@crazy-compilers.com> wrote:

> ?bioconductor (cran.scm) -- repo supports latest version only

It is indeed a limitation of the Bioconductor importer and the issue is
discussed here:

    http://issues.guix.gnu.org/issue/39885
    http://issues.guix.gnu.org/issue/54787


Cheers,
simon


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-07-04 15:53             ` zimoun
@ 2022-07-05  9:32               ` bokr
  2022-07-05  9:40                 ` Tobias Geerinckx-Rice
  2022-07-05 10:17                 ` zimoun
  0 siblings, 2 replies; 14+ messages in thread
From: bokr @ 2022-07-05  9:32 UTC (permalink / raw)
  To: zimoun; +Cc: Hartmut Goebel, Ludovic Courtès, guix-devel

On +2022-07-04 17:53:42 +0200, zimoun wrote:
[ ... ]
> It is indeed a limitation of the Bioconductor importer and the issue is
> discussed here:
> 
>     http://issues.guix.gnu.org/issue/39885
>     http://issues.guix.gnu.org/issue/54787
>

For me, doing s/http/https/ on above, then
--8<---------------cut here---------------start------------->8---
    firefox-esr 'https://issues.guix.gnu.org/issue/39885' &
--8<---------------cut here---------------end--------------->8---
seems to connect ok.

Just wondering if you are posting these as "http" links for some
hidden reason :)
--
Regards,
Bengt Richter


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-07-05  9:32               ` bokr
@ 2022-07-05  9:40                 ` Tobias Geerinckx-Rice
  2022-07-05 10:17                 ` zimoun
  1 sibling, 0 replies; 14+ messages in thread
From: Tobias Geerinckx-Rice @ 2022-07-05  9:40 UTC (permalink / raw)
  To: guix-devel, bokr, zimoun; +Cc: Hartmut Goebel, Ludovic Courtès, guix-devel

They should even redirect from http: to https:, and here they do.

Kind regards,

T G-R

Sent on the go.  Excuse or enjoy my brevity.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-07-05  9:32               ` bokr
  2022-07-05  9:40                 ` Tobias Geerinckx-Rice
@ 2022-07-05 10:17                 ` zimoun
  1 sibling, 0 replies; 14+ messages in thread
From: zimoun @ 2022-07-05 10:17 UTC (permalink / raw)
  To: Bengt Richter; +Cc: Hartmut Goebel, Ludovic Courtès, guix-devel

Hi,

On Tue, 5 Jul 2022 at 11:32, <bokr@bokr.com> wrote:

> Just wondering if you are posting these as "http" links for some
> hidden reason :)

Because my Emacs helper [1] still uses 'http'.

1: <https://gitlab.com/zimoun/my-conf/-/blob/master/.config/emacs/lisp/funs.el#L271-297>


Cheers,
simon


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-07-04 14:06           ` Hartmut Goebel
  2022-07-04 15:53             ` zimoun
@ 2022-07-07  7:45             ` Ludovic Courtès
  2022-08-28 13:20               ` Hartmut Goebel
  1 sibling, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2022-07-07  7:45 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hi,

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> I pushed my current working state to wip-import-version. The branch
> also contains some patches from bug56295 (Add some Chicken eggs and
> fix egg importer) and bug56318 (Fix github updater).

Neat!

> Basic ideas
>
>  * Add a keyword argument „version“ to all “latest-X-release” functions
>    and eventually pass it on to called functions.

For clarity I would rename the ‘latest’ field of <upstream-updater> to
‘import’ (say), likewise for the ‘latest-*-release’ procedure.

> These updaters report an error that they can't update to a specific
> version, if a version is given:
>
> ?bioconductor (cran.scm) -- repo supports latest version only
> ?cran -- repo supports latest version only
>           old version available in
> https://cran.r-project.org/src/contrib/Archive/PACKAGENAME
> -cpan  --- no version, not recursive
> -elm  -- no updater
> -elpa  --- no version
> -gem  --- no version
> -hackage  --- no version
> -minetest  --- no version
> -opam  --- no version
> -sourceforge (gnu-maintenance) -- to complicated
> -json  -- n/a
> -texlive  --- no version, not recursive, no updater

I suspect most of them could be change to fetch a specific version, but
that can come later.

I’ll be monitoring guix-patches for the final version.  :-)

Thanks!

Ludo’.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: guix refresh to a specific version?
  2022-07-07  7:45             ` Ludovic Courtès
@ 2022-08-28 13:20               ` Hartmut Goebel
  0 siblings, 0 replies; 14+ messages in thread
From: Hartmut Goebel @ 2022-08-28 13:20 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Am 07.07.22 um 09:45 schrieb Ludovic Courtès:
> I’ll be monitoring guix-patches for the final version.  :-)

It took some time, and here it is: https://issues.guix.gnu.org/57460

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-08-28 13:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-15 11:34 guix refresh to a specific version? Hartmut Goebel
2022-06-17 15:37 ` Ludovic Courtès
2022-06-19  9:23   ` Hartmut Goebel
2022-06-22 13:35     ` Ludovic Courtès
2022-06-28  8:08       ` Hartmut Goebel
2022-06-30 11:58         ` Ludovic Courtès
2022-07-04 14:06           ` Hartmut Goebel
2022-07-04 15:53             ` zimoun
2022-07-05  9:32               ` bokr
2022-07-05  9:40                 ` Tobias Geerinckx-Rice
2022-07-05 10:17                 ` zimoun
2022-07-07  7:45             ` Ludovic Courtès
2022-08-28 13:20               ` Hartmut Goebel
2022-06-28 10:59 ` Maxime Devos

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).