GNU bug report logs - #38824
[PATCH] gnu: mercurial: Update to 5.2.1.

Previous Next

Package: guix-patches;

Reported by: Roel Janssen <roel <at> gnu.org>

Date: Mon, 30 Dec 2019 21:57:01 UTC

Severity: normal

Tags: patch

Done: Brett Gilio <brettg <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38824 in the body.
You can then email your comments to 38824 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Mon, 30 Dec 2019 21:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Roel Janssen <roel <at> gnu.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 30 Dec 2019 21:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Roel Janssen <roel <at> gnu.org>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Mon, 30 Dec 2019 22:56:15 +0100
[Message part 1 (text/plain, inline)]
Dear Guix,

It looks like we can straightforwardly update to Mercurial 5.2.1, and in the
process move away from python-2 for this package.

Attached is a patch to do so.

Kind regards,
Roel Janssen
[0001-gnu-mercurial-Update-to-5.2.1.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Fri, 03 Jan 2020 23:03:02 GMT) Full text and rfc822 format available.

Message #8 received at 38824 <at> debbugs.gnu.org (full text, mbox):

From: Brett Gilio <brettg <at> gnu.org>
To: Roel Janssen <roel <at> gnu.org>
Cc: 38824 <at> debbugs.gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Fri, 03 Jan 2020 17:02:46 -0600
Roel Janssen <roel <at> gnu.org> writes:

