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

Add clarification about objects inside collection Galaxy artifacts #157

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions collection_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ Every comment should say whether the reviewer expects it to be addressed, or whe
- [ ] collection dependencies must have a lower bound on the version which is at least 1.0.0, and are all part of the `ansible` package
- [ ] `meta/runtime.yml` defines the minimal version of Ansible which the collection works with
- [ ] has changelog, preferably with `changelogs/changelog.yaml`
- [ ] collection Galaxy artifact (tarball) should not contain any large objects (binaries) comparatively to the current tarball size limit of 20 MB
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Suggested change
- [ ] collection Galaxy artifact (tarball) should not contain any large objects (binaries) comparatively to the current tarball size limit of 20 MB
- [ ] collection Galaxy artifact (tarball) should not contain any large objects (binaries) comparatively to the current tarball size limit of 20 MB

i would also mention other unrelated things like David mentioned (iirc pyenv files, etc.)

Copy link
Contributor

Choose a reason for hiding this comment

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

This is complicated due to legal requirements. The tarballs on Galaxy act right now as the source distribution (and in fact only distribution), so it's not clear to me whether it would be allowed to leave anything out that's used to develop and package the collection.

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 think I'll create a new PR instead anyway as it would be harder to rebase this stuff. I'd like mentioning that we should check for such things anyway and point out to them. If a collection repo is full of such things, it's not good

- [ ] any objects in a collection Galaxy artifact including the mentioned above must follow [licensing rules](https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst#licensing)

**Tests:**
- [ ] passed `ansible-test sanity`
Expand Down
23 changes: 16 additions & 7 deletions collection_requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ Collection Infrastructure
=========================

* MUST have a publicly available issue tracker, that does not require a paid level of service to create an account or view issues.
* Collections MUST have a Code of Conduct (CoC)
* Collections MUST have a Code of Conduct (CoC).

* The collection's CoC MUST be compatible with the Ansible CoC
* Collections SHOULD consider using the Ansible CoC if they do not have a CoC that they consider better
* The Diversity and Inclusion working group may evaluate all CoCs and object to a collection's inclusion based on the CoCs contents
* The collection's CoC MUST be compatible with the Ansible CoC.
* Collections SHOULD consider using the Ansible CoC if they do not have a CoC that they consider better.
* The Diversity and Inclusion working group may evaluate all CoCs and object to a collection's inclusion based on the CoCs contents.
* The CoC must be linked from the README.md file, or must be present or linked from a CODE_OF_CONDUCT.md file in the collection root.

* MUST be published to `Ansible Galaxy <https://galaxy.ansible.com>`_.
Expand Down Expand Up @@ -78,10 +78,10 @@ meta/runtime.yml
----------------
Example: `meta/runtime.yml <https://github.com/ansible-collections/collection_template/blob/main/meta/runtime.yml>`_

* MUST define the minimum version of Ansible which this collection works with
* MUST define the minimum version of Ansible which this collection works with.

* If the collection works with Ansible 2.9, then this should be set to `>=2.9.10`
* It's usually better to avoid adding `<2.11` as a restriction, since this for example makes it impossible to use the collection with the current ansible-base devel branch (which has version 2.11.0.dev0)
* If the collection works with Ansible 2.9, then this should be set to `>=2.9.10`.
* It's usually better to avoid adding `<2.11` as a restriction, since this for example makes it impossible to use the collection with the current ansible-base devel branch (which has version 2.11.0.dev0).

Modules & Plugins
------------------
Expand All @@ -96,6 +96,14 @@ Modules & Plugins
The core team (which maintains ansible-core) has committed not to use these directories for
anything which would conflict with the uses we've specified.

Collection artifacts
--------------------

Collection Galaxy artifacts (tarballs):

* SHOULD NOT contain any large objects (binaries) comparatively to the tarball size limit of 20 MB. If you need to include such files in your collection repository, make sure to exclude them from the collection build and, if a purpose of presence is testing, make sure that your tests also work without the files (for example, by loading them from a remote repository).
* MUST only contain objects that follow the :ref:`licensing rules <Licensing>`.


Documentation
~~~~~~~~~~~~~~
Expand Down Expand Up @@ -167,6 +175,7 @@ We should avoid FQCN / repository names:
* which are unnecessary long: try to make it compact but clear
* contain the same words / collocations in ``NAMESPACE`` and ``COLLECTION`` parts, for example ``my_system.my_system``

.. _Licensing:

Licensing
=========
Expand Down