-
Notifications
You must be signed in to change notification settings - Fork 9
Versioning of ansible-core dependency for the ansible package #84
Comments
Although I agree with the sentiment, and I feel like it'd be fine not to pin on patch versions, in your last example, would you have wanted to build that even though the resulting 5.5.0 package would not strictly have been the same as what 5.5.0 is intended to be (differing core versions)? It seems like it would be confusing if Fedora's Ansible 5.5.0 package exhibited bugs that were fixed in 2.12.3, and listed as fixed in 5.5.0's changelog. I have very little context on the packaging stuff, and maybe I'm wrong about the changelog, but still seems iffy to me to have a package advertised as 5.5.0 that will differ in functionality from pip 5.5.0. I really am asking out of curiosity though, I don't feel I have enough knowledge to say for sure. |
Also ansible-core contains ansible.builtin, so using an older ansible-core version means you have bugs in modules and plugins from ansible.builtin that should be fixed according to the Ansible changelog. (There are no new features in ansible-core, so at least there won't be options that the docsite documents that aren't there.) |
See also ansible-community/antsibull-build#94 and https://meetbot.fedoraproject.org/ansible-community/2020-07-01/community_working_group_meeting.2020-07-01-18.04.html, when we originally decided on the current way. |
The collections that are part of Ansible are usually tested against a current version of ansible-core. So IMHO it makes sense to have a a dependency on a current version of ansible-core, too. Your suggestion would mean that it's possible to run Ansible 5.5.0 with ansible-core 2.12.0 and most (if not all) included collections have never been tested against this. Looks like an accident waiting to happen, if you ask me. |
@mariolenz that was actually one of the arguments from the discussion almost two years ago ;-) I'll repaste them here (pro = keep current scheme, con = change):
The point on collections also includes the docsite. It currently documents the latest Ansible release with the latest ansible-core release available when the Ansible release happened. If we drop the patch level dependency, this is gets more inaccurate, especially when later in the release cycle. |
I remain in favor of relaxing the patch-release dep requirement and just use the major version. |
I'd be okay with building distro-specific packages on the latest available ansible-core 2.x release in that distro. I'm not so sure about setting up all our workflows around 2.x.0, though. Would that have security implications? What happens when a security vulnerability is patched in Ansible 2.13.4? |
@felixfontein What about using the ansible-core requirements of the collections for the ansible package defined in In the current example (we couldn't build ansible 5.5.0 because ansible-core 2.12.3 had not yet been built although ansible-core 2.12.2 was there):
So, all in all, I'd stick to depending on the latest ansible-core version when releasing the ansible package. |
I don't think that would be a good idea, since the ansible-core version used has an impact on which features are available. So if someone uses ansible-core 2.11 with the collections from Ansible 5, some features will not be available. The most obvious is the ansible.builtin 'collection', but there are also lots of things indirectly provided by ansible-core through doc fragments and module_utils. (For example, see |
The porting guide on docs.ansible.com pulls in the core porting guide as well. So Ansible 5.5.0 would have the porting guide entries from 2.12.13, whereas the user of the distribution package might have 2.12.12. So again, that idea of a security patch would potentially say 'fixed' for 5.5.0, but wouldn't really be fixed for the distribution versoin of 5.5.0. |
Well, if I run |
let's close the topic as there's no activity, thanks everyone! (feel free to speak up or just re-open it if needed) |
Summary
The
ansible
package has a dependency on theansible-core
package.Currently, whenever a new release of
ansible
is made, it's dependency onansible-core
is bumped to the latest release.For example:
ansible-core>=2.12.0
ansible-core>=2.12.1
ansible-core>=2.12.2
ansible-core>=2.12.3
Is this necessary ?
In other words:
ansible-core>=2.12.0
?ansible-core>=2.13.0
?This would slightly simplify how we build the package while making it easier to package downstream.
For example, in Fedora, we bumped into an issue where we couldn't yet build ansible 5.5.0 because ansible-core 2.12.3 had not yet been built and released to stable repositories but 2.12.2 was there and available.
The text was updated successfully, but these errors were encountered: