view relnotes/6.5 @ 51307:87bfd1703597

contrib: add a set of scripts to run pytype in Docker Having a simple way to run pytype for developers can massively shorten development cycle. Using the same Docker image and scripts that we use on our CI guarantees that the result achieved locally will be very similar to (if not the same as) the output of our CI runners. Things to note: the Dockerfile needs to do a little dance around user permissions inside /home/ci-runner/ because: - on one hand, creating new files on the host (e.g. .pyi files inside .pytype/) should use host user's uid and gid - on the other hand, when we run the image as uid:gid of host user, it needs to be able to read/execute files inside the image that are owned by ci-runner Since local user's uid might be different from ci-runner's uid, we execute this very broad chmod command inside /home/ci-runner/, but then run the image as the host user's uid:gid. There might be a better way to do this.
author Anton Shestakov <av6@dwimlabs.net>
date Mon, 08 Jan 2024 13:35:02 +0100
parents c083d9776cb2
children
line wrap: on
line source

= Mercurial 6.5.3 =

 * "hgweb: pass strings in WSGI environment correctly from wsgicgi"
 * "perf: introduce more cache invalidation option in perf::tags"
 * "perf: add a `--clear-fnode-cache-rev` argument to perf::tags"
 * "perf: add a --update-last flag to perf::tags"
 * "blackbox: add a option to duplicate output to stderr too"
 * "tags: avoid expensive access to repo.changelog in a loop"
 * "revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV"
 * "httppeer: fix static-http: scheme autodetection (issue6833)"
 * "tests: backed out changeset 8037ddacad47"
 * "stream-clone: fix a crash when a repo with an empty revlog is cloned"
 * "censor: accept censored revision during upgrade"
 * "revlog: avoid opening and closing the file for each cloned revision"

= Mercurial 6.5.2 =

 * hgweb: encode WSGI environment using the ISO-8859-1 codec
 * rhg: fix the bug where sparse config is interpreted as relglob instead of glob
 * gpg: fix an UnboundLocalError whenever using --force
 * transaction: fix __repr__() and make the default name bytes
 * setup: make the error "Unable to find a working hg binary" more informative
 * tests: avoid test environment affecting setup.py
 * run-tests: detect HGWITHRUSTEXT value

= Mercurial 6.5.1 =

 * A bunch of improvements to Python 3.12 compatibility
 * repoview: fix the filter created by `extrafilter`
 * Improve portability of the test suite
 * fncache: fix a bug that corrupts the fncache after transaction rollback
 * revlog: fix the naming scheme use by split temporary file
 * perf: fix perf::tags

= Mercurial 6.5 =

As usual, a lot of patches don't make it to this list since they're more internal.

== New Features ==

 * Improved Python 3.12 compatiblity
 * configitems: enable changegroup3 by default (unless using infinitepush)
 * extras: expose 'retained_extras' for extensions to extend
 * stabletailgraph: implement stable-tail sort
 * stabletailgraph: naive version of leap computation
 * bundle: introduce a "v3" spec
 * clone-bundles: add a basic first version of automatic bundle generation
 * clone-bundles: garbage collect older bundle when generating new ones
 * clone-bundles: only regenerate the clone bundle when cached ration is low
 * clone-bundles: also control automation based on absolute number of revisions
 * clone-bundles: add a configuration to control auto-generation on changes
 * clone-bundles: introduce a command to refresh bundle
 * clone-bundles: add a command to clear all bundles
 * clone-bundles: add an option to generate bundles in the background
 * clonebundles: add support for inline (streaming) clonebundles
 * clonebundles: adds a auto-generate.serve-inline option
 * match: add `filepath:` pattern to match an exact filepath relative to the root
 * hgweb: add "children" into the JSON template for a changeset
 * hgweb: add support to explicitly access hidden changesets
 * pull: add --remote-hidden option and pass it through peer creation
 * hidden: add support for --remote-hidden to HTTP peer
 * hidden: support passing --hidden with `serve --stdio`
 * hidden: add support to explicitly access hidden changesets with SSH peers
 * perf: introduce a `perf::stream-locked-section` command
 * perf: add a function to find a stream version generator
 * perf: add support for stream-v3 during benchmark
 * perf: add a perf::stream-generate command
 * perf: add a perf::stream-consume
 * cli: make debugnodemap capable of inspecting an arbitrary nodemap
 * rust: configure MSRV in Clippy
 * rhg: make `rhg files` work if `ui.relative-files=true` is specified
 * rhg: support `rhg files` with `ui.relative-paths=false`
 * rhg: support `status --print0`
 * tree-manifest: allow `debugupgraderepo` to run on tree manifest repo
 * library: enable runpy invocation on mercurial package
 * library: incorporate demandimport into runpy invocation
 * exchange: allow passing no includes/excludes to `pull()`

== New Experimental Features ==

 * stream-clone: add an experimental v3 version of the protocol
 * stream-clone: support streamv3 on the cli [hg bundle]

== Bug Fixes ==

 * mail: add a missing argument to properly override starttls
 * bundle: include required phases when saving a bundle (issue6794)
 * outgoing: fix common-heads computation from `missingroots` argument
 * strip: do not include internal changeset in the strip backup
 * bundle: abort if the user request bundling of internal changesets
 * bundle: prevent implicit bundling of internal changeset
 * encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
 * sha1dc: Make sure SHA1DC_BIGENDIAN is set on Darwin/PowerPC
 * zstd: hack include order to ensure that our zstd.h is found
 * dirstate: better error messages when dirstate is corrupted
 * stream-clone: avoid opening a revlog in case we do not need it
 * treemanifest: make `updatecaches` update the nodemaps for all directories
 * rust-hg-core: move from `ouroboros` to `self_cell`
 * rust-dependencies: switch from `users` to `whoami`
 * dirstate-v2: actually fix the dirstate-v2 upgrade race
 * dirstate: avoid leaking disk space in `hg debugrebuilddirstate`
 * clonebundles: add warning if auto-generate is enabled without formats
 * win32mbcs: unbyteify some strings for py3 support
 * rust-revlog: fix incorrect results with NULL_NODE prefixes
 * rust-revlog: fix RevlogEntry.data() for NULL_REVISION

== Backwards Compatibility Changes ==

 * infinitepush: aggressively deprecated infinite push
 * narrow: indicated the default of 'Yes' when confirming auto-remove-includes

== Internal API Changes ==

 * Store walk was reworked to fix small race conditions in stream-clone and
   greatly improve its API robustness and flexibility.

== Miscellaneous ==

 * Typechecking support was improved in a lot of places
 * Removed more useless compat code for now unsupported Python versions
 * Sped up zstd usage in Rust contexts
 * revlog: add an exception hint when processing LFS flags without the extension
 * ui: keep the progress bar around when writing if stdout is not a tty
 * transaction: use a ".bck" extension for all backup file