You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add rules on moving content to collections outside of Ansible (#1971)
* Add rules on moving content to collections outside of Ansible.
* Apply suggestions from code review.
Co-authored-by: Maxwell G <[email protected]>
* One more from gotmax23.
* Reference section on CLAs.
---------
Co-authored-by: Maxwell G <[email protected]>
Copy file name to clipboardExpand all lines: docs/docsite/rst/community/collection_contributors/collection_requirements.rst
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -358,12 +358,14 @@ There are several types of content in collections which licensing has to address
358
358
* Code outside ``plugins/``: if it imports any other code that is licensed under ``GPL-3.0-or-later``. Note that this applies in particular to unit tests that often import code from ansible-core, ``plugins/``, ``module_utils/``, or ``modules/``, and such code is often licensed under ``GPL-3.0-or-later``.
359
359
360
360
361
+
.. _coll_cla:
362
+
361
363
Contributor License Agreements
362
364
==============================
363
365
364
366
Collections MUST NOT require community contributors to sign any type of
365
367
contributor license agreement (CLA) other than the
366
-
`Developer Certificate of Origin <https://developercertificate.org/>`_
368
+
`Developer Certificate of Origin (DCO) <https://developercertificate.org/>`_
367
369
or similar agreements that only require confirming the provenance of contributions.
368
370
This requirement seeks to preserve the community's ownership over its contributions,
369
371
prevent unwelcome licensing changes that can occur when one entity
@@ -472,6 +474,17 @@ When moving modules between collections
472
474
473
475
See :ref:`Migrating content to a different collection <migrate_to_collection>` for complete details.
474
476
477
+
Generally, we do not object to moving content between collections or moving content from collections included in Ansible to collections outside the Ansible package, as long as semantic versioning is not violated. More precisely, replacing content with redirects is only a minor change if the destination collection is the dependency of the original collection. (See :ref:`coll_dependencies` for more information about adding new dependencies to collections included in Ansible.)
478
+
479
+
For the community "catch all" collections, we have slightly different rules. We allow to move content out of community.general and community.network to other collections outside of Ansible under the following conditions:
480
+
481
+
1. The new collection is appropriately licensed and follows the :ref:`Contributor License Agreements <coll_cla>` policy.
482
+
2. None of the contributors who contributed to the content in the last 6 months object in a four-week period after the plan to deprecate the module has been announced.
483
+
3. There is a deprecation period of at least 6 months during which deprecation warnings are shown. The deprecation notice must mention that the content is moved to a collection outside the Ansible community package and that users need to install that collection separately.
484
+
4. If community members or contributors bring up good reasons in these 6 months to cancel the migration, the Steering Committee will discuss these and vote on them before the content is removed.
485
+
486
+
Redirects are only added if full backwards compatibility can be ensured. If they are not used, tombstoning has to be used, and the tombstone message needs to explicitly mention the new collection and that the content in the new collection is not fully backwards compatible.
0 commit comments