Subject: CVS commit: pkgsrc/devel/py-mercurial
From: Thomas Klausner
Date: 2024-12-12 00:27:34
Message id: 20241211232734.700ACFC1C@cvs.NetBSD.org

Log Message:
py-mercurial: update to 6.9.

Update test status, two fixed, but a new core dump in test-locale.t, see
https://bz.mercurial-scm.org/show_bug.cgi?id=6948

Backwards Compatibility Changes

    This release drops support for Python 3.6 and 3.7.

    Starting with this release and hopefully for the forseeable
    future, we are now building wheels for most architectures.

    Python 3.13 changed how it handles docstrings (namely removing
    uniform leading whitespace for every line), which forced us to
    align the representation of our help text with this new behavior
    across all versions. Due to this and a lack of time and expertise
    from contributors, a lot of existing translations could be
    missing. The effort of i18n in general has died down many years
    ago, but if this matters to you, feel free to send your
    contributions.

New Features

    exchange: improve computation of relevant markers for large repos
    Add a Rust fast-path to speed up update (also for clone) from null (up to 4x \ 
faster)
    Introduced a new rev-branch-cache version (v2) that is mmap-resistant
    The branchmap's performance was improved
    Improved the performance of the fix for issue6528
    clonebundles: allow manifest to specify sha256 digest of bundles
    merge: improve working-copy mtime race handling
    profiling: add a py-spy profiling backend
    revlog: use an explicit config option to enable mmap usage for index
    revlog: use mmap by default is pre-population is available
    mmap: populate the mapping by default
    mmap: populate mapping in a background thread

Experimental features

    merge: add a config to allow conflict-free merge of changes on adjacent lines

Bug Fixes
    config.server.validate now also works on narrowed repositories
    convert: fix various leaked file descriptors
    stream: prefer keeping an open file handle to volatile file instead of copy
    dummysmtpd: fix EOF handling on newer versions of OpenSSL
    cext: correct the argument handling of b85encode()
    branchmap-v3: make sure we write the cache after detecting pure-topo mode
    rust: apply clippy lints
    copies: make sure deleted copy info do not overwriting unrelated ones
    rebase: don't call rewriteutil.precheck() with to-be-skipped commits
    phabricator: correct the default value of phabhunk.corpus
    linelog: correct the default value of annotateresult.lines
    largefiles: avoid a potentially undefined variable in exception case
    httppeer: move a variable to avoid a bad reference before assignment warning
    httppeer: avoid another bad reference before assignment warning
    tests: use packaging from setuptools instead of deprecated distutils
    manifest: type and fix unhexlify
    manifest: align some vfs option access on the fact we might not have options
    scmutils: read the requires file before writing to avoid unnecessary rewrite
    debugsparse: stop taking the store lock
    sparse: reliably avoid writing to store without a lock
    largefiles: sync up largefilesdirstate methods with dirstate base class
    shelve: raise an error when loading a corrupt state file in an impossible case
    monotone: replace %s interpolation with appropriate numeric specifiers
    shelve: consistently convert exception to bytes via stringutil.forcebytestr
    remotefilelog: honor the --format arg of the debugindex command
    remotefilelog: adapt the debugindex command to past API changes
    run-tests: add color to the progress output
    archive: defer opening the output until a file is matched
    help: add :config-doc:section.key shorthand to insert documentation
    censor: document the censor.policy option (issue6909)
    rust-revlog: don't try to open the data file if the index is empty
    bundlerepo: fix mismatches with repository and revlog classes
    revlog: make clearcaches() signature consistent with ManifestRevlog
    unionrepo: fix mismatches with revlog classes
    keepalive: fix a signature mismatch for a http.client.HTTPResponse subclass
    lfs: fix various signature mismatches for vfs subclasses
    store: fix a signature mismatch for a vfs subclass
    util: avoid a leaked file descriptor in util.makelock() exceptional case
    statichttprepo: fix httprangereader.read() for py3
    util: make mmapread() work on Windows again
    mdiff: tweak calls into bdiff.fixws to match its type hints
    base85: avoid a spurious use-before-initialized warning in pure module
    install: static data moved from setup.py to pyproject.toml
    upgrade: disable using the parallel workers optimization on macOS
    doc: generate separate commands/topics/extension pages
    extdiff: don't run gui programs when in a cli-only environment
    clonebundles: stop shell quoting HGCB_BUNDLE_BASENAME environment variable
    streamclone: disable the volatile file open handle optimization on Windows
    pytype: add relative timestamp to the output if ts is available
    hgweb: skip logging ConnectionAbortedError

Internal API Changes

    manifest: deprecated readdelta and readfast

Miscellaneous

    http: reuse Python's implementation of read/readline/readinto
    http: use urllib's cookie handler
    rev-branch-cache: schedule a write of the "v2" format if we read \ 
from "v1"
    rev-branch-cache: have debugupdatecache warm rbc too
    rev-branch-cache: reenable memory mapping of the revision data
    debugwireproto: redo logging to also work for https
    rust: use .cargo/config.toml instead of .cargo/config
    A whole bunch of typing improvements, which in turn found many bugs
    Test suite improvements
    Various packaging improvements

