mercurial: update to 5.0

Still building with python-2.7 only, but this version has beta support
for python 3.x.

Mercurial 5.0 release

This is an overview of the 5.0 release.

1. New Features

    ui.relative-paths option for getting relative path output from most commands. This is enabled when ui.tweakdefaults is enabled.

    expectsize() revset errors out if revset has unexpected number of elements.

    config() template function for getting a config value.

    {negrev} template keyword shows the negative revision number. This is convenient because it is usually shorter than the positive number, but note that it is less stable.

    hg uncommit now has an --allow-dirty-working-copy option.

    hg shelve now has --keep option, which shelves but also leaves the working directory unchanged.

    hg diff will now include specified files in subrepos.

    hg recover now has a --no-verify option

1.1. Python 3 Support (Beta)

Mercurial 5.0 has beta level support for running on Python 3.5, 3.6, and 3.7. The Mercurial distribution itself and all extensions bundled with it should work on these Python versions.

To use Mercurial with Python 3, invoke setup.py with a Python 3 interpreter or set the PYTHON variable to a Python 3 interpreter when invoking the Makefile. e.g. python3.7 setup.py install or make install-home PYTHON=python3.7.

3rd party extensions will likely need to be ported to support running on Python 3 and attempts to run many existing extensions with a Python 3 powered Mercurial will result in extension loading failures. See the Python3 page for more.

While the Mercurial test suite has a >99% pass rate when running with Python 3.5, 3.6, and 3.7, we anticipate that there are still many Python 3 bugs lingering in Mercurial. Please report Python 3 issues using the instructions at BugTracker.

If you package Mercurial or distribute it to users, we do not recommend making Python 3 the default at this time.

Python 3 is not yet very well tested on Windows and there are likely several more lingering issues on Windows compared to Linux, macOS, and other UNIX-like platforms.

1.2. Updated Windows Installers

Windows installer packaging has been transitioned away from ad-hoc processes employed on individual contributors' personal machines to occurring in reproducible infrastructure driven by code in the Mercurial repository itself. This transition should enable Windows packaging and releasing to be more reliable and reproducible.

As part of this transition, there are changes to the Windows installers.

1.2.1. Inno Setup .exe Installer Changes

    Python has been upgraded from 2.7.15 to 2.7.16
    add_path.exe has been removed and the Inno installer now updates PATH via a Pascal script that is part of the installer
    The dulwich package has been upgraded from version 0.18.3 to 0.19.11
    The keyring package has been upgraded to version 18.0.1
    The pygments package has been upgraded to version 2.3.1
    The urllib3 package is now included
    The MSVC Runtime DLLs (msvcm90.dll, msvcp90.dll, and msvcr90.dll) have been upgraded from version 9.0.21022.8 to 9.0.30729.9518
    Various tcl/tk Python packages are now included (making the Python distribution more complete)
    The pywin32 package is no longer included (pywin32 has not been required by Mercurial for years)
    Known issue: the distutils package is broken
    (x86 only) Python .pyd and .dll extension modules and support libraries are now installed as standalone files instead of bundled in the library.zip file. This behavior is now consistent with 64-bit installers.

2. New Experimental Features

3. Other Notable Features

4. Other Improvements

    Improved color scheme for histedit's curses interface, making it more consistent with the curses hunk selector.

5. Bug Fixes

    Histedit's curse interface has improved support for non ascii characters.

6. Backwards Compatibility Changes

    color: change color of grep.rev label (BC)
    commit: if interactive, look elsewhere for whitespace settings (BC)

    diff: make sure we output stat even when --git is not passed (issue4037) (BC)
    uncommit: abort if an explicitly given file cannot be uncommitted (BC)
    The Windows Inno installers no longer ship the pywin32 package. This package was being bundled for historical reasons. Mercurial stopped using pywin32 several years ago and the disappearance of this package should not have any meaningful impact.
    The 32-bit Windows Inno installers no longer distribute w9xpopen.exe. This should only impact people running Mercurial on Windows 95, 98, or ME.
    The Windows MSI installers no longer include the Python sphinx package and its various dependencies.
    The Windows MSI installers no longer include the pywin32 Python package.
    The Windows MSI installers no longer include the enum and future Python packages.

