unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#36653] [PATCH] guix import stackage: default to a LTS release compatible with GHC 8.4
@ 2019-07-14 19:38 Robert Vollmert
  2019-07-16 13:41 ` [bug#36653] [PATCH v2] " Robert Vollmert
  0 siblings, 1 reply; 4+ messages in thread
From: Robert Vollmert @ 2019-07-14 19:38 UTC (permalink / raw)
  To: 36653; +Cc: Robert Vollmert

In particular, this means that guix lint won't warn to update to
versions that won't necessarily fit our package set well.

Also some minor clean-up tweaks.

* guix/import/stackage.scm (%stackage-url): Change to https, avoiding
redirect log messages.
(%default-lts-version): New field.
(stackage->guix-package, latest-lts-release): Use it.
(lts-info-ghc-version): Remove unused function.
(lts-info-packages, latest-lts-release): Fix documentation typos.
---
 guix/import/stackage.scm | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index 1c1e73a723..de12ae4cb9 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -39,15 +39,13 @@
 ;;; Stackage info fetcher and access functions
 ;;;
 
-(define %stackage-url "http://www.stackage.org")
+(define %stackage-url "https://www.stackage.org")
 
-(define (lts-info-ghc-version lts-info)
-  "Retruns the version of the GHC compiler contained in LTS-INFO."
-  (and=> (assoc-ref lts-info "snapshot")
-         (cut assoc-ref <> "ghc")))
+;;; Latest LTS version compatible with bundled ghc version.
+(define %default-lts-version "12.26")
 
 (define (lts-info-packages lts-info)
-  "Retruns the alist of packages contained in LTS-INFO."
+  "Returns the alist of packages contained in LTS-INFO."
   (or (assoc-ref lts-info "packages") '()))
 
 (define (leave-with-message fmt . args)
@@ -90,7 +88,7 @@
    (lambda* (package-name ; upstream name
              #:key
              (include-test-dependencies? #t)
-             (lts-version "")
+             (lts-version %default-lts-version)
              (packages-info
               (lts-info-packages
                (stackage-lts-info-fetch lts-version))))
@@ -119,10 +117,12 @@ included in the Stackage LTS release."
 ;;;
 
 (define latest-lts-release
-  (let ((pkgs-info (mlambda () (lts-info-packages (stackage-lts-info-fetch)))))
+  (let ((pkgs-info
+        (mlambda () (lts-info-packages
+                     (stackage-lts-info-fetch %default-lts-version)))))
     (lambda* (package)
       "Return an <upstream-source> for the latest Stackage LTS release of
-PACKAGE or #f it the package is not inlucded in the Stackage LTS release."
+PACKAGE or #f it the package is not included in the Stackage LTS release."
       (let* ((hackage-name (guix-package->hackage-name package))
              (version (lts-package-version (pkgs-info) hackage-name))
              (name-version (hackage-name-version hackage-name version)))
-- 
2.20.1 (Apple Git-117)

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

* [bug#36653] [PATCH v2] guix import stackage: default to a LTS release compatible with GHC 8.4
  2019-07-14 19:38 [bug#36653] [PATCH] guix import stackage: default to a LTS release compatible with GHC 8.4 Robert Vollmert
@ 2019-07-16 13:41 ` Robert Vollmert
  2019-08-17 13:52   ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Robert Vollmert @ 2019-07-16 13:41 UTC (permalink / raw)
  To: 36653; +Cc: Robert Vollmert

In particular, this means that guix lint won't warn to update to
versions that won't necessarily fit our package set well.

Also some minor clean-up tweaks.

* guix/import/stackage.scm (%stackage-url): Change to https, avoiding
redirect log messages.
(%default-lts-version): New field.
(stackage-lts-info-fetch, stackage->guix-package, latest-lts-release): Use it.
(lts-info-ghc-version): Remove unused function.
(lts-info-packages, latest-lts-release): Fix documentation typos.
---

This fixes the patch to *also* apply to normal use of `guix import stackage`,
as originally intended.

 guix/import/stackage.scm | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index 1c1e73a723..f845da4b27 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -39,15 +39,13 @@
 ;;; Stackage info fetcher and access functions
 ;;;
 
-(define %stackage-url "http://www.stackage.org")
+(define %stackage-url "https://www.stackage.org")
 