Below are many, many changes that have to do with building/testing wheels, \ 
adding some sharding to the CI and MacOS + Windows compatibility work:

    ci: abstract the branch matching regexp
    ci: add "sink" for parallel tests
    ci: for branches, use a single trigger
    packaging: explain why we purge while building wheels
    wheels: rely on the image config to be able to access the repository
    packaging: remove the i686 wheel from the linux-wheels target
    packaging: propagate the make option to packaging target
    packaging: factor the linux-wheels-x86_64 a bit
    wheel: add a target for amdx86_64-musl wheels
    wheel: also build the musl wheel in the ci
    wheel: reintroduce the building of i686 wheel
    wheels: also build the i686 wheel in the CI
    contrib: install the arm64 compiler tools in the Windows dependency script
    contrib: add a bat file to build all of the wheels on Windows
    wheels: remove deprecated blacklist
    wheels: make sure we create the dist/ directory in the make target
    contrib: add a script to build all of the wheels on macOS
    wheel: also build wheel for linux arm64 in the CI
    ci: add sink for wheels too
    run-tests: don't use shell call for subprocess
    run-tests: add a --hg-wheel options to test a pre-built wheel
    ci: unify the way check-pytype inherit the common setting
    ci: split the jobs on more stage
    ci: build a wheel and use it to run c tests
    tests: stabilize test-extdiff.t on macOS
    tests: disable test-git-interop.t with a requirements directive
    tests: disable a section of test-hgrc.t that may hit a zeroconf bug
    ci: add a runner for Windows 10
    tests: treat select as a built-in module on Windows
    tests: disable a section of test-paths.t that may hit a zeroconf bug
    tests: conditionalize missing output in test-racy-mutations.t on Windows
    tests: add a "missing" tests for manifest content in \ 
test-racy-mutations.t
    tests: bump the wait timeouts in test-racy-mutations.t
    test-install: use the global hg for the install step
    test-install: glob instance of "python" in warning
    ci: pre-adjust some identation
    setup: add a way to force the setup to translate (or fail)
    ci: use smaller VM to build wheel
    ci: use a pre-setup many-linux image to build wheel
    ci: build (and use) wheel for all supported version
    ci: automatically compute the python tag we use to identify tag
    run-tests: install wheel using --prefix instead of --user
    pycompat: drop some now useless workaround for makedirs
    wheel: build mac os wheel through the CI
    ci: use the macos wheel to run tests
    ci: use extends instead of <<: *x
    ci: move some variables closer to their usage
    ci: rationalize variable usage
    ci: abstract the of absolute /tmp/ path
    ci: move the "tempory work dir" to "concurrency-safe" \ 
location
    ci: adjust the starting port range to runner concurrency
    ci: have the mac test run if you trigger building the mac wheel
    run-tests: implement crude sharding support
    ci: shard the test run on mac os X
    dev-version: change the scheme of non tagged version
    wheel: enforce that translation being build for macos wheel
    run-tests: focus on listing the selected test for the shard tests
    run-tests: cleanup the "output" directory after the related tests
    tests: drop PYTHONPATH manipulation in test-pushvars.t
    windows: work around argument size limitation in test-bookmarks-pushpull.t
    windows: adjust PYTHONPATH update in test-status-color.t
    ci: use a concurrency safe TMP dir on Windows
    ci: again common element into a .windows template
    ci: split the windows runtest invocation into more granular variables
    windows: skip test-clonebundles-autogen.t in the CI
    ci: adjust port range on windows too
    windows: simply rely on the PATH adjustment to find python.exe in tests
    wheel: assign CIBW_SKIP globally
    wheel: make --hg-wheel works on Windows
    wheel: build Windows wheels too
    wheel: explicitly list built architecture
    wheel: test the built wheel in the windows tests
    ci: shard the tests on windows too
    wheel: enforce that translation being build for windows wheel
    setup: remote a debug statement that slipped through
    setup: factor version computation in a function
    setup: use the same code to compute tag from archive
    wheel: add a platform level to the wheel directories
    wheel: add a job uploading nightly build
    wheels: factor the core of Linux wheel building into a script
    wheels: update the Linux wheels make target
    clone: properly exclude rev-branch-cache from post clone cache warming
    setup: make sure Rust build its extension for the right python
    setup: preserve version part after the "+" on Windows
    wheel: build windows wheel for ARM64 too
    ci: adds a trigger for all pycompat jobs
    ci: let the Windows runner decide how many job they want to run

Files:
RevisionActionfile
1.102modifypkgsrc/devel/py-mercurial/Makefile
1.49modifypkgsrc/devel/py-mercurial/PLIST
1.152modifypkgsrc/devel/py-mercurial/distinfo
1.64modifypkgsrc/devel/py-mercurial/version.mk
1.1removepkgsrc/devel/py-mercurial/patches/patch-hgdemandimport_____init____.py
1.3removepkgsrc/devel/py-mercurial/patches/patch-mercurial_bundle2.py
1.1removepkgsrc/devel/py-mercurial/patches/patch-mercurial_exchange.py
1.2removepkgsrc/devel/py-mercurial/patches/patch-mercurial_obsolete.py
1.1removepkgsrc/devel/py-mercurial/patches/patch-mercurial_obsutil.py