7. Internal API Changes

    add: pass around uipathfn and use instead of m.rel() (API)
    addremove: pass around uipathfn and use instead of m.uipath() (API)
    branchmap: drop branchcache.setdefault() (API)
    branchmap: remove the dict interface from the branchcache class (API)
    forget: pass around uipathfn and use instead of m.rel() (API)
    largefiles: use uipathfn instead of match.{rel,uipath}() (API)
    match: delete unused abs() (API)
    match: delete unused rel() (API)
    match: delete unused root and cwd arguments from {always,never,exact}() (API)
    match: delete unused root and cwd arguments to constructors (API)
    match: delete unused uipath() and _uipathrelative (API)
    match: remove unused "exact" argument (API)
    memctx: rename constructor argument "copied" to "copysource" (API)
    patch: accept second matcher that applies only to copy sources (API)
    patch: let caller pass in root-filtering matcher (API)
    patch: pass in context objects into diffhunks() (API)
    patch: replace "prefix" and "relroot" arguments by "pathfn" (API)
    remove: pass around uipathfn and use instead of m.rel() (API)
    revset: leverage getintrange() helper in relation-subscript operation (API)
    scmutil: delete now-unused origpath() (API)
    scmutil: remove special handling of pats==("",) in matchandpats() (API)
    subrepo: adjust subrepo prefix before calling subrepo.add() (API)
    subrepo: adjust subrepo prefix before calling subrepo.addremove() (API)
    subrepo: adjust subrepo prefix before calling subrepo.archive() (API)
    subrepo: adjust subrepo prefix before calling subrepo.diff() (API)
    subrepo: adjust subrepo prefix before calling subrepo.forget() (API)
    subrepo: adjust subrepo prefix before calling subrepo.removefiles() (API)
    subrepo: avoid calculating subrepo prefix twice for cat() (API)
    templatekw: move getrenamedfn() to scmutil (API)
This commit is contained in:
wiz 2019-05-21 20:55:02 +00:00
parent c7564612bc
commit be60da5f20
6 changed files with 27 additions and 27 deletions

View file

@ -1,7 +1,6 @@
# $NetBSD: Makefile,v 1.105 2019/04/25 07:32:48 maya Exp $
# $NetBSD: Makefile,v 1.106 2019/05/21 20:55:02 wiz Exp $
PKGREVISION= 1
.include "../../devel/py-mercurial/Makefile.version"
.include "../../devel/py-mercurial/version.mk"
PKGNAME= mercurial-${VERSION}
CATEGORIES= devel scm

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.28 2019/03/19 12:12:22 wiz Exp $
# $NetBSD: Makefile,v 1.29 2019/05/21 20:55:02 wiz Exp $
DISTNAME= mercurial-${VERSION}
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
@ -21,10 +21,13 @@ USE_TOOLS+= gmake msgfmt
INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 ${PKGMANDIR}/man5
INSTALLATION_DIRS+= share/doc/mercurial
.include "Makefile.version"
.include "version.mk"
# Known test failures:
# none
# test-logtoprocess
# https://bz.mercurial-scm.org/show_bug.cgi?id=6143
# 21 timeouts:
# https://bz.mercurial-scm.org/show_bug.cgi?id=6144
do-test:
cd ${WRKSRC} && make tests PYTHON=${PYTHONBIN} TESTFLAGS=${_MAKE_JOBS:Q}

View file