> Dear Guix,
>
> It looks like we can straightforwardly update to Mercurial 5.2.1, and in the
> process move away from python-2 for this package.
>
> Attached is a patch to do so.
>
> Kind regards,
> Roel Janssen
>
> From 3f1d92acf8ddae31379ac52cb7f3aac039c218fe Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel <at> gnu.org>
> Date: Mon, 30 Dec 2019 22:03:16 +0100
> Subject: [PATCH] gnu: mercurial: Update to 5.2.1.
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> From 5.1.x Python 3 support is “in beta”
> (see <https://www.mercurial-scm.org/wiki/UpgradeNotes#A5.1>).
>
> * gnu/packages/version-control.scm (mercurial): Update to 5.2.1.
> ---
>  gnu/packages/version-control.scm | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
> index d354a807a3..6d5a05b1b2 100644
> --- a/gnu/packages/version-control.scm
> +++ b/gnu/packages/version-control.scm
> @@ -1230,20 +1230,17 @@ 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
> +     `(;; FIXME: Disabled tests because they require the nose unit
>         ;; testing framework: https://nose.readthedocs.org/en/latest/ .
>         #:tests? #f))
>      (home-page "https://www.mercurial-scm.org/")

Thanks for the submission. We do have a python-nose package. Is this
different from the nose unit mentioned in the rationale for disabling
the tests?

-- 
Brett M. Gilio
GNU Guix, Contributor | GNU Project, Webmaster
[DFC0 C7F7 9EE6 0CA7 AE55 5E19 6722 43C4 A03F 0EEE]
<brettg <at> gnu.org> <brettg <at> posteo.net>




Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Sat, 04 Jan 2020 07:14:02 GMT) Full text and rfc822 format available.

Message #11 received at 38824 <at> debbugs.gnu.org (full text, mbox):

From: Roel Janssen <roel <at> gnu.org>
To: Brett Gilio <brettg <at> gnu.org>
Cc: 38824 <at> debbugs.gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Sat, 04 Jan 2020 08:13:39 +0100
On Fri, 2020-01-03 at 17:02 -0600, Brett Gilio wrote:
> Roel Janssen <roel <at> gnu.org> writes:
> 
> > Dear Guix,
> > 
> > It looks like we can straightforwardly update to Mercurial 5.2.1, and in the
> > process move away from python-2 for this package.
> > 
> > Attached is a patch to do so.
> > 
> > Kind regards,
> > Roel Janssen
> > 
> > From 3f1d92acf8ddae31379ac52cb7f3aac039c218fe Mon Sep 17 00:00:00 2001
> > From: Roel Janssen <roel <at> gnu.org>
> > Date: Mon, 30 Dec 2019 22:03:16 +0100
> > Subject: [PATCH] gnu: mercurial: Update to 5.2.1.
> > MIME-Version: 1.0
> > Content-Type: text/plain; charset=UTF-8
> > Content-Transfer-Encoding: 8bit
> > 
> > From 5.1.x Python 3 support is “in beta”
> > (see <https://www.mercurial-scm.org/wiki/UpgradeNotes#A5.1>;).
> > 
> > * gnu/packages/version-control.scm (mercurial): Update to 5.2.1.
> > ---
> >  gnu/packages/version-control.scm | 9 +++------
> >  1 file changed, 3 insertions(+), 6 deletions(-)
> > 
> > diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-
> > control.scm
> > index d354a807a3..6d5a05b1b2 100644
> > --- a/gnu/packages/version-control.scm
> > +++ b/gnu/packages/version-control.scm
> > @@ -1230,20 +1230,17 @@ 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
> > +     `(;; FIXME: Disabled tests because they require the nose unit
> >         ;; testing framework: https://nose.readthedocs.org/en/latest/ .
> >         #:tests? #f))
> >      (home-page "https://www.mercurial-scm.org/")
> 
> Thanks for the submission. We do have a python-nose package. Is this
> different from the nose unit mentioned in the rationale for disabling
> the tests?
> 

Thanks for responding.  I suppose it's the same python-nose.  Running the tests
(with or without python-nose in the "inputs") fail with the following error:

---
TypeError: '<' not supported between instances of 'bytes' and 'str'
command "python" "-c" "import setuptools,
tokenize;__file__='setup.py';f=getattr(tokenize, 'open',
open)(__file__);code=f.read().replace('\\r\\n',
'\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed with
status 1
---

I don't know much about Python, so I'm not sure whether the test suite just
hasn't been made Python-3-compatible, or whether it's something else, and
whether this has always been a problem, or whether it was introduced by this
update.

Kind regards,
Roel Janssen






Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Sun, 05 Jan 2020 06:17:02 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "LaFreniere\, Joseph" <joseph <at> lafreniere.xyz>
To: guix-patches <at> gnu.org
Cc: 38824 <at> debbugs.gnu.org, Brett Gilio <brettg <at> gnu.org>
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Sun, 05 Jan 2020 00:15:44 -0600
[Message part 1 (text/plain, inline)]
On Fri, 2020-01-03 at 17:02 -0600, Brett Gilio wrote:
> We do have a python-nose package. Is this different from the 
> nose unit mentioned in the rationale for disabling the tests?

I can confirm Roel Janssen's guess that python-nose is the 
relevant package and that it provides the nose unit test runner.

Roel Janssen <roel <at> gnu.org> writes:
> I don't know much about Python, so I'm not sure whether the test 
> suite just hasn't been made Python-3-compatible, or whether it's 
> something else, and whether this has always been a problem, or 
> whether it was introduced by this update.

From https://www.mercurial-scm.org/wiki/Python3 as of this 
writing:
> Mercurial 5.2 is the first release that officially has support 
> for Python 3. Supported Python 3 versions are 3.5, 3.6, and 
> 3.7. Python 3.8 mostly works, but there are a few known 
> incompatibilities. Mercurial with Python 3 on Windows is not yet 
> widely tested and there are some known issues.

> It is the project policy for Mercurial and its core extensions 
> to be compatible with Python 3. Over 99% of tests pass with 
> Python 3 and test regressions are treated seriously.

> Most used 3rd party extensions like evolve and topic have been 
> ported to Python 3. There are some which have not yet been 
> ported.

> Assuming Windows porting proceeds well, it is expected we will 
> drop support for Python 2.7 sometime in 2020.

The output I obtained from running `python3 -m nose` in the 
repository's root is attached.  Looking at 
e.g. mercurial/pycompat.py shows that Mercurial's devs are indeed 
aware of these Python3 compatibility issues:

> # TODO: .buffer might not exist if std streams were replaced; 
> we'll need
> # a silly wrapper to make a bytes stream backed by a unicode 
> one.

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.

--
Joseph LaFreniere
[test-output.txt (text/plain, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Sun, 05 Jan 2020 06:17:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Sun, 05 Jan 2020 08:30:03 GMT) Full text and rfc822 format available.

Message #20 received at 38824 <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: joseph <at> lafreniere.xyz
Cc: 38824 <at> debbugs.gnu.org, brettg <at> gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Sun, 05 Jan 2020 09:29:18 +0100
LaFreniere, Joseph <joseph <at> lafreniere.xyz> 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





Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Mon, 06 Jan 2020 02:07:01 GMT) Full text and rfc822 format available.

Message #23 received at 38824 <at> debbugs.gnu.org (full text, mbox):

From: Brett Gilio <brettg <at> gnu.org>
To: Ricardo Wurmus <rekado <at> elephly.net>
Cc: joseph <at> lafreniere.xyz, 38824 <at> debbugs.gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Mon, 6 Jan 2020 02:06:16 +0000 (UTC)

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.


-- 
Brett M. Gilio
GNU Guix, Contributor | GNU Project, Webmaster
[DFC0 C7F7 9EE6 0CA7 AE55 5E19 6722 43C4 A03F 0EEE]
<brettg <at> gnu.org> <brettg <at> posteo.net>






Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Mon, 06 Jan 2020 17:56:01 GMT) Full text and rfc822 format available.

Message #26 received at 38824 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ricardo Wurmus <rekado <at> elephly.net>, joseph <at> lafreniere.xyz
Cc: 38824 <at> debbugs.gnu.org, brettg <at> gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Mon, 06 Jan 2020 18:55:25 +0100
[Message part 1 (text/plain, inline)]
Ricardo Wurmus <rekado <at> elephly.net> writes:

> LaFreniere, Joseph <joseph <at> lafreniere.xyz> 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.

That seems orthogonal to the discussed patch though, seeing as tests
have been disabled in Mercurial since forever.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#38824; Package guix-patches. (Tue, 07 Jan 2020 21:01:02 GMT) Full text and rfc822 format available.

Message #29 received at 38824 <at> debbugs.gnu.org (full text, mbox):

From: Roel Janssen <roel <at> gnu.org>
To: Brett Gilio <brettg <at> gnu.org>, Ricardo Wurmus <rekado <at> elephly.net>
Cc: joseph <at> lafreniere.xyz, 38824 <at> debbugs.gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Tue, 07 Jan 2020 22:00:30 +0100
[Message part 1 (text/plain, inline)]
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

[0001-gnu-Update-mercurial-to-5.2.1.patch (text/x-patch, attachment)]

Reply sent to Brett Gilio <brettg <at> gnu.org>:
You have taken responsibility. (Sat, 11 Jan 2020 01:55:01 GMT) Full text and rfc822 format available.

Notification sent to Roel Janssen <roel <at> gnu.org>:
bug acknowledged by developer. (Sat, 11 Jan 2020 01:55:02 GMT) Full text and rfc822 format available.

Message #34 received at 38824-done <at> debbugs.gnu.org (full text, mbox):

From: Brett Gilio <brettg <at> gnu.org>
To: Roel Janssen <roel <at> gnu.org>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, joseph <at> lafreniere.xyz,
 38824-done <at> debbugs.gnu.org
Subject: Re: [bug#38824] [PATCH] gnu: mercurial: Update to 5.2.1.
Date: Fri, 10 Jan 2020 19:54:39 -0600
Thank you for your hard work on this Roel! I have pushed the changes to
master with 10576acbbf496a051d488c2832f1e474ef6074f3.

Closing.

-- 
Brett M. Gilio
GNU Guix, Contributor | GNU Project, Webmaster
[DFC0 C7F7 9EE6 0CA7 AE55 5E19 6722 43C4 A03F 0EEE]
<brettg <at> gnu.org> <brettg <at> posteo.net>




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 08 Feb 2020 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 76 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.