Commit Graph

311 Commits

Author SHA1 Message Date
Miro Hrončok
beceb2c94b PEP 639 is provisional, no longer a draft 2024-11-03 10:00:34 +01:00
Karolina Surma
bc6cb55227 Fix handling of self-referencing extras when reading pyproject.toml
Keep the information about the requirement extras by storing the
Requirement instances in the list of the ignored requirements, rather
than the strings in the form they were initially read from metadata.
The requirements strings read from pyproject.toml don't contain the
extra information, we insert the extra marker only after converting them to
Requirement instances. When stored as the text, the information about
the extra went missing in the course of the script.
2024-10-04 09:54:08 +02:00
Miro Hrončok
c7553b2c7d Even when %_auto_set_build_flags is disabled, set all compiler flags when building wheels
- Fixes: rhbz#2293616
2024-09-23 15:53:23 +02:00
Miro Hrončok
8a41ec5715 Don't generate a dependency on pip when %pyproject_buildrequires -N is used
- Fixes: rhbz#2294510
2024-09-23 14:39:00 +02:00
Karolina Surma
9f43e2a760 Add a possibility to read runtime dependencies from pyproject.toml
This adds a new flag, -p, to %pyproject_buildrequires.
When set, the runtime dependencies are read from the pyproject.toml's
[project] table.

See: https://bugzilla.redhat.com/2261939

pyproject_buildrequires.py already had a short `-p` option for
--python3_pkgversion (hidden from the macro users).
This change removes the one-letter option and leaves the long-one.
`-p` is now reused for reading dependencies from pyproject.toml
and made visible to the macro users.
2024-09-23 11:48:20 +02:00
Miro Hrončok
ab3dc0126a CI: Update setuptools_scm to a version that can be tested on EL9, EL10, Fedora 39-42 2024-09-07 12:42:44 +02:00
Miro Hrončok
459cda2e67 CI: python-ipykernel: Drop unneeded python3-ipyparallel dependency
It is not available in EPEL 10 and we can avoid it by excluding more imports,
which is what this spec file tests anyway.
2024-09-07 12:42:44 +02:00
Miro Hrončok
89374b9107 CI: python-virtualenv: Drop an unused dependency on python3-flaky
We don't have flaky in EL 10 yet.
2024-09-07 12:42:44 +02:00
Miro Hrončok
4a4614d13a CI: Use poetry-core in python-clikit.spec for EL10 compatibility 2024-09-07 12:42:44 +02:00
Miro Hrončok
32a3b5613f CI: Use flit_core in python-entrypoints.spec for EL10 compatibility 2024-09-07 12:42:44 +02:00
Miro Hrončok
049eb198d0 CI: Make python-pytest.spec build on EL 10 (but not on EL 9 anymore) 2024-09-07 12:42:44 +02:00
Miro Hrončok
dddc9bf556 CI: Use tomli rather than toml in fake-requirements.spec
toml is deprecated and not available on EL10.
2024-09-07 12:42:44 +02:00
Lumir Balhar
c8abf80acd Mark the license in the specfile as SPDX formula 2024-09-05 21:41:19 +00:00
Miro Hrončok
6f1ac1b126 CI: There is no EPEL 10 Next, use plain EPEL mock chroots on RHEL 10+ 2024-08-20 11:47:19 +02:00
Miro Hrončok
1278dd8dbd Extend rpmlintrc to filer out further non-errors
We got:

    pyproject-srpm-macros.noarch: W: unexpanded-macro Summary(C) %pyproject_buildrequires
    pyproject-srpm-macros.noarch: W: unexpanded-macro %description -l C %pyproject_buildrequires
    pyproject-srpm-macros.noarch: W: unexpanded-macro %description -l C %generate_buildrequires
    pyproject-rpm-macros.noarch: E: spelling-error ('cfg', '%description -l en_US cfg -> cf, cg, cog')
    pyproject-rpm-macros.noarch: E: spelling-error ('toml', '%description -l en_US toml -> tom, tome, toms')
    pyproject-rpm-macros.noarch: E: spelling-error ('setuptools', '%description -l en_US setuptools -> setup tools, setup-tools, footstools')
    pyproject-rpm-macros.src: E: spelling-error ('cfg', '%description -l en_US cfg -> cf, cg, cog')
    pyproject-rpm-macros.src: E: spelling-error ('toml', '%description -l en_US toml -> tom, tome, toms')
    pyproject-rpm-macros.src: E: spelling-error ('setuptools', '%description -l en_US setuptools -> setup tools, setup-tools, footstools')
    pyproject-srpm-macros.noarch: E: spelling-error ('buildrequires', 'Summary(en_US) buildrequires -> build requires, build-requires, requirements')
    pyproject-srpm-macros.noarch: E: spelling-error ('buildrequires', '%description -l en_US buildrequires -> build requires, build-requires, requirements')
    pyproject-srpm-macros.noarch: W: no-documentation
2024-08-05 23:22:26 +00:00
Miro Hrončok
7c4ffdcf84 CI: Make python-pluggy build on Fedora 41+ 2024-08-05 18:21:41 +02:00
Miro Hrončok
3539b832c8 CI: Allow platformdirs 4 in python-virtualenv.spec 2024-07-25 11:54:55 +02:00
Miro Hrončok
e7b37d02f8 Add a provisional RPM Declarative Buildsystem (RPM 4.20+) 2024-07-25 11:54:55 +02:00
Fedora Release Engineering
bc3d8013a4 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 08:56:55 +00:00
Miro Hrončok
436695615e Revert the temporary workaround for RPM 4.20 alpha 2 leaking \x1f (unit separators)
This reverts commit 996ac31b46.
2024-07-03 16:03:03 +02:00
Miro Hrončok
6d455af4dc Properly escape weird characters from paths in %{pyproject_files} (RPM 4.19+ only) 2024-07-02 23:53:19 +02:00
Cristian Le
d74914ec13 %pyproject_extras_subpkg: Allow passing -a or -A to %python_extras_subpkg
Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
2024-06-25 12:27:56 +02:00
Miro Hrončok
996ac31b46 Add a temporary workaround for RPM 4.20 alpha 2 leaking \x1f (unit separators)
Strip them.
This workaround is safe with RPM < 4.20 or when RPM is fixed.
2024-06-04 10:46:50 +02:00
Miro Hrončok
d0a66a2871 README: Add a missing link 2024-05-22 20:38:10 +02:00
Miro Hrončok
fa7c91c65d CI: Regardless of the package manager, use dnf.conf in mock config
After https://github.com/rpm-software-management/mock/pull/1332

We saw:

    ERROR: Config error: /tmp/fedora-39-x86_64-ci.cfg: '{% if releasever|int >= 40 %}dnf5{% else %}dnf{% endif %}.conf'

We cannot use the templated value of package_manager in a key.

The rawhide mock config uses dnf.conf anyway, despite using dnf5.

Reported to mock in https://github.com/rpm-software-management/mock/issues/1357
2024-04-11 13:32:17 +02:00
Miro Hrončok
3667fcd240 Revert "CI: Use DNF 4 in mock to workaround dnf5#1084"
This reverts commit 1d00ed8155.

https://github.com/rpm-software-management/dnf5/issues/1084 is fixed
2024-02-06 10:48:01 +01:00
Miro Hrončok
a069958530 Document why we generate a dependency on wheel when the default build backend is used 2024-02-05 17:20:54 +01:00
Miro Hrončok
5aca0a6034 Namespace pyproject-rpm-macros generated text files with %{python3_pkgversion} 2024-01-26 09:45:58 +01:00
Miro Hrončok
f987ccf2ee CI: Skip httpbin %tox on F40+ 2024-01-26 09:45:58 +01:00
Fedora Release Engineering
48d8f4493a Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 00:40:39 +00:00
Fedora Release Engineering
e9d0e2578a Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 22:48:05 +00:00
Miro Hrončok
900c578fc8 Fix %pyproject_buildrequires -w when the build backend is already installed and pip isn't
Fixes: https://bugzilla.redhat.com/2169855
2023-12-13 17:19:14 +01:00
Miro Hrončok
89c9b407fa Show a better error message when %pyproject_install finds no wheel
Fixes: https://bugzilla.redhat.com/2242452
2023-12-13 17:18:40 +01:00
Miro Hrončok
89f2408342 Prevent incorrect usage of %pyproject_buildrequires -R with -x/-e/-t
Fixes: https://bugzilla.redhat.com/2244282
2023-12-13 17:17:33 +01:00
Miro Hrončok
1d00ed8155 CI: Use DNF 4 in mock to workaround dnf5#1084
mock-core-configs-39.3 switched the package manager for Fedora 40 to dnf5
  https://fedoraproject.org/wiki/Changes/BuildWithDNF5

dnf5 builddep cannot handle BuildRequires with square brackets,
e.g. with Python extras, leading to errors like:

  No match for argument: python3dist(setuptools-scm[toml]) >= 5
  No match for argument: python3dist(raven[flask])
  No match for argument: python3dist(ini2toml[lite]) >= 0.9

This is reported: https://github.com/rpm-software-management/dnf5/issues/1084

Until it is fixed, we explicitly use the "dnf" (i.e. DNF 4) package manager in mock,
even on Fedora 40+.
2023-12-11 15:09:35 +01:00
Miro Hrončok
f39261901c Add the -l/-L flag to %pyproject_save_files
- The -l flag can be used to assert at least 1 License-File was detected
- The -L flag explicitly disables this check (which remains the default)

Co-Authored-By: Maxwell G <maxwell@gtmx.me>
2023-12-11 13:16:09 +01:00
Miro Hrončok
0ce790d763 Fix a typo in an error message 2023-11-19 21:02:56 +01:00
Miro Hrončok
633cfd6634 Fix a typo in the latest changelog entry 2023-09-27 18:17:58 +02:00
Miro Hrončok
089e2518ea Fix handling of tox 4 provision without tox minversion
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2240590

The added test actually blows up without the fix with both tox 4 or tox 3,
so perhaps this bug also existed with tox 3.
2023-09-27 16:08:45 +02:00
Miro Hrončok
15acb6ee5b Communicate loudly that this does not work with old RPM
I have seen several folks building this package in a RHEL 8 environment.
This won't prevent them doing so, but at least they will be forced to make changes,
acknowledging the fact that what they are doing has consequences.
2023-09-27 11:51:03 +00:00
Karolina Surma
97a7574518 Add %_pyproject_check_import_allow_no_modules
Macro which allows to pass the import check even if no Python modules
are detected in the package.
Only to be used in the automated environments.

Co-authored-by: Miro Hrončok <miro@hroncok.cz>
2023-09-26 10:23:49 +00:00
Carl George
a39d658f0f Fix PEP number typo 2023-09-25 16:32:54 -05:00
Miro Hrončok
4b32bbb939 Use %rpmversion to check if we are on RPM 4.19+ 2023-08-31 09:28:36 +00:00
Miro Hrončok
5ffc27bdf7 CI: Don't treat DeprecationWarnings in setuptools_scm's %check as errors 2023-08-30 23:11:42 +02:00
Miro Hrončok
0ae2849f20 CI: Update setuptools to make it build with Python 3.12
This still works on Fedora 37/38. EL 9 uses a different setuptools version for tests.
2023-08-30 23:07:40 +02:00
Miro Hrončok
479a6b3669 CI: Update poetry-core to workaround a weird FTBFS on Fedora 39+
This still builds on previous Fedoras and EPEL 9.
2023-08-30 22:40:37 +02:00
Miro Hrončok
9c358ccecb CI: Update ipykernel to a version that no longer uses the imp module
This still works on Fedora 37 and 38. The c9s package skips this test.
2023-08-30 22:23:25 +02:00
Miro Hrončok
3607591aa8 CI: Apply a FTBFS fix from Fedora 39 to the virtualenv spec 2023-08-30 22:00:18 +02:00
Miro Hrončok
3a8bea86f8 CI: Make pytest build on Fedora 37 to 39 as well as EPEL 9 2023-08-30 21:48:33 +02:00
Miro Hrončok
bd1022e422 CI: Run mock in verbose mode to see the logs 2023-08-21 22:41:19 +02:00