Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-ruff for openSUSE:Factory checked in at 2026-08-15 22:39:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ruff (Old) and /work/SRC/openSUSE:Factory/.python-ruff.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ruff" Sat Aug 15 22:39:46 2026 rev:123 rq:1371200 version:0.16.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ruff/python-ruff.changes 2026-08-11 17:09:27.782541476 +0200 +++ /work/SRC/openSUSE:Factory/.python-ruff.new.1258/python-ruff.changes 2026-08-15 22:39:50.211919422 +0200 @@ -1,0 +2,32 @@ +Fri Aug 14 08:57:37 UTC 2026 - Martin Pluskal <[email protected]> + +- Add a _multibuild "test" flavour running upstream's Rust test suite: + * the package had no %check at all; the tests now build and run in + a separate flavour, so the main build stays as fast as before and + still publishes the only binaries + * the flavour needs no Python, so it skips the singlespec machinery + and produces a src.rpm only + * the suite runs fully offline against the vendored dev-dependencies + * ruff_linter is excluded because the PyPI sdist does not ship + crates/ruff_linter/resources/test/fixtures/, without which its + rule tests cannot load their input files + +------------------------------------------------------------------- +Fri Aug 14 07:36:38 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 0.16.3: + * New preview rule UP048 rewrites "while 1" to "while True" + * PLR6104 no longer misses negative numbers (preview) + * S602, S603, S607 and S609 now also check keyword arguments + * PLE1300 and PLE1307 no longer report false positives or + negatives around the %b format character, bools and + concatenated strings + * "continue" in a "finally" block is now allowed on Python 3.8 + * NPY201 autofix for np.chararray is now backwards-compatible + * RUF006 documentation now also suggests asyncio.TaskGroup + * ruff check --statistics now hyperlinks rule codes + * Shrink the Expr AST node to 64 bytes for lower memory use +- Re-vendor the Rust dependencies; the statically linked crate + graph is unchanged, so License stays MIT AND MPL-2.0 + +------------------------------------------------------------------- Old: ---- ruff-0.16.2.tar.gz New: ---- _multibuild ruff-0.16.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ruff.spec ++++++ --- /var/tmp/diff_new_pack.YzQjAI/_old 2026-08-15 22:39:51.856977329 +0200 +++ /var/tmp/diff_new_pack.YzQjAI/_new 2026-08-15 22:39:51.858977399 +0200 @@ -16,9 +16,19 @@ # +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%global debug_package %{nil} +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%define origname python-ruff %bcond_without libalternatives -Name: python-ruff -Version: 0.16.2 +Name: %{origname}%{psuffix} +Version: 0.16.3 Release: 0 Summary: An extremely fast Python linter, written in Rust # Legal-Review-Notice: ruff itself is MIT, but the binary statically links @@ -39,15 +49,24 @@ URL: https://github.com/astral-sh/ruff Source: https://files.pythonhosted.org/packages/source/r/ruff/ruff-%{version}.tar.gz Source1: vendor.tar.zst +BuildRequires: cargo-packaging +# The test flavour only builds and runs the Rust test suite. It needs no +# Python at all, so it skips the singlespec machinery entirely - running +# cargo test once per Python flavour would double the cost for no gain. +# Everything below is guarded so the test flavour advertises no providers. +# NOTE: spec-cleaner wants to hoist %%python_subpackages out of this %%if - +# do not apply that, it makes the test flavour declare a phantom +# python313-ruff-test subpackage that OBS then parses for scheduling. +%if %{without test} BuildRequires: %{python_module maturin} BuildRequires: %{python_module pip} BuildRequires: alts -BuildRequires: cargo-packaging BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: alts Provides: ruff = %{version}-%{release} %python_subpackages +%endif %description Ruff extremely fast Python linter written in rust supperseding many other linting tools @@ -56,14 +75,32 @@ %autosetup -a1 -p1 -n ruff-%{version} %build +%if %{without test} %pyproject_wheel +%endif +%if %{without test} %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitearch} %python_clone -a %{buildroot}%{_bindir}/ruff %python_group_libalternatives ruff +%endif + +%if %{with test} +%check +# The PyPI sdist does not ship crates/ruff_linter/resources/test/fixtures/, +# so every ruff_linter rule test that reads a fixture file fails on a missing +# path (2209 of its 2807 tests). Exclude that one crate, plus the single ruff +# test that walks the same fixture tree, instead of disabling the whole suite - +# the rest of the workspace (parser, formatter, semantic model, notebooks, CLI, +# server, doctests) runs entirely offline against the vendored dev-dependencies. +# The leading "--" is required: %%cargo_test is a parametrised macro, so +# without it rpm parses "--workspace" as a macro option and aborts the build. +%{cargo_test -- --workspace --exclude ruff_linter -- --skip cache::tests::same_results::ruff_linter_fixtures} +%endif +%if %{without test} %pre %python_libalternatives_reset_alternative ruff @@ -73,4 +110,5 @@ %python_alternative %{_bindir}/ruff %{python_sitearch}/ruff %{python_sitearch}/ruff-%{version}.dist-info +%endif ++++++ _multibuild ++++++ <multibuild> <flavor>test</flavor> </multibuild> ++++++ ruff-0.16.2.tar.gz -> ruff-0.16.3.tar.gz ++++++ ++++ 7280 lines of diff (skipped) ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/python-ruff/vendor.tar.zst /work/SRC/openSUSE:Factory/.python-ruff.new.1258/vendor.tar.zst differ: char 7, line 1
