Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Python requirements for Ansible inclusion requirements document #281

Merged
merged 2 commits into from
Aug 31, 2023

Conversation

felixfontein
Copy link
Collaborator

@felixfontein felixfontein commented Aug 10, 2023

@github-actions github-actions bot added sc_approval This PR requires approval from the Ansible Community Steering Committee needs_triage Needs a first human triage before being processed. labels Aug 10, 2023
@felixfontein
Copy link
Collaborator Author

This doesn't yet have an example, but there's already one a bit further down in the document.

Copy link
Collaborator

@gotmax23 gotmax23 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me other than my one language suggestion, but I may have other feedback after I think about it more. Thanks for working on it!

@oraNod oraNod removed the needs_triage Needs a first human triage before being processed. label Aug 14, 2023
Co-authored-by: Maxwell G <[email protected]>
@@ -85,34 +85,36 @@ Python requirements for a collection vary between **controller environment** and

One example scenario where the "even if" clause comes into play is when using cloud modules. These modules mostly run on the controller node but in some environments, the controller might run on one machine inside a demilitarized zone which cannot directly access the cloud machines. The user has to have the cloud modules run on a bastion host/jump server which has access to the cloud machines.

An **eligible controller Python version** for a collection is a Python version that is supported on the controller side by at least one ansible-core version that the collection supports. Similarly, an **eligible target Python version** for a collection is a Python version that is supported on the target side by at least one ansible-core version that the collection supports. The eligible controller and target Python versions can be determined from the :ref:`ansible_core_support_matrix` and from the ``requires_ansible`` value in ``meta/runtime.yml`` in the collection.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
An **eligible controller Python version** for a collection is a Python version that is supported on the controller side by at least one ansible-core version that the collection supports. Similarly, an **eligible target Python version** for a collection is a Python version that is supported on the target side by at least one ansible-core version that the collection supports. The eligible controller and target Python versions can be determined from the :ref:`ansible_core_support_matrix` and from the ``requires_ansible`` value in ``meta/runtime.yml`` in the collection.
An **eligible controller Python version** for a collection is a Python version that is supported on the controller side by at least one ansible-core version that the collection supports. Similarly, an **eligible target Python version** for a collection is a Python version that is supported on the target side by at least one ansible-core version that the collection supports. The eligible controller and target Python versions can be determined from the :ref:`ansible_core_support_matrix` and from the ``requires_ansible`` value in ``meta/runtime.yml`` in the collection.
  • can we replace the word eligible with a synonym if possible? allowed or acceptable maybe? can be easier to understand for not native speakers
  • can we add an example? something like For example, if your collection supports ansible-core version A (supports Python ...) and ansible-core version B (supports Python ...), the acceptable controller Python version is ...?. Same for target versions.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, 'acceptable' could be ok, or maybe 'admissible'. I'd like to hear some more comments on this, also from native english speakers :)

About adding an example: there is already one starting directly after the diff that GitHub shows ends, in the part on documentation requirements. Is that one enough, or should we have another one here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd agree with the word acceptable than allowed

I will also like to suggest that this part of the sentence "An eligible controller Python version for a collection is a Python version that is supported on the controller side by at least one ansible-core version that the collection supports."

could be rewritten as "An acceptable controller Python version for collection is a Python version that is supported on the controller side by at least one ansible-core version that the collection supports."

Similarly, for target versions, take off the a before collection

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure that removing the a before collection is fine? That sounds really wrong to me.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

about the examples, if there are any, it's OK

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acceptable and/or desirable sounds like good options here.

I agree, removing a before collection does not sound right.

"An acceptable controller Python version for a collection is the Python version(s) that is supported on the controller side by at least one ansible-core version that the collection supports."

the Python version(s) does this change sound more accurate?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll throw another one into the mix and say suitable because it has less negative/weird connotation than acceptable and desirable. Also eligible doesn't quite fit imo. Something can be eligible without really being suitable.

.. _coll_controller_req:

Controller environment
~~~~~~~~~~~~~~~~~~~~~~