@ -1,15 +0,0 @@
# $NetBSD: Makefile.version,v 1.71 2019/04/26 14:12:36 maya Exp $
VERSION= 4.9.1
PYTHON_VERSIONS_INCOMPATIBLE= 36 37 # not yet ported as of 4.9.1
# see also https://www.mercurial-scm.org/wiki/SupportedPythonVersions
# and https://www.mercurial-scm.org/wiki/Python3
#
# the following setup argument was requested when compiling
# for python-3.x
#.include "../../lang/python/pyversion.mk"
#
#.if "${PYPKGPREFIX}" != "py27"
#PYSETUPARGS+= --c2to3
#.endif

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.22 2019/02/14 09:53:06 wiz Exp $
@comment $NetBSD: PLIST,v 1.23 2019/05/21 20:55:02 wiz Exp $
bin/hg
${PYSITELIB}/hgdemandimport/__init__.py
${PYSITELIB}/hgdemandimport/__init__.pyc
@ -1229,6 +1229,9 @@ ${PYSITELIB}/mercurial/utils/__init__.pyo
${PYSITELIB}/mercurial/utils/cborutil.py
${PYSITELIB}/mercurial/utils/cborutil.pyc
${PYSITELIB}/mercurial/utils/cborutil.pyo
${PYSITELIB}/mercurial/utils/compression.py
${PYSITELIB}/mercurial/utils/compression.pyc
${PYSITELIB}/mercurial/utils/compression.pyo
${PYSITELIB}/mercurial/utils/dateutil.py
${PYSITELIB}/mercurial/utils/dateutil.pyc
${PYSITELIB}/mercurial/utils/dateutil.pyo
@ -1238,6 +1241,9 @@ ${PYSITELIB}/mercurial/utils/interfaceutil.pyo
${PYSITELIB}/mercurial/utils/procutil.py
${PYSITELIB}/mercurial/utils/procutil.pyc
${PYSITELIB}/mercurial/utils/procutil.pyo
${PYSITELIB}/mercurial/utils/repoviewutil.py
${PYSITELIB}/mercurial/utils/repoviewutil.pyc
${PYSITELIB}/mercurial/utils/repoviewutil.pyo
${PYSITELIB}/mercurial/utils/storageutil.py
${PYSITELIB}/mercurial/utils/storageutil.pyc
${PYSITELIB}/mercurial/utils/storageutil.pyo

View file

@ -1,6 +1,6 @@
$NetBSD: distinfo,v 1.74 2019/03/26 06:20:17 wiz Exp $
$NetBSD: distinfo,v 1.75 2019/05/21 20:55:02 wiz Exp $
SHA1 (mercurial-4.9.1.tar.gz) = 2919b255c97f1355b08f9f5fe13031c6ebfca315
RMD160 (mercurial-4.9.1.tar.gz) = 4be4ff74ee183936b52774dfeeb9ab02df70e25b
SHA512 (mercurial-4.9.1.tar.gz) = 2265ab501e24a2d229ef29404ca35d318faf620db163ec33225348d53139f7b6cb121e935ce444ec697ced69697f43df57dd7199ad20c1ca6f0275d9744ce391
Size (mercurial-4.9.1.tar.gz) = 7076867 bytes
SHA1 (mercurial-5.0.tar.gz) = 5591b1323167c4b25f992e727370379ae9a73f9a
RMD160 (mercurial-5.0.tar.gz) = afc314b7db88e392b10a032fcae53a7a6f5209c9
SHA512 (mercurial-5.0.tar.gz) = fa193bdf3957bbd6625c41aa210292bf1fca7125e05977467b3dc85420cea1e952b89cd861613564ec05f9e93ff51bad652f5b875beb2e3b0d28e524c8b64bad
Size (mercurial-5.0.tar.gz) = 7197243 bytes

View file

@ -0,0 +1,7 @@
# $NetBSD: version.mk,v 1.1 2019/05/21 20:55:02 wiz Exp $
VERSION= 5.0
PYTHON_VERSIONS_INCOMPATIBLE= 36 37 # 5.0 has "beta" support for python 3
# see https://www.mercurial-scm.org/wiki/Python3
# set HGPYTHON3=1 in the environment during install