ansible-lint
ansible-lint copied to clipboard
add distro packaging pipeline
Summary
In order to ensure that ansible-lint can easily be distributed by major distributions in a timely manner and avoid having heavily outdated distro packages, we should ensure that we have a pipeline that is building rpm/deb/arch packages.
Keep in mind that while we do want to create this, we cannot guarantee to keep these pipelines green. We will need community support and in particular distro-packagers contacts that can help interacting with those distributions.
Ideally our pipelines should perform the following
- [ ] build distro package
- [ ] publish distro package inside a repository that user can enable and consume (like ppa)
- [ ] ensure builded package has the same version as the version reported from git clone,
python setup.py --version
- [ ] ensure
pip3 check
does not report any conflicts after the package is installed - [ ] ensure ansible-lint command can run and lint a file
Note that there is no need to implement support for all distributions at the same time, if you have a particular love for one just comment and start working towards it, mentioning Partial-Fix: #1646
.
Desired Behaviour
As we already have the tox -e packaging
that is testing building of a sdist and wheel, we should extend it to also build system packages out of it.
IMHO, we could easily add extra commands inside packaging that builds these rpms inside using containers, so anyone can make use of them even if they are running from a different platforms than the targeted one.
Actual Behaviour
No testing is done about ability to build distro-packages from source. It is easy for use to introduce new dependencies that are not available on these platforms, sometimes even on their bleeding edge repositories.
FTR, for RPMs, I was looking at https://packit.dev/docs/packit-service/ while packaging pylibssh. I've paused exploring this particular integration because they don't currently support dynamic deps discovery (rpmbuild -br
, on Fedora) but Tomáš offered to pre-install some of the deps into their env. I haven't got to responding to that but it may be a viable solution. I was going to see if I could generate an SRPM on GHA and pass that artifact to packit but haven't had time to check this (I know cockpit does something like that).