In the controller environment, collections MUST support Python 2 (version 2.7) and Python 3 (Version 3.6 and higher), unless required libraries do not support these versions. Collections SHOULD also support Python v3.5 if all required libraries support this version.
Collections MUST support all eligible controller Python versions in the controller environment, unless required libraries do not support these Python versions. The :ref:`Steering Committee <steering_responsibilities>` can grant other exceptions on a case-by-case basis.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Collections MUST support all eligible controller Python versions in the controller environment, unless required libraries do not support these Python versions. The :ref:`Steering Committee <steering_responsibilities>` can grant other exceptions on a case-by-case basis.
Collections MUST support all eligible controller Python versions in the controller environment, unless required libraries do not support these Python versions. The :ref:`Steering Committee <steering_responsibilities>` can grant other exceptions on a case-by-case basis.

i would replace eligible also here (see the comment above) and everywhere with a synonym.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this all be simplified to:
Collections MUST support all Python versions listed in refansible_core_support_matrix for all ansible-core versions that the collection supports. The exception is if required libraries for the collection do not support these Python versions. Steering committee blablabla...

Then we avoid having to define 'eligible' python versions entirely have less for the reader to ...read and understand.
`

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's too late to make larger changes to this, since we already started voting on it - see ansible-community/community-topics#268. Right now we should stick so simple wording changes or small formulation changes that don't change meanings.

Also if we simplify it, it should be

Collections MUST support all Python versions listed in :ref:ansible_core_support_matrix in the Controller Python column for all ansible-core versions that the collection supports.

Also this needs to be repeated six times in the text (sometimes with Controller Python, sometimes with Target Python). I'm not sure that really improves readability.

Copy link
Contributor

@Andersson007 Andersson007 Aug 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's merge it as voted and then think about simplifications. I think the requirements (especially Python-related) look hard to read and understand overall (at least to me). But let's do it in a dedicated separate PR

Copy link

@cidrblock cidrblock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the core matrix refers to versions as "supported", maybe that is the language to use?

@felixfontein felixfontein marked this pull request as ready for review August 31, 2023 18:51
@felixfontein felixfontein requested a review from a team as a code owner August 31, 2023 18:51
@felixfontein
Copy link
Collaborator Author

This PR was approved by the vote in ansible-community/community-topics#268, which accepted it (ansible-community/community-topics#251 (comment)).

@felixfontein felixfontein merged commit 08263fc into ansible:devel Aug 31, 2023
3 checks passed
@felixfontein felixfontein added backport-2.15 Automatically create a backport for the stable-2.15 branch backport-2.14 Automatically create a backport for the stable-2.14 branch labels Aug 31, 2023
@patchback
Copy link

patchback bot commented Aug 31, 2023

Backport to stable-2.14: 💚 backport PR created

✅ Backport PR branch: patchback/backports/stable-2.14/08263fc9b7e23fc524f5ea560a843e61001f8387/pr-281

Backported as #348

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

@patchback
Copy link

patchback bot commented Aug 31, 2023

Backport to stable-2.15: 💚 backport PR created

✅ Backport PR branch: patchback/backports/stable-2.15/08263fc9b7e23fc524f5ea560a843e61001f8387/pr-281

Backported as #349

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

@felixfontein felixfontein deleted the python-2 branch August 31, 2023 18:52
@felixfontein
Copy link
Collaborator Author

Thanks everyone! I guess we can use ansible-community/community-topics#251 to discuss improved wording, or if someone wants they can also create a PR for that and we can discuss in there.

patchback bot pushed a commit that referenced this pull request Aug 31, 2023
#281)

* Update Python requirements for Ansible inclusion requirements document.

* Avoid passive voice.

Co-authored-by: Maxwell G <[email protected]>

---------

Co-authored-by: Maxwell G <[email protected]>
(cherry picked from commit 08263fc)
patchback bot pushed a commit that referenced this pull request Aug 31, 2023
#281)

* Update Python requirements for Ansible inclusion requirements document.

* Avoid passive voice.

Co-authored-by: Maxwell G <[email protected]>

---------

Co-authored-by: Maxwell G <[email protected]>
(cherry picked from commit 08263fc)
oraNod pushed a commit that referenced this pull request Sep 5, 2023
#281) (#348)

Co-authored-by: Maxwell G <[email protected]>
(cherry picked from commit 08263fc)

Co-authored-by: Felix Fontein <[email protected]>
oraNod pushed a commit that referenced this pull request Sep 5, 2023
#281) (#349)

Co-authored-by: Maxwell G <[email protected]>
(cherry picked from commit 08263fc)

Co-authored-by: Felix Fontein <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-2.14 Automatically create a backport for the stable-2.14 branch backport-2.15 Automatically create a backport for the stable-2.15 branch sc_approval This PR requires approval from the Ansible Community Steering Committee
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants