antsibull-nox 0.0.1__tar.gz → 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.github/workflows/nox.yml +45 -4
  2. antsibull_nox-0.1.0/.github/workflows/test-gh-action.yml +33 -0
  3. antsibull_nox-0.1.0/CHANGELOG.md +51 -0
  4. antsibull_nox-0.1.0/CHANGELOG.rst +45 -0
  5. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/PKG-INFO +12 -4
  6. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/README.md +10 -2
  7. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/REUSE.toml +3 -0
  8. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/action.yml +8 -4
  9. antsibull_nox-0.1.0/changelogs/changelog.yaml +56 -0
  10. antsibull_nox-0.1.0/codecov.yml +23 -0
  11. antsibull_nox-0.1.0/docs/changelog.md +41 -0
  12. antsibull_nox-0.1.0/docs/getting-started.md +203 -0
  13. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/docs/index.md +6 -6
  14. antsibull_nox-0.1.0/docs/nox-in-ci.md +63 -0
  15. antsibull_nox-0.1.0/docs/reference.md +624 -0
  16. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/mkdocs.yml +5 -2
  17. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/noxfile.py +48 -4
  18. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/pyproject.toml +1 -1
  19. antsibull_nox-0.1.0/src/antsibull_nox/__init__.py +33 -0
  20. antsibull_nox-0.1.0/src/antsibull_nox/collection.py +545 -0
  21. antsibull_nox-0.1.0/src/antsibull_nox/data/action-groups.py +199 -0
  22. antsibull_nox-0.1.0/src/antsibull_nox/data/license-check.py +144 -0
  23. antsibull_nox-0.1.0/src/antsibull_nox/data/license-check.py.license +3 -0
  24. antsibull_nox-0.1.0/src/antsibull_nox/data/no-unwanted-files.py +119 -0
  25. antsibull_nox-0.1.0/src/antsibull_nox/data_util.py +115 -0
  26. antsibull_nox-0.1.0/src/antsibull_nox/paths.py +201 -0
  27. antsibull_nox-0.1.0/src/antsibull_nox/sessions.py +840 -0
  28. antsibull_nox-0.0.1/codecov.yml → antsibull_nox-0.1.0/tests/test-collection/galaxy.yml +2 -5
  29. antsibull_nox-0.1.0/tests/test-collection/noxfile.py +34 -0
  30. antsibull_nox-0.1.0/tests/test-collection/plugins/modules/test.py +39 -0
  31. antsibull_nox-0.1.0/tests/unit/test_collection.py +895 -0
  32. antsibull_nox-0.0.1/CHANGELOG.md +0 -14
  33. antsibull_nox-0.0.1/CHANGELOG.rst +0 -13
  34. antsibull_nox-0.0.1/changelogs/changelog.yaml +0 -9
  35. antsibull_nox-0.0.1/docs/changelog.md +0 -9
  36. antsibull_nox-0.0.1/src/antsibull_nox/__init__.py +0 -17
  37. antsibull_nox-0.0.1/src/antsibull_nox/sessions.py +0 -491
  38. antsibull_nox-0.0.1/tests/test_dummy.py +0 -19
  39. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.flake8 +0 -0
  40. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.github/dependabot.yml +0 -0
  41. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.github/patchback.yml +0 -0
  42. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.gitignore +0 -0
  43. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.pylintrc.automated +0 -0
  44. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/.readthedocs.yml +0 -0
  45. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/CHANGELOG.md.license +0 -0
  46. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/CHANGELOG.rst.license +0 -0
  47. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/LICENSE +0 -0
  48. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/LICENSES/GPL-3.0-or-later.txt +0 -0
  49. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/changelogs/changelog.yaml.license +0 -0
  50. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/changelogs/config.yaml +0 -0
  51. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/changelogs/fragments/.keep +0 -0
  52. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/docs/changelog.md.license +0 -0
  53. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/docs/community.md +0 -0
  54. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/docs-requirements.txt +0 -0
  55. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/src/antsibull_nox/py.typed +0 -0
  56. {antsibull_nox-0.0.1 → antsibull_nox-0.1.0}/tests/.keep +0 -0
@@ -33,6 +33,11 @@ jobs:
33
33
  codecov: true
34
34
  packages: ""
35
35
 