-(define (lts-info-ghc-version lts-info)
-  "Retruns the version of the GHC compiler contained in LTS-INFO."
-  (and=> (assoc-ref lts-info "snapshot")
-         (cut assoc-ref <> "ghc")))
+;;; Latest LTS version compatible with bundled ghc version.
+(define %default-lts-version "12.26")
 
 (define (lts-info-packages lts-info)
-  "Retruns the alist of packages contained in LTS-INFO."
+  "Returns the alist of packages contained in LTS-INFO."
   (or (assoc-ref lts-info "packages") '()))
 
 (define (leave-with-message fmt . args)
@@ -57,9 +55,11 @@
   ;; "Retrieve the information about the LTS Stackage release VERSION."
   (memoize
    (lambda* (#:optional (version ""))
-     (let* ((url (if (string=? "" version)
-                     (string-append %stackage-url "/lts")
-                     (string-append %stackage-url "/lts-" version)))
+     (let* ((url (string-append %stackage-url
+                                "/lts-"
+                                (if (string=? "" version)
+                                    %default-lts-version
+                                    version)))
             (lts-info (json-fetch-alist url)))
        (if lts-info
            (reverse lts-info)
@@ -90,7 +90,7 @@
    (lambda* (package-name ; upstream name
              #:key
              (include-test-dependencies? #t)
-             (lts-version "")
+             (lts-version %default-lts-version)
              (packages-info
               (lts-info-packages
                (stackage-lts-info-fetch lts-version))))
@@ -119,10 +119,12 @@ included in the Stackage LTS release."
 ;;;
 
 (define latest-lts-release
-  (let ((pkgs-info (mlambda () (lts-info-packages (stackage-lts-info-fetch)))))
+  (let ((pkgs-info
+        (mlambda () (lts-info-packages
+                     (stackage-lts-info-fetch %default-lts-version)))))
     (lambda* (package)
       "Return an <upstream-source> for the latest Stackage LTS release of
-PACKAGE or #f it the package is not inlucded in the Stackage LTS release."
+PACKAGE or #f it the package is not included in the Stackage LTS release."
       (let* ((hackage-name (guix-package->hackage-name package))
              (version (lts-package-version (pkgs-info) hackage-name))
              (name-version (hackage-name-version hackage-name version)))
-- 
2.20.1 (Apple Git-117)

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

* [bug#36653] [PATCH v2] guix import stackage: default to a LTS release compatible with GHC 8.4
  2019-07-16 13:41 ` [bug#36653] [PATCH v2] " Robert Vollmert
@ 2019-08-17 13:52   ` Ludovic Courtès
  2020-11-03 20:55     ` bug#36653: " Timothy Sample
  0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2019-08-17 13:52 UTC (permalink / raw)
  To: Robert Vollmert; +Cc: 36653

Hi Robert,

Too bad this patch is still in the queue!  I’m not familiar with
Stackage but I trust your judgment.  One minor comment:

Robert Vollmert <rob@vllmrt.net> skribis:

> In particular, this means that guix lint won't warn to update to
> versions that won't necessarily fit our package set well.
>
> Also some minor clean-up tweaks.
>
> * guix/import/stackage.scm (%stackage-url): Change to https, avoiding
> redirect log messages.
> (%default-lts-version): New field.
> (stackage-lts-info-fetch, stackage->guix-package, latest-lts-release): Use it.
> (lts-info-ghc-version): Remove unused function.
> (lts-info-packages, latest-lts-release): Fix documentation typos.

[...]

> +;;; Latest LTS version compatible with bundled ghc version.
> +(define %default-lts-version "12.26")

What about storing this elsewhere?  Perhaps in the ‘properties’ field of
the ‘ghc’ package?  That should make it easier to keep these numbers in
sync.

Besides, it’s usually clearer to separate unrelated cleanups, but it’s
no big deal in this case.

Thanks,
Ludo’.

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

* bug#36653: [PATCH v2] guix import stackage: default to a LTS release compatible with GHC 8.4
  2019-08-17 13:52   ` Ludovic Courtès
@ 2020-11-03 20:55     ` Timothy Sample
  0 siblings, 0 replies; 4+ messages in thread
From: Timothy Sample @ 2020-11-03 20:55 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 36653-done, Robert Vollmert

Hello,

Over a year later, and I finally went ahead and pushed this!  See commit
f0bb2662bb05625042094e124521197c5f43505e.

Ludovic Courtès <ludo@gnu.org> writes:

> Robert Vollmert <rob@vllmrt.net> skribis:
>
>> +;;; Latest LTS version compatible with bundled ghc version.
>> +(define %default-lts-version "12.26")
>
> What about storing this elsewhere?  Perhaps in the ‘properties’ field of
> the ‘ghc’ package?  That should make it easier to keep these numbers in
> sync.

That’s true, but we already have this problem with the Hackage importer.
It has a version-specific list of packages included with GHC.  It’s true
that two wrongs don’t make a right, but having this patch in place –
even with shortcomings – will prevent real problems.  Besides, we can
always fix it later.

> Besides, it’s usually clearer to separate unrelated cleanups, but it’s
> no big deal in this case.

Agreed.  (The typos were fixed in the interim, but I let the “https”
change hitch a ride along with the LTS version stuff.)

Anyway, this will pave the way for a lint check and then we can finally
put an end to the Haskell package roll-backs.  :)


-- Tim




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

end of thread, other threads:[~2020-11-03 20:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-14 19:38 [bug#36653] [PATCH] guix import stackage: default to a LTS release compatible with GHC 8.4 Robert Vollmert
2019-07-16 13:41 ` [bug#36653] [PATCH v2] " Robert Vollmert
2019-08-17 13:52   ` Ludovic Courtès
2020-11-03 20:55     ` bug#36653: " Timothy Sample

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