==> Building on cetitan ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-hatchling ./ .SRCINFO 886 100% 0.00kB/s 0:00:00 886 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 54 100% 52.73kB/s 0:00:00 54 100% 52.73kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 1,697 100% 1.62MB/s 0:00:00 1,697 100% 1.62MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-hatchling-1.28.0-3.1.log 738 100% 720.70kB/s 0:00:00 738 100% 720.70kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 2,711 bytes received 192 bytes 1,161.20 bytes/sec total size is 3,862 speedup is 1.33 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-hatchling  -> repo: extra  -> arch: riscv64  -> worker: felix-2 ==> Building python-hatchling for [extra] (riscv64) ==> Locking clean chroot...done ]3008;start=108c88d396944ceb8cc72947ccda2a92;user=root;hostname=cetitan.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=a65ba047b913407bb6154561d4c26e07;pid=1051039;comm=systemd-nspawn;container=arch-nspawn-1051039;type=container\]11;?\]2;🔵 Container arch-nspawn-1051039 on cetitan.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104[?7h]3008;end=108c88d396944ceb8cc72947ccda2a92\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-2]...done ==> Making package: python-hatchling 1.28.0-3.1 (Sat Jan 31 06:30:41 2026) ==> Retrieving sources...  -> Downloading hatchling-v1.28.0.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 640337 0 640337 0 0 394382 0 --:--:-- 0:00:01 --:--:-- 643554 100 4010k 0 4010k 0 0 1529k 0 --:--:-- 0:00:02 --:--:-- 2012k 100 5171k 0 5171k 0 0 1773k 0 --:--:-- 0:00:02 --:--:-- 2261k ==> Validating source files with sha256sums... hatchling-v1.28.0.tar.gz ... Passed ]3008;start=d71921533b534896831e9b7db5f2473c;user=root;hostname=cetitan.felixc.at;machineid=01ca1404c26b4b3a80152fb4f25f4ca7;bootid=a65ba047b913407bb6154561d4c26e07;pid=1053076;comm=systemd-nspawn;container=arch-nspawn-1053076;type=container\]11;?\]2;🔵 Container arch-nspawn-1053076 on cetitan.felixc.at\==> Making package: python-hatchling 1.28.0-3.1 (Sat Jan 31 06:31:07 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (7) New Version Net Change core/mpdecimal 4.0.1-1 0.31 MiB core/python 3.14.2-2 132.78 MiB extra/python-editables 0.5-7.1 0.03 MiB extra/python-packaging 26.0-1 0.89 MiB extra/python-pathspec 0.12.1-4 0.26 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-trove-classifiers 2026.1.14.14-1.1 0.16 MiB Total Installed Size: 134.65 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter installing python-editables... installing python-packaging... installing python-pathspec... installing python-pluggy... installing python-trove-classifiers... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (27) New Version Net Change Download Size extra/python-autocommand 2.2.2-9 0.08 MiB extra/python-hatchling 1.28.0-3 1.06 MiB extra/python-iniconfig 2.1.0-3.1 0.05 MiB extra/python-jaraco.collections 5.1.0-3 0.11 MiB extra/python-jaraco.context 6.0.1-3 0.04 MiB extra/python-jaraco.functools 4.1.0-3 0.07 MiB extra/python-jaraco.text 4.0.0-4 0.08 MiB extra/python-markdown-it-py 4.0.0-2.1 0.77 MiB 0.14 MiB extra/python-mdurl 0.1.2-9 0.06 MiB 0.02 MiB extra/python-more-itertools 10.8.0-2 0.73 MiB extra/python-platformdirs 4.5.1-3 0.28 MiB extra/python-pygments 2.19.2-3 15.30 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-setuptools 1:80.9.0-4 8.03 MiB extra/python-setuptools-scm 9.2.2-3 0.61 MiB extra/python-wheel 0.45.1-4 0.30 MiB extra/uv 0.9.28-1 49.92 MiB 15.11 MiB core/libxcrypt-compat 4.5.2-1 0.19 MiB 0.09 MiB extra/python-build 1.4.0-1 0.24 MiB extra/python-click 8.3.1-1 1.36 MiB 0.23 MiB extra/python-filelock 3.20.3-1 0.15 MiB 0.03 MiB extra/python-hatch-vcs 0.5.0-4.1 0.04 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB extra/python-rich 14.3.1-1 4.48 MiB 0.57 MiB extra/python-tomli-w 1.2.0-2 0.04 MiB extra/python-uv 0.9.28-1 0.07 MiB 0.02 MiB Total Download Size: 16.20 MiB Total Installed Size: 89.06 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... uv-0.9.28-1-riscv64 downloading... python-rich-14.3.1-1-any downloading... python-click-8.3.1-1-any downloading... python-markdown-it-py-4.0.0-2.1-any downloading... libxcrypt-compat-4.5.2-1-riscv64 downloading... python-filelock-3.20.3-1-any downloading... python-mdurl-0.1.2-9-any downloading... python-uv-0.9.28-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer [pending] python-virtualenv: to use virtualenv for build isolation installing python-installer... installing libxcrypt-compat... installing python-click... installing python-filelock... installing python-hatchling... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand [pending] installing python-setuptools... installing python-setuptools-scm... Optional dependencies for python-setuptools-scm python-rich: use rich as console log handler [pending] installing python-hatch-vcs... installing python-iniconfig... installing python-pygments... installing python-pytest... installing python-mdurl... installing python-markdown-it-py... Optional dependencies for python-markdown-it-py python-mdit_py_plugins: core plugins python-linkify-it-py: linkify extension installing python-rich... installing python-tomli-w... installing uv... installing python-uv... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Retrieving sources...  -> Found hatchling-v1.28.0.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting hatchling-v1.28.0.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... Successfully built hatchling-1.28.0-py3-none-any.whl ==> Starting check()... * Building wheel... Successfully built hatch-1.28.0-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 rootdir: /build/python-hatchling/src/hatch-hatchling-v1.28.0 configfile: pyproject.toml collected 967 items tests/backend/builders/hooks/test_custom.py ...... [ 0%] tests/backend/builders/hooks/test_version.py ............ [ 1%] tests/backend/builders/plugin/test_interface.py ........................ [ 4%] [ 4%] tests/backend/builders/test_binary.py ssssssssssssssssssssssssssssss [ 7%] tests/backend/builders/test_config.py .................................. [ 10%] ........................................................................ [ 18%] .....................................................................s.. [ 25%] .s.s...s.s.s..s...s...s.s.s.s.s.s.s.s.....s...s...s.... [ 31%] tests/backend/builders/test_custom.py ......... [ 32%] tests/backend/builders/test_sdist.py ................................... [ 36%] .............. [ 37%] tests/backend/builders/test_wheel.py ................................... [ 41%] .................................................................sssss.. [ 48%] .... [ 49%] tests/backend/metadata/test_build.py ............. [ 50%] tests/backend/metadata/test_core.py .................................... [ 54%] ........................................................................ [ 61%] .................................FF............FF...................... [ 68%] tests/backend/metadata/test_custom_hook.py ...... [ 69%] tests/backend/metadata/test_hatch.py ........................... [ 72%] tests/backend/metadata/test_spec.py ...............F.................... [ 76%] .....................F.......................F......................F... [ 83%] ....................F [ 85%] tests/backend/test_build.py ... [ 85%] tests/backend/utils/test_context.py ......................... [ 88%] tests/backend/utils/test_fs.py .. [ 88%] tests/backend/utils/test_macos.py .......... [ 89%] tests/backend/version/scheme/test_standard.py .......................... [ 92%] ............................ [ 95%] tests/backend/version/source/test_code.py .......... [ 96%] tests/backend/version/source/test_env.py .... [ 96%] tests/backend/version/source/test_regex.py ............................. [ 99%] .. [100%] =================================== FAILURES =================================== ________________ TestDependencies.test_direct_reference_allowed ________________ self = isolation = Path('/tmp/tmpltek6l0_') def test_direct_reference_allowed(self, isolation): metadata = ProjectMetadata( str(isolation), None, { "project": {"dependencies": ["proj @ git+https://github.com/org/proj.git@v1"]}, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) > assert metadata.core.dependencies == ["proj@ git+https://github.com/org/proj.git@v1"] E AssertionError: assert ['proj @ git+.../proj.git@v1'] == ['proj@ git+h.../proj.git@v1'] E E At index 0 diff: 'proj @ git+https://github.com/org/proj.git@v1' != 'proj@ git+https://github.com/org/proj.git@v1' E Use -v to get more diff /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_core.py:1166: AssertionError ___________________ TestDependencies.test_context_formatting ___________________ self = isolation = Path('/tmp/tmpltek6l0_'), uri_slash_prefix = '//' def test_context_formatting(self, isolation, uri_slash_prefix): metadata = ProjectMetadata( str(isolation), None, { "project": {"dependencies": ["proj @ {root:uri}"]}, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) normalized_path = str(isolation).replace("\\", "/") > assert metadata.core.dependencies == [f"proj@ file:{uri_slash_prefix}{normalized_path}"] E AssertionError: assert ['proj @ file.../tmpltek6l0_'] == ['proj@ file:.../tmpltek6l0_'] E E At index 0 diff: 'proj @ file:///tmp/tmpltek6l0_' != 'proj@ file:///tmp/tmpltek6l0_' E Use -v to get more diff /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_core.py:1179: AssertionError _______________ TestOptionalDependencies.test_context_formatting _______________ self = isolation = Path('/tmp/tmpltek6l0_'), uri_slash_prefix = '//' def test_context_formatting(self, isolation, uri_slash_prefix): metadata = ProjectMetadata( str(isolation), None, { "project": {"name": "my-app", "optional-dependencies": {"foo": ["proj @ {root:uri}"]}}, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) normalized_path = str(isolation).replace("\\", "/") > assert metadata.core.optional_dependencies == {"foo": [f"proj@ file:{uri_slash_prefix}{normalized_path}"]} E AssertionError: assert {'foo': ['pro...tmpltek6l0_']} == {'foo': ['pro...tmpltek6l0_']} E E Differing items: E {'foo': ['proj @ file:///tmp/tmpltek6l0_']} != {'foo': ['proj@ file:///tmp/tmpltek6l0_']} E Use -v to get more diff /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_core.py:1346: AssertionError ____________ TestOptionalDependencies.test_direct_reference_allowed ____________ self = isolation = Path('/tmp/tmpltek6l0_') def test_direct_reference_allowed(self, isolation): metadata = ProjectMetadata( str(isolation), None, { "project": { "name": "my-app", "optional-dependencies": {"foo": ["proj @ git+https://github.com/org/proj.git@v1"]}, }, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) > assert metadata.core.optional_dependencies == {"foo": ["proj@ git+https://github.com/org/proj.git@v1"]} E AssertionError: assert {'foo': ['pro...proj.git@v1']} == {'foo': ['pro...proj.git@v1']} E E Differing items: E {'foo': ['proj @ git+https://github.com/org/proj.git@v1']} != {'foo': ['proj@ git+https://github.com/org/proj.git@v1']} E Use -v to get more diff /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_core.py:1361: AssertionError ____________ TestProjectMetadataFromCoreMetadata.test_dependencies _____________ self = def test_dependencies(self): core_metadata = f"""\ Metadata-Version: {LATEST_METADATA_VERSION} Name: My.App Version: 0.1.0 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' """ > assert project_metadata_from_core_metadata(core_metadata) == { "name": "My.App", "version": "0.1.0", "dependencies": ["bar==5", "foo==1"], "optional-dependencies": { "feature1": ['bar==5; python_version < "3"', "foo==1"], "feature2": ["bar==5", 'foo==1; python_version < "3"'], "feature3": ["baz@ file:///path/to/project"], }, } E assert {'dependencie...ion': '0.1.0'} == {'dependencie...ion': '0.1.0'} E E Omitting 3 identical items, use -vv to show E Differing items: E {'optional-dependencies': {'feature1': ['bar==5; python_version < "3"', 'foo==1'], 'feature2': ['bar==5', 'foo==1; python_version < "3"'], 'feature3': ['baz @ file:///path/to/project']}} != {'optional-dependencies': {'feature1': ['bar==5; python_version < "3"', 'foo==1'], 'feature2': ['bar==5', 'foo==1; python_version < "3"'], 'feature3': ['baz@ file:///path/to/project']}} E Use -v to get more diff /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_spec.py:221: AssertionError __________ TestCoreMetadataV21.test_all[construct_metadata_file_2_1] ___________ self = constructor = helpers = temp_dir = Path('/tmp/tmpo1wlvfk5') def test_all(self, constructor, helpers, temp_dir): metadata = ProjectMetadata( str(temp_dir), None, { "project": { "name": "My.App", "version": "0.1.0", "description": "foo", "urls": {"foo": "bar", "bar": "baz"}, "authors": [{"email": "bar@domain", "name": "foo"}], "maintainers": [{"email": "bar@domain", "name": "foo"}], "license": {"text": "foo\nbar"}, "keywords": ["foo", "bar"], "classifiers": [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.9", ], "requires-python": ">=1,<2", "dependencies": ["foo==1", "bar==5"], "optional-dependencies": { "feature2": ['foo==1; python_version < "3"', "bar==5"], "feature1": ["foo==1", 'bar==5; python_version < "3"'], "feature3": ["baz @ file:///path/to/project"], }, "readme": {"content-type": "text/markdown", "text": "test content\n"}, }, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) (temp_dir / "LICENSE.txt").touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.1 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo License: foo bar Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E AssertionError: assert 'Metadata-Ver...est content\n' == 'Metadata-Ver...est content\n' E E Skipping 694 identical leading characters in diff, use -v to show E - -Dist: baz@ file:///path/to/project ; extra == 'feature3' E + -Dist: baz @ file:///path/to/project ; extra == 'feature3' E ? + E Description-Content-Type: text/markdown E E test content /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_spec.py:968: AssertionError __________ TestCoreMetadataV22.test_all[construct_metadata_file_2_2] ___________ self = constructor = helpers = temp_dir = Path('/tmp/tmpp_l923ri') def test_all(self, constructor, helpers, temp_dir): metadata = ProjectMetadata( str(temp_dir), None, { "project": { "name": "My.App", "version": "0.1.0", "description": "foo", "urls": {"foo": "bar", "bar": "baz"}, "authors": [{"email": "bar@domain", "name": "foo"}], "maintainers": [{"email": "bar@domain", "name": "foo"}], "license": {"text": "foo\nbar"}, "keywords": ["foo", "bar"], "classifiers": [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.9", ], "requires-python": ">=1,<2", "dependencies": ["foo==1", "bar==5"], "optional-dependencies": { "feature2": ['foo==1; python_version < "3"', "bar==5"], "feature1": ["foo==1", 'bar==5; python_version < "3"'], "feature3": ["baz @ file:///path/to/project"], }, "readme": {"content-type": "text/markdown", "text": "test content\n"}, }, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) (temp_dir / "LICENSE.txt").touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.2 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo License: foo bar Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E AssertionError: assert 'Metadata-Ver...est content\n' == 'Metadata-Ver...est content\n' E E Skipping 694 identical leading characters in diff, use -v to show E - -Dist: baz@ file:///path/to/project ; extra == 'feature3' E + -Dist: baz @ file:///path/to/project ; extra == 'feature3' E ? + E Description-Content-Type: text/markdown E E test content /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_spec.py:1437: AssertionError __________ TestCoreMetadataV23.test_all[construct_metadata_file_2_3] ___________ self = constructor = temp_dir = Path('/tmp/tmp0r03e610') helpers = def test_all(self, constructor, temp_dir, helpers): metadata = ProjectMetadata( str(temp_dir), None, { "project": { "name": "My.App", "version": "0.1.0", "description": "foo", "urls": {"foo": "bar", "bar": "baz"}, "authors": [{"email": "bar@domain", "name": "foo"}], "maintainers": [{"email": "bar@domain", "name": "foo"}], "keywords": ["foo", "bar"], "classifiers": [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.9", ], "requires-python": ">=1,<2", "dependencies": ["foo==1", "bar==5"], "optional-dependencies": { "feature2": ['foo==1; python_version < "3"', "bar==5"], "feature1": ["foo==1", 'bar==5; python_version < "3"'], "feature3": ["baz @ file:///path/to/project"], }, "readme": {"content-type": "text/markdown", "text": "test content\n"}, }, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) licenses_dir = temp_dir / "LICENSES" licenses_dir.mkdir() (licenses_dir / "MIT.txt").touch() (licenses_dir / "Apache-2.0.txt").touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.3 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E AssertionError: assert 'Metadata-Ver...est content\n' == 'Metadata-Ver...est content\n' E E Skipping 669 identical leading characters in diff, use -v to show E - -Dist: baz@ file:///path/to/project ; extra == 'feature3' E + -Dist: baz @ file:///path/to/project ; extra == 'feature3' E ? + E Description-Content-Type: text/markdown E E test content /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_spec.py:1878: AssertionError __________ TestCoreMetadataV24.test_all[construct_metadata_file_2_4] ___________ self = constructor = temp_dir = Path('/tmp/tmpb2comg1u') helpers = def test_all(self, constructor, temp_dir, helpers): metadata = ProjectMetadata( str(temp_dir), None, { "project": { "name": "My.App", "version": "0.1.0", "description": "foo", "urls": {"foo": "bar", "bar": "baz"}, "authors": [{"email": "bar@domain", "name": "foo"}], "maintainers": [{"email": "bar@domain", "name": "foo"}], "license": "mit or apache-2.0", "license-files": ["LICENSES/*"], "keywords": ["foo", "bar"], "classifiers": [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.9", ], "requires-python": ">=1,<2", "dependencies": ["foo==1", "bar==5"], "optional-dependencies": { "feature2": ['foo==1; python_version < "3"', "bar==5"], "feature1": ["foo==1", 'bar==5; python_version < "3"'], "feature3": ["baz @ file:///path/to/project"], }, "readme": {"content-type": "text/markdown", "text": "test content\n"}, }, "tool": {"hatch": {"metadata": {"allow-direct-references": True}}}, }, ) licenses_dir = temp_dir / "LICENSES" licenses_dir.mkdir() (licenses_dir / "MIT.txt").touch() (licenses_dir / "Apache-2.0.txt").touch() > assert constructor(metadata) == helpers.dedent( """ Metadata-Version: 2.4 Name: My.App Version: 0.1.0 Summary: foo Project-URL: foo, bar Project-URL: bar, baz Author-email: foo Maintainer-email: foo License-Expression: MIT OR Apache-2.0 License-File: LICENSES/Apache-2.0.txt License-File: LICENSES/MIT.txt Keywords: bar,foo Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.11 Requires-Python: <2,>=1 Requires-Dist: bar==5 Requires-Dist: foo==1 Provides-Extra: feature1 Requires-Dist: bar==5; (python_version < '3') and extra == 'feature1' Requires-Dist: foo==1; extra == 'feature1' Provides-Extra: feature2 Requires-Dist: bar==5; extra == 'feature2' Requires-Dist: foo==1; (python_version < '3') and extra == 'feature2' Provides-Extra: feature3 Requires-Dist: baz@ file:///path/to/project ; extra == 'feature3' Description-Content-Type: text/markdown test content """ ) E AssertionError: assert 'Metadata-Ver...est content\n' == 'Metadata-Ver...est content\n' E E Skipping 776 identical leading characters in diff, use -v to show E - -Dist: baz@ file:///path/to/project ; extra == 'feature3' E + -Dist: baz @ file:///path/to/project ; extra == 'feature3' E ? + E Description-Content-Type: text/markdown E E test content /build/python-hatchling/src/hatch-hatchling-v1.28.0/tests/backend/metadata/test_spec.py:2341: AssertionError =============================== warnings summary =============================== tests/backend/version/scheme/test_standard.py: 63 warnings /build/python-hatchling/src/hatch-hatchling-v1.28.0/test-env/lib/python3.14/site-packages/hatchling/version/scheme/standard.py:71: DeprecationWarning: Version._version is private and will be removed soon internal_version = version._version # noqa: SLF001 tests/backend/version/scheme/test_standard.py: 63 warnings /build/python-hatchling/src/hatch-hatchling-v1.28.0/test-env/lib/python3.14/site-packages/hatchling/version/scheme/standard.py:85: DeprecationWarning: Version._version is private and will be removed soon version._version = type(internal_version)(**parts) # noqa: SLF001 -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/backend/metadata/test_core.py::TestDependencies::test_direct_reference_allowed FAILED tests/backend/metadata/test_core.py::TestDependencies::test_context_formatting FAILED tests/backend/metadata/test_core.py::TestOptionalDependencies::test_context_formatting FAILED tests/backend/metadata/test_core.py::TestOptionalDependencies::test_direct_reference_allowed FAILED tests/backend/metadata/test_spec.py::TestProjectMetadataFromCoreMetadata::test_dependencies FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV21::test_all[construct_metadata_file_2_1] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV22::test_all[construct_metadata_file_2_2] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV23::test_all[construct_metadata_file_2_3] FAILED tests/backend/metadata/test_spec.py::TestCoreMetadataV24::test_all[construct_metadata_file_2_4] =========== 9 failed, 904 passed, 54 skipped, 126 warnings in 33.92s =========== ==> ERROR: A failure occurred in check().  Aborting... [!p]104[?7h]3008;end=d71921533b534896831e9b7db5f2473c\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-2/build [?25h[?25h[?25hreceiving incremental file list python-hatchling-1.28.0-3.1-riscv64-build.log python-hatchling-1.28.0-3.1-riscv64-check.log sent 62 bytes received 3,583 bytes 2,430.00 bytes/sec total size is 26,546 speedup is 7.28