# HG changeset patch # User Pierre-Yves David # Date 1728416782 -7200 # Node ID 5e2f0fec0a475dd90bc79571fb6d0812cbfd7371 # Parent 3b46e8e6a4011ff3f42acd9f5056937bd6ed88a4# Parent 7b8769cca23dc78e9dd0f0eec52dcc467c76ddcb branching: merge stable into default diff -r 3b46e8e6a401 -r 5e2f0fec0a47 contrib/check-code.py --- a/contrib/check-code.py Fri Oct 04 13:26:29 2024 -0400 +++ b/contrib/check-code.py Tue Oct 08 21:46:22 2024 +0200 @@ -161,7 +161,11 @@ (r'(\[|\btest\b).*-e ', "don't use 'test -e', use 'test -f'"), (r'\[\[\s+[^\]]*\]\]', "don't use '[[ ]]', use '[ ]'"), (r'^alias\b.*=', "don't use alias, use a function"), - (r'if\s*!', "don't use '!' to negate exit status"), + # Solaris sh can not negate exit status with '!' + ( + r'if\s*!', + "don't use '!' to negate exit status (use `||` or if/else)", + ), (r'/dev/u?random', "don't use entropy, use /dev/zero"), (r'do\s*true;\s*done', "don't use true as loop body, use sleep 0"), ( diff -r 3b46e8e6a401 -r 5e2f0fec0a47 contrib/heptapod-ci.yml --- a/contrib/heptapod-ci.yml Fri Oct 04 13:26:29 2024 -0400 +++ b/contrib/heptapod-ci.yml Tue Oct 08 21:46:22 2024 +0200 @@ -26,7 +26,6 @@ variables: PYTHON: python - TEST_HGMODULEPOLICY: "allow" HG_CI_IMAGE_TAG: "v2.1" TEST_HGTESTS_ALLOW_NETIO: "0" @@ -49,7 +48,7 @@ - ls -1 tests/test-check-*.* > /tmp/check-tests.txt script: - echo "$RUNTEST_ARGS" - - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS + - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS checks: <<: *runtests @@ -70,34 +69,29 @@ <<: *runtests variables: RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt" - TEST_HGMODULEPOLICY: "c" TEST_HGTESTS_ALLOW_NETIO: "1" test-pure: <<: *runtests variables: RUNTEST_ARGS: "--pure --blacklist /tmp/check-tests.txt" - TEST_HGMODULEPOLICY: "py" test-rust: &test_rust <<: *runtests variables: HGWITHRUSTEXT: cpython RUNTEST_ARGS: "--rust --blacklist /tmp/check-tests.txt" - TEST_HGMODULEPOLICY: "rust+c" test-rhg: <<: *runtests variables: HGWITHRUSTEXT: cpython RUNTEST_ARGS: "--rust --rhg --blacklist /tmp/check-tests.txt" - TEST_HGMODULEPOLICY: "rust+c" test-chg: <<: *runtests variables: RUNTEST_ARGS: "--blacklist /tmp/check-tests.txt --chg" - TEST_HGMODULEPOLICY: "c" # note: we should probably get a full matrix for flavor × py-version, but this # is a simple start to be able to check if we break the lowest supported @@ -156,14 +150,13 @@ - echo "$Env:TMP" - echo "$Env:TEMP" - - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" $PYTHON tests/run-tests.py --color=always $RUNTEST_ARGS' + - C:/MinGW/msys/1.0/bin/sh.exe --login -c 'cd "$OLDPWD" && HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" $PYTHON tests/run-tests.py --color=always $RUNTEST_ARGS' windows: <<: *windows_runtests tags: - windows variables: - TEST_HGMODULEPOLICY: "c" RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt" PYTHON: py -3 @@ -172,6 +165,5 @@ tags: - windows variables: - TEST_HGMODULEPOLICY: "c" RUNTEST_ARGS: "--blacklist C:/Temp/check-tests.txt --pyoxidized" PYTHON: py -3 diff -r 3b46e8e6a401 -r 5e2f0fec0a47 mercurial/policy.py --- a/mercurial/policy.py Fri Oct 04 13:26:29 2024 -0400 +++ b/mercurial/policy.py Tue Oct 08 21:46:22 2024 +0200 @@ -60,7 +60,7 @@ policy: bytes = b'cffi' # Environment variable can always force settings. -if 'HGMODULEPOLICY' in os.environ: +if os.environ.get('HGMODULEPOLICY'): # ignore None and Empty policy: bytes = os.environ['HGMODULEPOLICY'].encode('utf-8') diff -r 3b46e8e6a401 -r 5e2f0fec0a47 rust/hg-cpython/Cargo.toml --- a/rust/hg-cpython/Cargo.toml Fri Oct 04 13:26:29 2024 -0400 +++ b/rust/hg-cpython/Cargo.toml Tue Oct 08 21:46:22 2024 +0200 @@ -9,7 +9,7 @@ crate-type = ["cdylib"] [dependencies] -cpython = { version = "0.7.1", features = ["extension-module"] } +cpython = { version = "0.7.2", features = ["extension-module"] } crossbeam-channel = "0.5.6" hg-core = { path = "../hg-core"} libc = "0.2.137" diff -r 3b46e8e6a401 -r 5e2f0fec0a47 tests/helpers-testrepo.sh --- a/tests/helpers-testrepo.sh Fri Oct 04 13:26:29 2024 -0400 +++ b/tests/helpers-testrepo.sh Tue Oct 08 21:46:22 2024 +0200 @@ -29,6 +29,12 @@ . "$HGTEST_RESTOREENV" HGPLAIN=1 export HGPLAIN + if [ -n "$HGTEST_BASE_HGMODULEPOLICY" ]; then + HGMODULEPOLICY="$HGTEST_BASE_HGMODULEPOLICY" + else + unset HGMODULEPOLICY + fi + export HGMODULEPOLICY } # The test-repo is a live hg repository which may have evolution markers diff -r 3b46e8e6a401 -r 5e2f0fec0a47 tests/run-tests.py --- a/tests/run-tests.py Fri Oct 04 13:26:29 2024 -0400 +++ b/tests/run-tests.py Tue Oct 08 21:46:22 2024 +0200 @@ -3372,6 +3372,10 @@ pypath.append(oldpypath) osenvironb[IMPL_PATH] = sepb.join(pypath) + os.environ["HGTEST_BASE_HGMODULEPOLICY"] = os.environ.get( + "HGMODULEPOLICY", "" + ) + if self.options.pure: os.environ["HGTEST_RUN_TESTS_PURE"] = "--pure" os.environ["HGMODULEPOLICY"] = "py" @@ -3781,15 +3785,18 @@ vlog("# Performing temporary installation of HG") installerrs = os.path.join(self._hgtmp, b"install.err") compiler = '' + install_env = original_env.copy() if self.options.compiler: compiler = '--compiler ' + self.options.compiler setup_opts = b"" if self.options.pure: setup_opts = b"--pure" + install_env.pop('HGWITHRUSTEXT', None) elif self.options.rust: setup_opts = b"--rust" elif self.options.no_rust: setup_opts = b"--no-rust" + install_env.pop('HGWITHRUSTEXT', None) # Run installer in hg root compiler = _sys2bytes(compiler) @@ -3835,7 +3842,7 @@ makedirs(self._bindir) vlog("# Running", cmd.decode("utf-8")) - if subprocess.call(_bytes2sys(cmd), shell=True, env=original_env) == 0: + if subprocess.call(_bytes2sys(cmd), shell=True, env=install_env) == 0: if not self.options.verbose: try: os.remove(installerrs) diff -r 3b46e8e6a401 -r 5e2f0fec0a47 tests/test-contrib-relnotes.t --- a/tests/test-contrib-relnotes.t Fri Oct 04 13:26:29 2024 -0400 +++ b/tests/test-contrib-relnotes.t Tue Oct 08 21:46:22 2024 +0200 @@ -2,6 +2,12 @@ $ . "$TESTDIR/helpers-testrepo.sh" $ cd $TESTDIR/.. + $ if hg root 2> /dev/null >&2; then true; + > else + > echo 'skipped: cannot read the source repository'; + > exit 80; + > fi + $ python3 contrib/relnotes 4.4 --stoprev 4.5 changeset 3398603c5621: unexpected block in release notes directive feature New Features diff -r 3b46e8e6a401 -r 5e2f0fec0a47 tests/test-doctest.py