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

[Vote ends on 2022-03-23] Collections included in Ansible must not use files outside of meta/, plugins/, roles/ and playbooks/ #77

Closed
felixfontein opened this issue Mar 9, 2022 · 19 comments

Comments

@felixfontein
Copy link
Contributor

felixfontein commented Mar 9, 2022

Summary

(See #70 for the discussion)

Amend the collection requirements (https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst) as follows:

Collections MUST not use files outside meta/, plugins/, roles/ and playbooks/ in public plugins, roles and playbooks they contain.

("public" means that internal plugins, roles and playbooks, for example which are part of tests, only used to release the collection, etc. are not affected. Everything that can be used from other collections or user playbooks and roles, as well as playbooks that can be called by FQCN, is public.)

@felixfontein felixfontein added the active-vote These are currently active votes label Mar 9, 2022
@felixfontein
Copy link
Contributor Author

@ssbarnea if you want to vote on this, you have to write a comment. Reactions are ignored :)

@ssbarnea
Copy link
Member

ssbarnea commented Mar 9, 2022

Ok, +1

@Andersson007
Copy link
Contributor

+1

3 similar comments
@rndmh3ro
Copy link

+1

@schurzi
Copy link

schurzi commented Mar 11, 2022

+1

@felixfontein
Copy link
Contributor Author

+1

@markuman
Copy link
Contributor

+1

@briantist
Copy link

+0

I don't know why I have an uneasy feeling about this one. I can't think of a good reason why any such content would use files outside of those paths. and I don't think anything bad is going to happen by enacting this rule... but can't bring myself to a +1 for some reason 👻 it is a mystery

@felixfontein
Copy link
Contributor Author

@briantist this rule is somewhat a liability shift for #76. Basically it says what happens in the situation "if a collection doesn't work when installed from the Ansible package". With this new rule, it's the collection's fault and they have to fix it. Without this rule, it's our problem (a packaging problem) and we have to figure out which files it needs and have to modify our packaging process so that these files are kept for that specific collection.

@russoz
Copy link
Contributor

russoz commented Mar 23, 2022

+1

1 similar comment
@konstruktoid
Copy link

+1

@gundalow
Copy link
Contributor

+1
Do we need to review and tidy up existing collections
Where should we detect and error/warn if this happens?

@felixfontein
Copy link
Contributor Author

I'm not aware of any collection that violates this. I'm also not sure how we can actually detect this (except by manual review, or by looking for user error reports when removing files breaks something.

@dmsimard
Copy link

+1

1 similar comment
@jillr
Copy link

jillr commented Mar 23, 2022

+1

@acozine
Copy link
Contributor

acozine commented Mar 23, 2022

+1 let's make this a rule and do our best to avoid lame-duck grandfathered corner cases we have to get rid of later. We can add "check these directories" to the new-collection checklist until/unless we figure out a way to automate checking.

@felixfontein felixfontein removed the active-vote These are currently active votes label Mar 23, 2022
@felixfontein
Copy link
Contributor Author

Votes:

  • +1 from 7 SC members (acozine Andersson007 felixfontein gundalow jillr markuman ssbarnea) and 5 community members (dmsimard konstruktoid rndmh3ro russoz schurzi)
  • +0 from 1 SC member (briantist)
  • no other votes

@acozine
Copy link
Contributor

acozine commented Mar 23, 2022

Confirmed:
7 Steering Committee members voted +1
1 Steering Committee member voted +/-0
5 Community members voted +1

@felixfontein felixfontein added the being_implemented This is currently being implemented label Mar 23, 2022
felixfontein added a commit to ansible-collections/overview that referenced this issue Mar 23, 2022
…ks/ (#199)

* Add new rule on files outside of meta/, plugins/, roles/, and playbooks/.

See ansible-community/community-topics#77.

* Update collection_requirements.rst

Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>

* Update collection_requirements.rst

Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>

Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
@felixfontein felixfontein removed the being_implemented This is currently being implemented label Mar 23, 2022
@felixfontein
Copy link
Contributor Author

ansible-collections/overview#199 has been merged. Thanks everyone!

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

No branches or pull requests