Keeping old Ansible PPA repo versions

With the regressions in 1.9.0 related to the s3 module[0], I think the Ansible package repos really need to keep more than the HEAD stable version in its versions list. When 1.9.0 was released yesterday, all of my company’s playbooks broke since we make extensive use of S3 - so right now we can’t do any deployments. I thought this would be an easy fix by version locking back to 1.8.4, but when I listed the versions in the apt repo, only 1.9.0.1 is available.

While I plan to stay updated, I don’t want Ansible to dictate when I have to increment to a new minor (or major) version for exactly these kind of reasons.

[0] https://github.com/ansible/ansible-modules-core/issues/964

The issue with 1.9.0 and 1.9.0.1 was caused by not being able to
upload a file with the same version to pypy, initially an incomplete
tarball was uploaded, once we realized the error and deleted it we
were forced to change the version number to be able to release as pypy
does not allow overwriting the distribution tarball or version reuse.
Since our build systems are tied for all distributions this affected
our .deb and .rpms also.

So, in a normal usecase, 1.8.4 would’ve remained available? My concern isn’t 1.9.0 vs 1.9.0.1, but that the last minor version is kept available.

No, the 1.8.4 issue was not expected, we are looking into it, it seems
that previous versions were just removed, 1.8.4 SHOULD remain
available.

<nod> We aren't purposefully removing the old packages from the PPA.
It looks like the PPA is automatically marking the older packages as
"superseded" and preparing to delete them when we upload a newer
version:

https://launchpad.net/~ansible/+archive/ubuntu/ansible/+packages?field.name_filter=&field.status_filter=&field.series_filter=

Do you (or anyone) happen to know if this is a configurable setting in
Ubuntu PPA's? I think we'd be happy to change it but so far we
haven't found if it's a configurable setting and if so where.

-Toshio

Ansible 1.8.4 is still available, we’ve just always had our pip settings configured to “hide” older releases. You can still install the older version by specifying it to pip:

pip install ansible==1.8.4

Okay, great. Thanks for the clarification, Brian.

We still haven't been able to find a PPA setting to disable the auto
delete (or to restore the previous version? There must be a toplevel
menu for configuring PPAs that we just aren't seeing...). As a
temporary solution you can grab the old .deb from here:
https://launchpad.net/~ansible/+archive/ubuntu/ansible/+build/6993788/+files/ansible_1.8.4-1ppa~precise_all.deb

and then install it from the .deb during your provisioning.

-Toshio

After unsuccessfully looking around for instructions on the internet I
took a look at what other PPAs were doing. I'm not a Ubuntu/Debian
user but I wasn't able to find any PPAs that have multiple versions
(there are packages for multiple ubuntu releases but not multiple
versions of the package for a single release).

If you're able to find out how to do it we'll be happy to change our
PPA to keep multiple builds but it seems like this might not be a
feature that Ubuntu's PPA service supports. :frowning:

-Toshio

apt repos allow this but as far as I can tell it does not work for
PPAs, we can have diff package per arch or target distro .. but not
sure if that will even be possible as a work around for this.

FYI

A very nice project to organize and host apt repositories is aptly (http://www.aptly.info/).

It allows amongst other options to use Amazon S3, and has multiple options to organise multiple repositories, or repositories with and without multiple versions of packages etc.

Might be more flexible than launchpad.

Serge

Hi there,

is there any update on this?

One of our build pipelines is now stopped due to a bug in Ansible 2.1 that prevents artifacts to be downloaded from S3.

I was surprised when I realised that Ansible 2.0.2.0 was not available anymore in the Ansible PPA.

Thanks
Angel