Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mercurial for openSUSE:Factory checked in at 2025-09-14 18:49:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mercurial (Old) and /work/SRC/openSUSE:Factory/.mercurial.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mercurial" Sun Sep 14 18:49:10 2025 rev:217 rq:1304286 version:7.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/mercurial/mercurial.changes 2025-08-06 14:32:39.722451860 +0200 +++ /work/SRC/openSUSE:Factory/.mercurial.new.1977/mercurial.changes 2025-09-14 18:49:34.512587324 +0200 @@ -1,0 +2,54 @@ +Fri Sep 12 09:47:22 UTC 2025 - Sean Baggaley <[email protected]> + +- Mercurial 7.1.1 + + A scheduled minor release containing only one series that is relevant for + these notes. + + The series fixes the way we detect non-critical repository corruption due to + issue6528 because, unfortunately, the fix for issue6528 was itself buggy. + + This means that if your repo had the on-the-fly rewrite option on + (which is the default), too many file revisions will have been marked + as having metadata, potentially costing you a bit of performance + because Mercurial will look for metadata that isn't there. + + **Your repository will behave completely fine by not doing anything**, and we + even have work well underway that changes how we flag file revisions + with metadata, removing the root of this problem entirely. + + If you want to fix this however, as with the original issue, this problem is + contagious across the wire so you need to first upgrade to 7.1.1 to get the + correct on-the-fly rewrite, and then run the `hg debug-repair-issue6528` command + to repair your clone. Consult the help of this command for more options. + + * issue6528: fix the detection of metadata from delta + * issue6528: avoid creating an intermediate bytes object + * issue6528: don't process snapshot as patches + * issue6528: fix fast path detection of file with metadata + * issue6528: don't report the revision as affect if it just has me + * issue6528: factor out the parent checking + * issue6528: stop trusting repository parent order claiming metadata ex + * issue6528: add --paranoid flag to various call + * issue6528: simplify code flow in _is_revision_affected_fast_inner + * issue6528: directly use delta_has_meta in _is_revision_affected_fast_inner + +------------------------------------------------------------------- +Wed Sep 10 11:10:25 UTC 2025 - Sean Baggaley <[email protected]> + +- Restored the ability to run tests at package build time. 'osc build --with tests' works now. + Locale related tests also work now by temporarily pointing it to the location of the locale + files in the build environment. + Tests are still disabled by default, because they take a very long time to run, and are quiet + when running, so OBS often times out the build. + The Rust tests also run clippy which causes errors with the current version. + +------------------------------------------------------------------- +Sat Sep 6 13:16:16 UTC 2025 - Sean Baggaley <[email protected]> + +- Package the Mercurial Rust features under the subpackage mercurial-rust. + This includes the Rust extensions for hg, and the standalone pure-Rust implementation, rhg. + These features are currently experimental and have caveats, + consult 'hg help rust' and the subpackage documentation before use. + +------------------------------------------------------------------- Old: ---- mercurial-7.1.tar.gz New: ---- _service mercurial-7.1.1.tar.gz vendor-rust.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mercurial.spec ++++++ --- /var/tmp/diff_new_pack.qh78lp/_old 2025-09-14 18:49:35.412625040 +0200 +++ /var/tmp/diff_new_pack.qh78lp/_new 2025-09-14 18:49:35.412625040 +0200 @@ -2,7 +2,6 @@ # spec file for package mercurial # # Copyright (c) 2025 SUSE LLC and contributors -# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -31,8 +30,14 @@ %endif %endif +%bcond_with tests + +%ifarch %{rust_arches} +%bcond_without rust +%endif + Name: mercurial -Version: 7.1 +Version: 7.1.1 Release: 0 Summary: Scalable Distributed SCM License: GPL-2.0-or-later @@ -61,16 +66,15 @@ %else Requires: ca-certificates %endif -%if 0%{?with_tests} +%if %{with tests} Source90: tests.blacklist BuildRequires: %{python_module Pygments} -BuildRequires: bzr +BuildRequires: breezy BuildRequires: git BuildRequires: gpg BuildRequires: ncurses-devel BuildRequires: subversion-python BuildRequires: unzip -#BuildRequires: python-pyflakes %endif %description @@ -79,6 +83,34 @@ %lang_package +%if %{with rust} +%package rust +Summary: Rust extensions for Mercurial +Requires: %{name} = %{version} +BuildRequires: cargo +BuildRequires: cargo-packaging +Source80: vendor-rust.tar.zst + +%description rust +Mercurial is a fast, lightweight source control management system +designed for efficient handling of very large distributed projects. + +This package contains Rust-based features for Mercurial: +- hg-core (and hg-pyo3): implementation of some + functionality of mercurial in Rust, e.g. ancestry computations in + revision graphs, status or pull discovery. +- rhg: a pure Rust implementation of Mercurial, with a fallback mechanism for + unsupported invocations. It reuses the logic `hg-core` but + completely forgoes interaction with Python. + +These features are varying degrees of experimental and come with caveats. +See 'hg help rust' (accessible without this package) +or the documentation files in this package for more information. + +Installing this package will enable the Rust extensions for hg immediately. +rhg is its own separate program. +%endif + %package tests Summary: Mercurial tests Group: Development/Tools/Version Control @@ -98,12 +130,22 @@ find . -type f -exec sed -i -e '1{/#!/s/env //}' '{}' \; +%if %{with rust} +%setup -q -a 80 +%endif + chmod 644 hgweb.cgi %build %pyproject_wheel %make_build -C contrib/chg all +%if %{with rust} +pushd rust +%cargo_build +popd +%endif + %install %pyproject_install %make_build -C doc install PREFIX="%{_prefix}" DESTDIR=%{buildroot} PYTHON=%{expand:%%__%{pythons}} @@ -128,9 +170,27 @@ mkdir -p %{buildroot}%{_datadir}/mercurial cp -a tests/. %{buildroot}%{_datadir}/mercurial/tests -%if 0%{?with_tests} +%if %{with rust} +# set modulepolicy that would usually be set by setup.py +echo 'modulepolicy = b"rust+c-allow"' > %{buildroot}%{python_sitearch}/mercurial/__modulepolicy__.py + +# workaround cargo-packaging < 1.3.0 not setting CARGO_TARGET_DIR and outputting to ./rust/target +mv rust/target . || true + +install -m0755 target/release/rhg %{buildroot}%{_bindir} +install -m0755 target/release/librusthgpyo3.so %{buildroot}%{python_sitearch}/mercurial/pyo3_rustext.so +%endif + +%if %{with tests} %check -%make_build tests TESTFLAGS="-v --blacklist=%{SOURCE90}" PYTHON=%{expand:%%__%{pythons}} +# need to temporarily override the locale path to within buildroot to get +# i18n-related tests to succeed in the build env +cp %{buildroot}%{python_sitearch}/mercurial/i18n.py i18n.py.bak +sed -i 's!/usr/share/locale!%{buildroot}/usr/share/locale!' %{buildroot}%{python_sitearch}/mercurial/i18n.py + +%make_build tests TESTFLAGS="-v --with-hg=%{buildroot}%{_bindir}/hg --blacklist=%{SOURCE90}" PYTHON=%{expand:%%__%{pythons}} PYTHONPATH=${PYTHONPATH:+$PYTHONPATH:}%{buildroot}%{python3_sitearch} + +mv i18n.py.bak %{buildroot}%{python_sitearch}/mercurial/i18n.py %endif %files lang -f hg.lang @@ -139,10 +199,19 @@ %dir %{_datadir}/mercurial %{_datadir}/mercurial/tests +%if %{with rust} +%files rust +%{_bindir}/rhg +%{python_sitearch}/mercurial/pyo3_rustext.so +%doc rust/rhg/README.md +%endif + %files %license COPYING %doc README.rst CONTRIBUTORS hgweb.cgi -%{_bindir}/* +%{_bindir}/hg +%{_bindir}/hgk +%{_bindir}/chg %{_datadir}/bash-completion/completions/* %{_datadir}/zsh/ %dir %{_sysconfdir}/mercurial @@ -162,3 +231,7 @@ %{python_sitearch}/mercurial %{python_sitearch}/mercurial-%{version}*-info +%if %{with rust} +%exclude %{python_sitearch}/mercurial/pyo3_rustext.so +%endif + ++++++ _service ++++++ <services> <service name="cargo_vendor" mode="manual"> <param name="src">mercurial-*.tar.gz</param> <param name="custom-root">rust</param> <param name="compression">zst</param> <param name="update">true</param> <param name="tag">rust</param> </service> </services> ++++++ mercurial-7.1.tar.gz -> mercurial-7.1.1.tar.gz ++++++ /work/SRC/openSUSE:Factory/mercurial/mercurial-7.1.tar.gz /work/SRC/openSUSE:Factory/.mercurial.new.1977/mercurial-7.1.1.tar.gz differ: char 5, line 1 ++++++ tests.blacklist ++++++ --- /var/tmp/diff_new_pack.qh78lp/_old 2025-09-14 18:49:35.524629734 +0200 +++ /var/tmp/diff_new_pack.qh78lp/_new 2025-09-14 18:49:35.540630404 +0200 @@ -1,3 +1,7 @@ -test-i18n.t test-status-color.t +test-convert-svn-encoding.t +# want internet access +test-run-tests.t +test-hghave.t +
