Re: Macro to smoke-test-import a Python module in %check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Miro,

Miro Hrončok <mhroncok@xxxxxxxxxx> writes:

> Hello Python RPM packagers,
>
> based on some discussion in the "F35 Change: Python Packaging Guidelines 
> overhaul (System-Wide Change proposal)" thread [0], I've drafted a macro that 
> can help to test-import a Python module in %check when no other tests exist or 
> are when they cannot be executed during build [1].
>
> The semantics is quite simple:
>
>
>      %check
>      %py3_check_import mymodule mymodule.submodule
>
> When all listed modules are successfully imported, "nothing happens", when at 
> lest one fails to import, the entire build fails. The above line is translated 
> very-roughly to `python3 -c 'import mymodule, mymodule.submodule'` (see the 
> implementation [0] for more accurate representation). Given the Python 
> semantics, it is possible to use commas as module separators as well (but no 
> parentheses).
>
> The %buildroot's %pythn3_site{lib,arch} is added to PYTHONPATH.
>
> The runtime dependencies are obviously needed for this to work, so they need to 
> be manually BuildRequired or even better, generated in %generate_buildrequires 
> via `%pyproject_buildrequires -r` to use this macro.
>
> The macro can be used repeatedly when importing multiple modules at once is 
> undesired (e.g. when only one module can be imported from the same Python 
> interpreter):
>
>      %check
>      %py3_check_import mymodule.either
>      %py3_check_import mymodule.or
>
> Before I merge this and backport to all Fedoras and EPELs, I'd like to know:
>
>   - Do you have better ideas for the macro name?
>   - Do you have better ideas for the macro semantics?

This looks pretty good imho. Would it somehow be possible for the macro
to automatically try to import the module name from the generated
python3.Ydist() provides? That would make the macro even more convenient
to use and reduce any potential user error further.


Cheers,

Dan
_______________________________________________
packaging mailing list -- packaging@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to packaging-leave@xxxxxxxxxxxxxxxxxxxxxxx
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/packaging@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux