Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.

From: Roel Janssen <[email-masked]>
Date: Tue, 07 Jan 2020 22:00:30 +0100

On Mon, 2020-01-06 at 02:06 +0000, Brett Gilio wrote:
> 
> Jan 5, 2020 2:30:14 AM Ricardo Wurmus :
> 
> > LaFreniere, Joseph writes:
> > 
> > 
> > > I think that for now the options are to
> > > 1. continue using Python2 for Mercurial;
> > > 2. use Python3 but disable all tests, as Janssen's patch suggests;
> > > 3. use Python3 but disable the known-failing tests; or
> > > 4. hold off on updating the package until upstream supports
> > > Python3 across its entire test suite.
> > > 
> > > Of those three, I am most in favor of the third option. I would
> > > be glad to submit a patch that implements it if there is agreement
> > > to take that direction.
> > > 
> > 
> > I agree that option 3 (with a link to the upstream discussion) is the
> > right way to go forward.
> > 
> > Thanks!
> > 
> > --
> > Ricardo
> > 
> 
> I am also in agreement that working-around the failing tests is the best
> option, with a backup of just disabling the tests until the python3
> incompatibilities are resolved. We need to work away from python2 wherever
> possible. Since the upstream is aware of the problem I see avoiding python2 as
> a reasonable alternative to work-arounds.
> 
> 

The attached patch runs most tests, except those that failed on my machine.
Note that it took my 16-core machine quite some time to run the whole test
suite.

Kind regards,
Roel Janssen

From 577aee9b75249783349ef48109f580c4d27a067b Mon Sep 17 00:00:00 2001
From: Roel Janssen <[email-masked]>
Date: Tue, 7 Jan 2020 21:57:21 +0100
Subject: [PATCH] gnu: Update mercurial to 5.2.1.

* gnu/packages/version-control.scm (mercurial): Update to 5.2.1.
---
 gnu/packages/version-control.scm | 38 +++++++++++++++++++++++++-------
 1 file changed, 30 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index d354a807a3..ca8af00752 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2019 Jovany Leandro G.C <[email-masked]>
 ;;; Copyright © 2019 Kei Kebreau <[email-masked]>
 ;;; Copyright © 2019 Alex Griffin <[email-masked]>
+;;; Copyright © 2020 Roel Janssen <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1230,22 +1231,43 @@ control to Git repositories.")
 (define-public mercurial
   (package
     (name "mercurial")
-    (version "5.0.2")
+    (version "5.2.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://www.mercurial-scm.org/"
                                  "release/mercurial-" version ".tar.gz"))
              (sha256
               (base32
-               "1y60hfc8gh4ha9sw650qs7hndqmvbn0qxpmqwpn4q18z5xwm1f19"))))
+               "1pxkd37b0a1mi2zakk1hi122lgz1ffy2fxdnbs8acwlqpw55bc8q"))))
     (build-system python-build-system)
     (arguments
-     `(;; Restrict to Python 2, as Python 3 would require
-       ;; the argument --c2to3.
-       #:python ,python-2
-       ;; FIXME: Disabled tests because they require the nose unit
-       ;; testing framework: https://nose.readthedocs.org/en/latest/ .
-       #:tests? #f))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             ;; The following tests are known to fail.
+             (for-each (lambda (file)
+                         (delete-file (string-append "tests/" file)))
+                       '("test-extdiff.t"
+                         "test-hghave.t"
+                         "test-hgwebdir.t"
+                         "test-http-branchmap.t"
+                         "test-logtoprocess.t"
+                         "test-merge-combination.t"
+                         "test-nointerrupt.t"
+                         "test-patchbomb.t"
+                         "test-pull-bundle.t"
+                         "test-push-http.t"
+                         "test-run-tests.t"
+                         "test-serve.t"
+                         "test-subrepo-deep-nested-change.t"
+                         "test-subrepo-recursion.t"
+                         "test-transplant.t"))
+             (invoke "make" "check"))))))
+    ;; The following inputs are only needed to run the tests.
+    (native-inputs
+     `(("python-nose" ,python-nose)
+       ("unzip" ,unzip)))
     (home-page "https://www.mercurial-scm.org/")
     (synopsis "Decentralized version control system")
     (description
-- 
2.24.1