Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2024-10-28 15:34:46
Size: 4988
Editor: RaphaelGomes
Comment:
Revision 6 as of 2024-11-16 20:58:37
Size: 9477
Comment: Move documentation generation changes to "Miscellaneous"
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Mercurial 6.9rc1 =

/!\ These are release notes for a release candidate version. Any and all points can be reverted before the final release.

 * streamclone: disable the volatile file open handle optimization on Windows
 * rust-update: make `update_from_null` respect `worker.numcpu` config option
 * rust-update: handle SIGINT from long-running update threads
 * rust-cpython: add a TODO about repo reuse
 * pytype: add relative timestamp to the output if `ts` is available
 * hgweb: skip logging ConnectionAbortedError

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

 * 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
Line 70: Line 153:
 * doc: generate separate commands/topics/extension pages
Line 92: Line 174:
 * doc: generate separate commands/topics/extension pages

Mercurial 6.9rc1

/!\ These are release notes for a release candidate version. Any and all points can be reverted before the final release.

  • streamclone: disable the volatile file open handle optimization on Windows
  • rust-update: make update_from_null respect worker.numcpu config option

  • rust-update: handle SIGINT from long-running update threads
  • rust-cpython: add a TODO about repo reuse
  • pytype: add relative timestamp to the output if ts is available

  • hgweb: skip logging ConnectionAbortedError

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

  • 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

Mercurial 6.9rc0

/!\ These are release notes for a release candidate version. Any and all points can be reverted before the final release.

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
  • extdiff: don't run gui programs when in a cli-only environment
  • clonebundles: stop shell quoting HGCB_BUNDLE_BASENAME environment variable

  • rev-branch-cache: disable mmapping by default on Windows

Backwards Compatibility Changes

  • This release drops support for Python 3.6 and 3.7.

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

  • doc: generate separate commands/topics/extension pages
  • A whole bunch of typing improvements, which in turn found many bugs
  • Test suite improvements
  • Various packaging improvements

Release6.9 (last edited 2025-04-03 14:24:25 by RaphaelGomes)