Skip to content
This repository has been archived by the owner on May 28, 2024. It is now read-only.

Dependency rules #205

Merged
merged 9 commits into from
Aug 3, 2022
Merged

Dependency rules #205

merged 9 commits into from
Aug 3, 2022

Conversation

felixfontein
Copy link
Contributor

SUMMARY

This is what I described in ansible-community/community-topics#94

Let's polish this a bit, and if everyone seems happy let's vote on the result.

ISSUE TYPE
  • Docs Pull Request
  • Feature Pull Request
COMPONENT NAME

inclusion criteria

Copy link
Contributor

@Andersson007 Andersson007 left a comment

Choose a reason for hiding this comment

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

@felixfontein generally LGTM, a couple of minor things from me, thanks for doing this!

collection_requirements.rst Outdated Show resolved Hide resolved
collection_requirements.rst Outdated Show resolved Hide resolved
collection_requirements.rst Outdated Show resolved Hide resolved
collection_requirements.rst Outdated Show resolved Hide resolved
collection_requirements.rst Outdated Show resolved Hide resolved
@felixfontein
Copy link
Contributor Author

Hmm, looks like I lost commit access to this repository, so I cannot even update my own branch anymore :-( CC @gundalow @Andersson007

#. ``community.foonetwork`` depends on ``ansible.netcommon >= 2.0.0, <3.0.0``.

* ``ansible.netcommon 4.0.0`` is released during this major Ansible release cycle.
* ``community.foonetwork`` either releases a new version before feature freeze of the next major Ansible release that allows depending on all ``ansible.netcommon 4.x.y`` releases, or it will be removed from the next major Ansible release.
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be determined automatically, and there should be some sort of a state-file holding this info between releases.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This sounds pretty complicated for something that hopefully never happens, and if it does can be handled with issues and already preparing removal from the upcoming major version (as its ansible.in already exists in a new directory).

* Collection dependencies must have a lower bound on the version which is at least 1.0.0.

* This means that all collection dependencies have to specify lower bounds on the versions, and these lower bounds should be stable releases, and not versions of the form 0.x.y.
* When creating new collections where collection dependencies are also under development, you need to watch out since Galaxy checks whether dependencies exist in the required versions:
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you please expand what you mean by under development? Would that be <= 1.0.0?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes. This is basically about two dependent collections simultaneously reaching the 1.0.0 goal while producing versions that satisfy our rules.

Copy link
Contributor

Choose a reason for hiding this comment

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

Wouldn't it make sense to bar not only the collections under dev but also the ones that depend on collections under dev? I mean, if the purpose of the rule is reliability/stability, I suppose that would go a long way.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We only accept collections that released version 1.0.0 for inclusion anyway. Also note that this part of this PR has been in the rules for years, it only moved to a new place in this document.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm concerned with the use of the word "under development", what if that could be changed to "under developed"

Let's assume this - * When creating new collections where collection dependencies are also under developed,
What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not a native English speaker, but "under developed" seems to mean something completely different to me. ("in development" would be an alternative - https://english.stackexchange.com/questions/238497/which-expression-is-correct-in-development-or-under-development)

Copy link
Contributor

Choose a reason for hiding this comment

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

Oooh, interesting I just learned that now. Thanks

collection_requirements.rst Outdated Show resolved Hide resolved
Co-authored-by: Alexei Znamensky <[email protected]>
collection_requirements.rst Outdated Show resolved Hide resolved
Co-authored-by: Tabah Baridule <[email protected]>
@felixfontein felixfontein changed the title [WIP] Dependency rules Dependency rules Aug 3, 2022
@felixfontein
Copy link
Contributor Author

The new rules have been accepted (ansible-community/community-topics#94 (comment)) by SC vote. Any last comments before merging?

collection_requirements.rst Outdated Show resolved Hide resolved
collection_requirements.rst Outdated Show resolved Hide resolved
@felixfontein felixfontein merged commit 3b92d04 into main Aug 3, 2022
@felixfontein felixfontein deleted the dependency-rules branch August 3, 2022 19:30
@felixfontein
Copy link
Contributor Author

@Andersson007 @russoz @Dule-mart @jamescassell @samccann thanks a lot for reviewing this and suggesting improvements!

@Dule-martins
Copy link
Contributor

Is all a pleasure doing this with everyone

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants