2024-12-12 00:32:49 by Taylor R Campbell | Files touched by this commit (1) |
Log message:
devel/py-mercurial: Disable rusty tests.
If we're not building the rusty parts of Mercurial, it doesn't make
sense for the tests to pick up whether $PREFIX/bin/cargo happens to
be installed to decide whether to run the rusty tests of Mercurial.
(If we do enable the rusty parts of Mercurial, whether via options or
unconditionally, we should run the rusty tests too under the same
conditions.)
No revbump because no change to the build -- only to tests.
|
2024-12-12 00:27:34 by Thomas Klausner | Files touched by this commit (9) | |
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
|
2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862) |
Log message:
py-*: remove unused tool dependency
py-setuptools includes the py-wheel functionality nowadays
|
2024-10-24 12:41:05 by Thomas Klausner | Files touched by this commit (3) |
Log message:
py-mercurial: fix running this with Python 3.13
Using a temporary upstream patch, more fixes might be needed, but
this way it doesn't die immediately during startup.
Bump PKGREVISION.
|
2024-08-08 10:11:11 by Thomas Klausner | Files touched by this commit (5) | |
Log message:
py-mercurial: update to 6.8.1.
If you're using Mercurial with Python 3.12.5, you need this version.
Mercurial 6.8.1
Python 3.12: fix an issue between threading and demandimport
rhg: expand user and environment variable in paths to ignore in config and
includes
win32mbcs extension: fix an encoding issue
Mercurial 6.8
As usual, a *lot* of patches don't make it to this list.
New Features or performance improvements
Phases have been reworked to improve their general performance
revset: stop serializing node when using "%ln"
phases: convert remote phase root to node while reading them
phases: use revision number in new_heads
phases: use revision number in analyze_remote_phases
phases: stop using repo.set in remotephasessummary
phases: move RemotePhasesSummary to revision number
phases: use revision number in _pushdiscoveryphase
phases: introduce a performant efficient way to access revision in a set
phases: rework the logic of _pushdiscoveryphase to bound complexity
The Rust working copy code is being used by more places now:
matchers: support patternmatcher in rust
dirstate: remove the python-side whitelist of allowed matchers
stream-clone: disable gc for _entries_walk duration
stream-clone: disable gc for the initial section for the v3 format
postincoming: avoid computing branchhead if no report will be posted
stream-clone: disable gc for the entry listing section for the v2 format
perf: allow profiling of more than one run
perf: run the gc before each run
perf: start recording total time after warming
perf: clear vfs audit_cache before each run
outgoing: rework the handling of the missingroots case to be faster
outgoing: add a simple fastpath when there is no common
tags-cache: skip the filternode step if we are not going to use it
tags-cache: directly operate on rev-num warming hgtagsfnodescache
tags-cache: directly perform a monimal walk for hgtagsfnodescache warming
New Experimental Features
Introduce a new experimental branch cache "v3":
branchcache: add more test for the logic around obsolescence and branch heads
branchcache: skip entries that are topological heads in the on disk file
branchcache: add a "pure topological head" fast path
branchcache: allow to detect "pure topological case" for branchmap
Bug Fixes
rust: use cpython 0.7.2 crate to add support for Python 3.12
perf-stream-locked-section: actually use v1 generation when requested
perf-stream-locked-section: fix the call to the v3 generator
perf-stream-locked-section: advertise the right version key in the help
stream: in v3, skip the "size" fast path if the entries have some \
unknown size
stream-clone: stop getting the file size of all file in v3
streamclone: stop listing files for entries that have no volatile files
perf-stream-consume: use the source repository config when applying
bundle: do no check the changegroup version if no changegroup is included
perf: create the temporary target next to the source in stream-consume
bundlespec: fix the "streamv2" and "streamv3-exp" variant
push: rework the computation of fallbackheads to be correct
profiler: flush after writing the profiler output
base-revsets: use an author that actually exercises a lot of changesets
hgrc: search XDG_CONFIG_HOME on mac
clonebundles: add missing newline to legacy response
narrow: add a test for linkrev computation done during widen
Multiple fixes to guard against mmap issues
portability: fix build on Solaris-derived systemd
Miscellaneous
obsolete: quote the feature name
|
2024-06-24 11:05:18 by Jonathan Perkin | Files touched by this commit (3) |
Log message:
py-mercurial: Fix build regressions.
|
2024-06-21 21:04:50 by Joerg Sonnenberger | Files touched by this commit (3) |
Log message:
Update Mercurial to 6.7.4:
inline-changelog: fix a critical bug in write_pending that delete data \
(3cf9e52f5e27)
inline-changelog: fix pending transaction visibility when splitting \
(1721d983dd6d)
exchange: fix locking to actually be scoped
chistedit: change action for the correct item
rust-status: sort the failed matches when printing them
hooks: add a prewlock and a prelock hooks
bookmark: fix remote bookmark deletion when the push is raced
|
2024-06-21 01:56:45 by Joerg Sonnenberger | Files touched by this commit (4) |
Log message:
mercurial-6.7.3nb1:
- add a two changesets from upstream and under review to improve the
performance of the non-evolution obs exchange.
- install chg(1)
|
2024-06-09 20:08:42 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
py-mercurial: update to 6.7.3.
= Mercurial 6.7.3 =
* setup: display return code information about failed `hg` call
* bundle-spec: properly identify changegroup-less bundle
* bundle-spec: properly parse boolean configuration as boolean
* matchers: fix the bug in rust PatternMatcher that made it cut off early
* match: fix the "visitdir" method on "rootfilesin" matchers
* match: fix the rust-side bug in visit_children_set for rootfilesin matchers
* match: strengthen visit_children_set invariant, Recursive means "all \
files"
* wireprotoserver: ensure that output stream gets flushed on exception
* re2: make errors quiet
* dirstate-v2: add check of parent/child nodes being related when writing
* dirstate-v2: check that root nodes are at the root before writing
* rust-cpython: don't swallow the dirstate error message
* rust: blanket implementation of Graph for Graph references
* Various fixes to `admin::verify`
|
2024-04-05 14:08:03 by Thomas Klausner | Files touched by this commit (2) | |
Log message:
py-mercurial: update to 6.7.2.
Mercurial 6.7.2
Exceptional release following a large performance regression when
cloning.
We are setting up automated benchmarks to reduce the likelihood of
regressions of the sort from happening in the future.
phases: avoid a potentially costly dictionary interation in some case
phases: update the phase set as we go during retract boundary
bundle2: make the "hgtagsfnodes" part advisory
Mercurial 6.7.1
Exceptional release following a crash found in delta code that can
be triggered with complex repository shapes.
delta-search: fix crash caused by unbound variable
sshpeer: fix path when handling invalid url exception
subrepo: fix normalizing paths with scheme
|