36
+ - session: integration
37
+ python-versions: "3.13"
38
+ codecov: true
39
+ packages: ""
40
+
36
41
  - session: lint
37
42
  python-versions: "3.13"
38
43
  codecov: false
@@ -54,10 +59,23 @@ jobs:
54
59
  if: "matrix.packages != ''"
55
60
  run: |
56
61
  sudo apt-get install -y ${{ matrix.packages }}
57
- - name: Setup nox
58
- uses: wntrblm/nox@2025.02.09
62
+ - name: Work around limitations of GH's toy language for expressions
63
+ env:
64
+ PYTHON_VERSIONS: "${{ matrix.python-versions }}"
65
+ id: python-versions
66
+ run: |
67
+ echo "versions<<EOF" >> ${GITHUB_OUTPUT}
68
+ echo "${PYTHON_VERSIONS}" | sed -e 's/, */\n/g' >> ${GITHUB_OUTPUT}
69
+ echo "EOF" >> ${GITHUB_OUTPUT}
70
+ - name: Setup Python
71
+ uses: actions/setup-python@v5
72
+ id: python
59
73
  with:
60
- python-versions: "${{ matrix.python-versions }}"
74
+ python-version: "${{ steps.python-versions.outputs.versions }}"
75
+ - name: "Install nox"
76
+ run: |
77
+ ${{ steps.python.outputs.python-path }} -m pip install nox
78
+ shell: bash
61
79
  - name: Set up nox environments
62
80
  run: |
63
81
  nox -v -e "${{ matrix.session }}" ${{ matrix.codecov && 'coverage' || '' }} --install-only
@@ -68,8 +86,31 @@ jobs:
68
86
  if: ${{ matrix.codecov }}
69
87
  run: |
70
88
  nox -v -e coverage --reuse-existing-virtualenvs --no-install
71
- - name: Upload coverage
89
+ - name: Upload coverage for final step
90
+ uses: actions/upload-artifact@v4
72
91
  if: ${{ matrix.codecov }}
92
+ with:
93
+ name: code-coverage-${{ matrix.session }}
94
+ path: antsibull-nox/coverage.xml
95
+
96
+ upload-coverage:
97
+ runs-on: ubuntu-latest
98
+ needs: nox
99
+ steps:
100
+ - name: Check out antsibull-nox
101
+ uses: actions/checkout@v4
102
+ with:
103
+ path: antsibull-nox
104
+ persist-credentials: false
105
+ - name: Download coverage from previous step
106
+ uses: actions/download-artifact@v4
107
+ with:
108
+ path: antsibull-nox
109
+ pattern: code-coverage-*
110
+ - name: List all files
111
+ run: find .
112
+ shell: bash
113
+ - name: Upload coverage
73
114
  uses: codecov/codecov-action@v5
74
115
  with:
75
116
  working-directory: antsibull-nox
@@ -0,0 +1,33 @@
1
+ ---
2
+ # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or
3
+ # https://www.gnu.org/licenses/gpl-3.0.txt)
4
+ # SPDX-License-Identifier: GPL-3.0-or-later
5
+ # SPDX-FileCopyrightText: 2023 Maxwell G <maxwell@gtmx.me
6
+
7
+ name: test-gh-action
8
+ 'on':
9
+ push:
10
+ branches: [main]
11
+ pull_request:
12
+ branches: [main]
13
+ # Run once per week (Monday at 03:30 UTC)
14
+ schedule:
15
+ - cron: '30 3 * * 1'
16
+ workflow_dispatch:
17
+
18
+ env:
19
+ FORCE_COLOR: "1"
20
+
21
+ jobs:
22
+ test-gh-action:
23
+ runs-on: ubuntu-latest
24
+ name: "Run nox ${{ matrix.session }} session"
25
+ steps:
26
+ - name: Check out antsibull-nox
27
+ uses: actions/checkout@v4
28
+ with:
29
+ persist-credentials: false
30
+ - name: Run nox action in subdirectory
31
+ uses: ./
32
+ with:
33
+ working-directory: tests/test-collection/
@@ -0,0 +1,51 @@
1
+ # Antsibull Nox Helper Release Notes
2
+
3
+ **Topics**
4
+
5
+ - <a href="#v0-1-0">v0\.1\.0</a>
6
+ - <a href="#release-summary">Release Summary</a>
7
+ - <a href="#minor-changes">Minor Changes</a>
8
+ - <a href="#breaking-changes--porting-guide">Breaking Changes / Porting Guide</a>
9
+ - <a href="#bugfixes">Bugfixes</a>
10
+ - <a href="#v0-0-1">v0\.0\.1</a>
11
+ - <a href="#release-summary-1">Release Summary</a>
12
+
13
+ <a id="v0-1-0"></a>
14
+ ## v0\.1\.0
15
+
16
+ <a id="release-summary"></a>
17
+ ### Release Summary
18
+
19
+ Feature release\.
20
+
21
+ <a id="minor-changes"></a>
22
+ ### Minor Changes
23
+
24
+ * A <code>build\-import\-check</code> session that builds and tries to import the collection with Galaxy Importer can be added with <code>add\_build\_import\_check\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/15](https\://github\.com/ansible\-community/antsibull\-nox/issues/15)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/17](https\://github\.com/ansible\-community/antsibull\-nox/pull/17)\)\.
25
+ * A <code>docs\-check</code> session that runs <code>antsibull\-docs lint\-collection\-docs</code> can be added with <code>add\_docs\_check\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/8](https\://github\.com/ansible\-community/antsibull\-nox/issues/8)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
26
+ * A <code>extra\-checks</code> session that runs extra checks such as <code>no\-unwanted\-files</code> or <code>action\-groups</code> can be added with <code>add\_extra\_checks\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/8](https\://github\.com/ansible\-community/antsibull\-nox/issues/8)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
27
+ * A <code>license\-check</code> session that runs <code>reuse</code> and checks for bad licenses can be added with <code>add\_license\_check\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/8](https\://github\.com/ansible\-community/antsibull\-nox/issues/8)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
28
+ * Allow to decide which sessions should be marked as default and which not \([https\://github\.com/ansible\-community/antsibull\-nox/issues/18](https\://github\.com/ansible\-community/antsibull\-nox/issues/18)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/20](https\://github\.com/ansible\-community/antsibull\-nox/pull/20)\)\.
29
+ * Allow to provide <code>extra\_code\_files</code> to <code>add\_lint\_sessions\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
30
+ * Check whether we\'re running in CI using the generic <code>\$CI</code> enviornment variable instead of <code>\$GITHUB\_ACTIONS</code>\. <code>\$CI</code> is set to <code>true</code> on Github Actions\, Gitlab CI\, and other CI systems \([https\://github\.com/ansible\-community/antsibull\-nox/pull/28](https\://github\.com/ansible\-community/antsibull\-nox/pull/28)\)\.
31
+ * For running pylint and mypy\, copy the collection and dependent collections into a new tree\. This allows the collection repository to be checked out outside an approriate tree structure\, and it also allows the dependent collections to live in another tree structure\, as long as <code>ansible\-galaxy collection list</code> can find them \([https\://github\.com/ansible\-community/antsibull\-nox/pull/1](https\://github\.com/ansible\-community/antsibull\-nox/pull/1)\)\.
32
+ * When a collection checkout is not part of an <code>ansible\_collections</code> tree\, look for collections in adjacent directories of the form <code>\<namespace\>\.\<name\></code> that match the containing collection\'s FQCN \([https\://github\.com/ansible\-community/antsibull\-nox/issues/6](https\://github\.com/ansible\-community/antsibull\-nox/issues/6)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/22](https\://github\.com/ansible\-community/antsibull\-nox/pull/22)\)\.
33
+ * antsibull\-nox now depends on antsibull\-fileutils \>\= 1\.2\.0 \([https\://github\.com/ansible\-community/antsibull\-nox/pull/1](https\://github\.com/ansible\-community/antsibull\-nox/pull/1)\)\.
34
+
35
+ <a id="breaking-changes--porting-guide"></a>
36
+ ### Breaking Changes / Porting Guide
37
+
38
+ * The nox workflow now by default runs all sessions\, unless restricted with the <code>sessions</code> parameter \([https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
39
+
40
+ <a id="bugfixes"></a>
41
+ ### Bugfixes
42
+
43
+ * Make sure that black in CI checks formatting instead of just reformatting \([https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
44
+
45
+ <a id="v0-0-1"></a>
46
+ ## v0\.0\.1
47
+
48
+ <a id="release-summary-1"></a>
49
+ ### Release Summary
50
+
51
+ Initial alpha release\.
@@ -0,0 +1,45 @@
1
+ ==================================
2
+ Antsibull Nox Helper Release Notes
3
+ ==================================
4
+
5
+ .. contents:: Topics
6
+
7
+ v0.1.0
8
+ ======
9
+
10
+ Release Summary
11
+ ---------------
12
+
13
+ Feature release.
14
+
15
+ Minor Changes
16
+ -------------
17
+
18
+ - A ``build-import-check`` session that builds and tries to import the collection with Galaxy Importer can be added with ``add_build_import_check()`` (https://github.com/ansible-community/antsibull-nox/issues/15, https://github.com/ansible-community/antsibull-nox/pull/17).
19
+ - A ``docs-check`` session that runs ``antsibull-docs lint-collection-docs`` can be added with ``add_docs_check()`` (https://github.com/ansible-community/antsibull-nox/issues/8, https://github.com/ansible-community/antsibull-nox/pull/14).
20
+ - A ``extra-checks`` session that runs extra checks such as ``no-unwanted-files`` or ``action-groups`` can be added with ``add_extra_checks()`` (https://github.com/ansible-community/antsibull-nox/issues/8, https://github.com/ansible-community/antsibull-nox/pull/14).
21
+ - A ``license-check`` session that runs ``reuse`` and checks for bad licenses can be added with ``add_license_check()`` (https://github.com/ansible-community/antsibull-nox/issues/8, https://github.com/ansible-community/antsibull-nox/pull/14).
22
+ - Allow to decide which sessions should be marked as default and which not (https://github.com/ansible-community/antsibull-nox/issues/18, https://github.com/ansible-community/antsibull-nox/pull/20).
23
+ - Allow to provide ``extra_code_files`` to ``add_lint_sessions()`` (https://github.com/ansible-community/antsibull-nox/pull/14).
24
+ - Check whether we're running in CI using the generic ``$CI`` enviornment variable instead of ``$GITHUB_ACTIONS``. ``$CI`` is set to ``true`` on Github Actions, Gitlab CI, and other CI systems (https://github.com/ansible-community/antsibull-nox/pull/28).
25
+ - For running pylint and mypy, copy the collection and dependent collections into a new tree. This allows the collection repository to be checked out outside an approriate tree structure, and it also allows the dependent collections to live in another tree structure, as long as ``ansible-galaxy collection list`` can find them (https://github.com/ansible-community/antsibull-nox/pull/1).
26
+ - When a collection checkout is not part of an ``ansible_collections`` tree, look for collections in adjacent directories of the form ``<namespace>.<name>`` that match the containing collection's FQCN (https://github.com/ansible-community/antsibull-nox/issues/6, https://github.com/ansible-community/antsibull-nox/pull/22).
27
+ - antsibull-nox now depends on antsibull-fileutils >= 1.2.0 (https://github.com/ansible-community/antsibull-nox/pull/1).
28
+
29
+ Breaking Changes / Porting Guide
30
+ --------------------------------
31
+
32
+ - The nox workflow now by default runs all sessions, unless restricted with the ``sessions`` parameter (https://github.com/ansible-community/antsibull-nox/pull/14).
33
+
34
+ Bugfixes
35
+ --------
36
+
37
+ - Make sure that black in CI checks formatting instead of just reformatting (https://github.com/ansible-community/antsibull-nox/pull/14).
38
+
39
+ v0.0.1
40
+ ======
41
+
42
+ Release Summary
43
+ ---------------
44
+
45
+ Initial alpha release.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: antsibull-nox
3
- Version: 0.0.1
3
+ Version: 0.1.0
4
4
  Summary: Changelog tool for Ansible-core and Ansible collections
5
5
  Project-URL: Documentation, https://ansible.readthedocs.io/projects/antsibull-nox/
6
6
  Project-URL: Source code, https://github.com/ansible-community/antsibull-nox/
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
23
  Classifier: Typing :: Typed
24
24
  Requires-Python: >=3.9.0
25
- Requires-Dist: antsibull-fileutils<2.0.0,>=1.0.0
25
+ Requires-Dist: antsibull-fileutils<2.0.0,>=1.2.0
26
26
  Requires-Dist: nox>=2025.2.9
27
27
  Requires-Dist: packaging
28
28
  Requires-Dist: pyyaml
@@ -67,12 +67,14 @@ SPDX-License-Identifier: GPL-3.0-or-later
67
67
  -->
68
68
 
69
69
  # antsibull-nox -- Antsibull Nox Helper
70
+ [![Documentation](https://img.shields.io/badge/docs-brightgreen.svg)](https://ansible.readthedocs.io/projects/antsibull-nox/)
70
71
  [![Discuss on Matrix at #antsibull:ansible.com](https://img.shields.io/matrix/antsibull:ansible.com.svg?server_fqdn=ansible-accounts.ems.host&label=Discuss%20on%20Matrix%20at%20%23antsibull:ansible.com&logo=matrix)](https://matrix.to/#/#antsibull:ansible.com)
71
72
  [![Nox badge](https://github.com/ansible-community/antsibull-nox/actions/workflows/nox.yml/badge.svg)](https://github.com/ansible-community/antsibull-nox/actions?query=workflow%3A%22nox%22+branch%3Amain)
72
73
  [![Codecov badge](https://img.shields.io/codecov/c/github/ansible-community/antsibull-nox)](https://codecov.io/gh/ansible-community/antsibull-nox)
73
74
  [![REUSE status](https://api.reuse.software/badge/github.com/ansible-community/antsibull-nox)](https://api.reuse.software/info/github.com/ansible-community/antsibull-nox)
74
75
 
75
76
  A [nox](https://nox.thea.codes/en/stable/) helper for Ansible collections.
77
+ Please check out the [documentation](https://ansible.readthedocs.io/projects/antsibull-nox/) for more information.
76
78
 
77
79
  antsibull-nox is covered by the [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).
78
80
 
@@ -86,6 +88,12 @@ It can be installed with pip:
86
88
 
87
89
  pip install antsibull-nox
88
90
 
91
+ ## Versioning and compatibility
92
+
93
+ From version 1.0.0 on, antsibull-nox sticks to semantic versioning and aims at providing no backwards compatibility breaking changes [**to the documented API**](https://ansible.readthedocs.io/projects/antsibull-nox/reference/) during a major release cycle. We might make exceptions from this in case of security fixes for vulnerabilities that are severe enough.
94
+
95
+ Interfaces and functions that are not [documented in the API reference](https://ansible.readthedocs.io/projects/antsibull-nox/reference/) are exempt from this and might break even in bugfix releases!
96
+
89
97
  ## Development
90
98
 
91
99
  Install and run `nox` to run all tests. That's it for simple contributions!
@@ -139,5 +147,5 @@ General Public License v3 or, at your option, later. See
139
147
  [LICENSES/GPL-3.0-or-later.txt](https://github.com/ansible-community/antsibull-nox/tree/main/LICENSE)
140
148
  for a copy of the license.
141
149
 
142
- The repository follows the [REUSE Specification](https://reuse.software/spec/) for declaring copyright and
143
- licensing information. The only exception are changelog fragments in ``changelog/fragments/``.
150
+ The repository follows the [REUSE Specification](https://reuse.software/spec/)
151
+ for declaring copyright and licensing information.
@@ -5,12 +5,14 @@ SPDX-License-Identifier: GPL-3.0-or-later
5
5
  -->
6
6
 
7
7
  # antsibull-nox -- Antsibull Nox Helper
8
+ [![Documentation](https://img.shields.io/badge/docs-brightgreen.svg)](https://ansible.readthedocs.io/projects/antsibull-nox/)
8
9
  [![Discuss on Matrix at #antsibull:ansible.com](https://img.shields.io/matrix/antsibull:ansible.com.svg?server_fqdn=ansible-accounts.ems.host&label=Discuss%20on%20Matrix%20at%20%23antsibull:ansible.com&logo=matrix)](https://matrix.to/#/#antsibull:ansible.com)
9
10
  [![Nox badge](https://github.com/ansible-community/antsibull-nox/actions/workflows/nox.yml/badge.svg)](https://github.com/ansible-community/antsibull-nox/actions?query=workflow%3A%22nox%22+branch%3Amain)
10
11
  [![Codecov badge](https://img.shields.io/codecov/c/github/ansible-community/antsibull-nox)](https://codecov.io/gh/ansible-community/antsibull-nox)
11
12
  [![REUSE status](https://api.reuse.software/badge/github.com/ansible-community/antsibull-nox)](https://api.reuse.software/info/github.com/ansible-community/antsibull-nox)
12
13
 
13
14
  A [nox](https://nox.thea.codes/en/stable/) helper for Ansible collections.
15
+ Please check out the [documentation](https://ansible.readthedocs.io/projects/antsibull-nox/) for more information.
14
16
 
15
17
  antsibull-nox is covered by the [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).
16
18
 
@@ -24,6 +26,12 @@ It can be installed with pip:
24
26
 
25
27
  pip install antsibull-nox
26
28
 
29
+ ## Versioning and compatibility
30
+
31
+ From version 1.0.0 on, antsibull-nox sticks to semantic versioning and aims at providing no backwards compatibility breaking changes [**to the documented API**](https://ansible.readthedocs.io/projects/antsibull-nox/reference/) during a major release cycle. We might make exceptions from this in case of security fixes for vulnerabilities that are severe enough.
32
+
33
+ Interfaces and functions that are not [documented in the API reference](https://ansible.readthedocs.io/projects/antsibull-nox/reference/) are exempt from this and might break even in bugfix releases!
34
+
27
35
  ## Development
28
36
 
29
37
  Install and run `nox` to run all tests. That's it for simple contributions!
@@ -77,5 +85,5 @@ General Public License v3 or, at your option, later. See
77
85
  [LICENSES/GPL-3.0-or-later.txt](https://github.com/ansible-community/antsibull-nox/tree/main/LICENSE)
78
86
  for a copy of the license.
79
87
 
80
- The repository follows the [REUSE Specification](https://reuse.software/spec/) for declaring copyright and
81
- licensing information. The only exception are changelog fragments in ``changelog/fragments/``.
88
+ The repository follows the [REUSE Specification](https://reuse.software/spec/)
89
+ for declaring copyright and licensing information.
@@ -1,3 +1,6 @@
1
+ # SPDX-FileCopyrightText: Ansible Project
2
+ # SPDX-License-Identifier: GPL-3.0-or-later
3
+ # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
1
4
  version = 1
2
5
 
3
6
  [[annotations]]
@@ -16,9 +16,9 @@ inputs:
16
16
  default: "3.13"
17
17
  sessions:
18
18
  description: |-
19
- Nox sessions to run. We recommend to stick to the default.
19
+ Nox sessions to run. By default, all sessions are run.
20
20
  required: false
21
- default: lint
21
+ default: ""
22
22
  working-directory:
23
23
  description: |-
24
24
  The directory where to run the nox sessions in.
@@ -37,12 +37,16 @@ runs:
37
37
 
38
38
  - name: "Install nox and antsibull-nox"
39
39
  run: |
40
+ echo "::group::Install nox and antsibull-nox"
40
41
  ${{ steps.python.outputs.python-path }} -m pip install ${{ github.action_path }}
42
+ echo "::endgroup::"
41
43
  shell: bash
42
44
 
43
45
  - name: "Set up nox environments"
44
46
  run: |
45
- nox --verbose --install-only --sessions ${{ inputs.sessions }}
47
+ echo "::group::Set up nox environments"
48
+ nox --verbose --install-only ${{ inputs.sessions && '--sessions' || '' }} ${{ inputs.sessions }}
49
+ echo "::endgroup::"
46
50
  env:
47
51
  FORCE_COLOR: "1"
48
52
  shell: bash
@@ -50,7 +54,7 @@ runs:
50
54
 
51
55
  - name: "Run nox"
52
56
  run: |
53
- nox --verbose --reuse-existing-virtualenvs --no-install --sessions ${{ inputs.sessions }}
57
+ nox --verbose --reuse-existing-virtualenvs --no-install ${{ inputs.sessions && '--sessions' || '' }} ${{ inputs.sessions }}
54
58
  env:
55
59
  FORCE_COLOR: "1"
56
60
  shell: bash
@@ -0,0 +1,56 @@
1
+ ---
2
+ ancestor: null
3
+ releases:
4
+ 0.0.1:
5
+ changes:
6
+ release_summary: Initial alpha release.
7
+ fragments:
8
+ - 0.0.1.yml
9
+ release_date: '2025-03-16'
10
+ 0.1.0:
11
+ changes:
12
+ breaking_changes:
13
+ - The nox workflow now by default runs all sessions, unless restricted with
14
+ the ``sessions`` parameter (https://github.com/ansible-community/antsibull-nox/pull/14).
15
+ bugfixes:
16
+ - Make sure that black in CI checks formatting instead of just reformatting
17
+ (https://github.com/ansible-community/antsibull-nox/pull/14).
18
+ minor_changes:
19
+ - A ``build-import-check`` session that builds and tries to import the collection
20
+ with Galaxy Importer can be added with ``add_build_import_check()`` (https://github.com/ansible-community/antsibull-nox/issues/15,
21
+ https://github.com/ansible-community/antsibull-nox/pull/17).
22
+ - A ``docs-check`` session that runs ``antsibull-docs lint-collection-docs``
23
+ can be added with ``add_docs_check()`` (https://github.com/ansible-community/antsibull-nox/issues/8,
24
+ https://github.com/ansible-community/antsibull-nox/pull/14).
25
+ - A ``extra-checks`` session that runs extra checks such as ``no-unwanted-files``
26
+ or ``action-groups`` can be added with ``add_extra_checks()`` (https://github.com/ansible-community/antsibull-nox/issues/8,
27
+ https://github.com/ansible-community/antsibull-nox/pull/14).
28
+ - A ``license-check`` session that runs ``reuse`` and checks for bad licenses
29
+ can be added with ``add_license_check()`` (https://github.com/ansible-community/antsibull-nox/issues/8,
30
+ https://github.com/ansible-community/antsibull-nox/pull/14).
31
+ - Allow to decide which sessions should be marked as default and which not
32
+ (https://github.com/ansible-community/antsibull-nox/issues/18, https://github.com/ansible-community/antsibull-nox/pull/20).
33
+ - Allow to provide ``extra_code_files`` to ``add_lint_sessions()`` (https://github.com/ansible-community/antsibull-nox/pull/14).
34
+ - Check whether we're running in CI using the generic ``$CI`` enviornment
35
+ variable instead of ``$GITHUB_ACTIONS``. ``$CI`` is set to ``true`` on Github
36
+ Actions, Gitlab CI, and other CI systems (https://github.com/ansible-community/antsibull-nox/pull/28).
37
+ - For running pylint and mypy, copy the collection and dependent collections
38
+ into a new tree. This allows the collection repository to be checked out
39
+ outside an approriate tree structure, and it also allows the dependent collections
40
+ to live in another tree structure, as long as ``ansible-galaxy collection
41
+ list`` can find them (https://github.com/ansible-community/antsibull-nox/pull/1).
42
+ - When a collection checkout is not part of an ``ansible_collections`` tree,
43
+ look for collections in adjacent directories of the form ``<namespace>.<name>``
44
+ that match the containing collection's FQCN (https://github.com/ansible-community/antsibull-nox/issues/6,
45
+ https://github.com/ansible-community/antsibull-nox/pull/22).
46
+ - antsibull-nox now depends on antsibull-fileutils >= 1.2.0 (https://github.com/ansible-community/antsibull-nox/pull/1).
47
+ release_summary: Feature release.
48
+ fragments:
49
+ - 0.1.0.yml
50
+ - 1.yml
51
+ - 14-extra-sessions.yml
52
+ - 17-build-import.yml
53
+ - 21-default.yml
54
+ - 22-adjacent-collections.yml
55
+ - 28-CI.yaml
56
+ release_date: '2025-03-30'
@@ -0,0 +1,23 @@
1
+ ---
2
+ # Copyright (c) Ansible Project
3
+ # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
4
+ # SPDX-License-Identifier: GPL-3.0-or-later
5
+
6
+ # This tries to recover the default configuration that is overwritten
7
+ # in https://app.codecov.io/account/gh/ansible-community/yaml/:
8
+
9
+ comment: {} # https://docs.codecov.com/docs/pull-request-comments
10
+ coverage:
11
+ status: # https://docs.codecov.com/docs/commit-status
12
+ patch: {}
13
+ project:
14
+ default:
15
+ # https://docs.codecov.com/docs/commit-status#flag_coverage_not_uploaded_behavior
16
+ flag_coverage_not_uploaded_behavior: include
17
+
18
+ # Common configurations:
19
+ github_checks:
20
+ annotations: false
21
+
22
+ fixes:
23
+ - "antsibull-nox/::"
@@ -0,0 +1,41 @@
1
+ # Antsibull Nox Helper Release Notes
2
+
3
+ <a id="v0-1-0"></a>
4
+ ## v0\.1\.0
5
+
6
+ <a id="release-summary"></a>
7
+ ### Release Summary
8
+
9
+ Feature release\.
10
+
11
+ <a id="minor-changes"></a>
12
+ ### Minor Changes
13
+
14
+ * A <code>build\-import\-check</code> session that builds and tries to import the collection with Galaxy Importer can be added with <code>add\_build\_import\_check\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/15](https\://github\.com/ansible\-community/antsibull\-nox/issues/15)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/17](https\://github\.com/ansible\-community/antsibull\-nox/pull/17)\)\.
15
+ * A <code>docs\-check</code> session that runs <code>antsibull\-docs lint\-collection\-docs</code> can be added with <code>add\_docs\_check\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/8](https\://github\.com/ansible\-community/antsibull\-nox/issues/8)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
16
+ * A <code>extra\-checks</code> session that runs extra checks such as <code>no\-unwanted\-files</code> or <code>action\-groups</code> can be added with <code>add\_extra\_checks\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/8](https\://github\.com/ansible\-community/antsibull\-nox/issues/8)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
17
+ * A <code>license\-check</code> session that runs <code>reuse</code> and checks for bad licenses can be added with <code>add\_license\_check\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/issues/8](https\://github\.com/ansible\-community/antsibull\-nox/issues/8)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
18
+ * Allow to decide which sessions should be marked as default and which not \([https\://github\.com/ansible\-community/antsibull\-nox/issues/18](https\://github\.com/ansible\-community/antsibull\-nox/issues/18)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/20](https\://github\.com/ansible\-community/antsibull\-nox/pull/20)\)\.
19
+ * Allow to provide <code>extra\_code\_files</code> to <code>add\_lint\_sessions\(\)</code> \([https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
20
+ * Check whether we\'re running in CI using the generic <code>\$CI</code> enviornment variable instead of <code>\$GITHUB\_ACTIONS</code>\. <code>\$CI</code> is set to <code>true</code> on Github Actions\, Gitlab CI\, and other CI systems \([https\://github\.com/ansible\-community/antsibull\-nox/pull/28](https\://github\.com/ansible\-community/antsibull\-nox/pull/28)\)\.
21
+ * For running pylint and mypy\, copy the collection and dependent collections into a new tree\. This allows the collection repository to be checked out outside an approriate tree structure\, and it also allows the dependent collections to live in another tree structure\, as long as <code>ansible\-galaxy collection list</code> can find them \([https\://github\.com/ansible\-community/antsibull\-nox/pull/1](https\://github\.com/ansible\-community/antsibull\-nox/pull/1)\)\.
22
+ * When a collection checkout is not part of an <code>ansible\_collections</code> tree\, look for collections in adjacent directories of the form <code>\<namespace\>\.\<name\></code> that match the containing collection\'s FQCN \([https\://github\.com/ansible\-community/antsibull\-nox/issues/6](https\://github\.com/ansible\-community/antsibull\-nox/issues/6)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/22](https\://github\.com/ansible\-community/antsibull\-nox/pull/22)\)\.
23
+ * antsibull\-nox now depends on antsibull\-fileutils \>\= 1\.2\.0 \([https\://github\.com/ansible\-community/antsibull\-nox/pull/1](https\://github\.com/ansible\-community/antsibull\-nox/pull/1)\)\.
24
+
25
+ <a id="breaking-changes--porting-guide"></a>
26
+ ### Breaking Changes / Porting Guide
27
+
28
+ * The nox workflow now by default runs all sessions\, unless restricted with the <code>sessions</code> parameter \([https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
29
+
30
+ <a id="bugfixes"></a>
31
+ ### Bugfixes
32
+
33
+ * Make sure that black in CI checks formatting instead of just reformatting \([https\://github\.com/ansible\-community/antsibull\-nox/pull/14](https\://github\.com/ansible\-community/antsibull\-nox/pull/14)\)\.
34
+
35
+ <a id="v0-0-1"></a>
36
+ ## v0\.0\.1
37
+
38
+ <a id="release-summary-1"></a>
39
+ ### Release Summary
40
+
41
+ Initial alpha release\.