ansible-lint icon indicating copy to clipboard operation
ansible-lint copied to clipboard

add distro packaging pipeline

Open ssbarnea opened this issue 2 years ago • 1 comments

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.

ssbarnea avatar Jul 07 '21 08:07 ssbarnea

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).

webknjaz avatar Jul 07 '21 08:07 webknjaz