Hello,

the new versions of pyproject-rpm-macros (0-49) and python-rpm-macros
(3.10-12) landed in Rawhide. Updates are available for older Fedoras:

 F35: https://bodhi.fedoraproject.org/updates/FEDORA-2021-fd8d8c5f66
 F34: https://bodhi.fedoraproject.org/updates/FEDORA-2021-22b68be2d5
 F33: https://bodhi.fedoraproject.org/updates/FEDORA-2021-d085ce09ef

They bring some enhancements I'd like to briefly describe here:

pyproject-rpm-macros

A new macro, %pyproject_check_import, has been introduced.
You'll benefit from it if you use %pyproject_save_files in your specfile.
It can play a role of a smoke test in cases when the upstream tests
suite doesn't exist or can't be used.

When %pyproject_save_files is invoked, it creates a list of all valid
and public (i.e. not starting with `_`) importable module names found in
the package.
This list is then used by %pyproject_check_import to perform an import
check for each listed module.
When a module fails to import, the build fails.

Call %pyproject_check_import in %check to perform a test on all found
modules:

    %check
    %pyproject_check_import

%pyproject_check_import can be modified with -t flag, which performs a
check only on top-level module names (i.e. not containing dot):

    %check
    %pyproject_check_import -t

%pyproject_check_import can be modified with -e flag, which excludes the
module names matching given glob(s) from the import check:

    %check
    %pyproject_check_import -e '*.test*' -e '*.config'

A more detailed explanation of the macro can be found in the project's
README. [0].

The %pyproject_check_import macro calls %py3_check_import underneath,
which has received a few improvements as well. To use the
%pyproject_check_import macro, make sure to have the most recent
python3-rpm-macros installed (for various reasons, a versioned
dependency is *not* used) -- not only in the buildroot but also on the
host (if installed at all).


python-rpm-macros

The API of %py3_check_import was extended to support the
%pyproject_check_import use case. 3 new flags were added:
    -t (top-level)
    -e (exclude glob(s))
    -f (a path to a file with qualified module names, separated with
newlines)

The -e and -f options can be used repeatedly. We expect this new API to
be used mostly via %pyproject_check_import, but it is not the only option.

When using %py3_check_import, you don't need to invoke
%pyproject_save_files.


Happy packaging,
Karolina Surma


[0]
https://src.fedoraproject.org/rpms/pyproject-rpm-macros/blob/rawhide/f/README.md
_______________________________________________
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to