antsibull-nox 0.1.0__tar.gz → 0.2.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 (78) hide show
  1. antsibull_nox-0.2.0/.github/workflows/nox.yml +74 -0
  2. antsibull_nox-0.2.0/.github/workflows/reusable-nox-matrix.yml +162 -0
  3. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.github/workflows/test-gh-action.yml +2 -2
  4. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.pylintrc.automated +2 -0
  5. antsibull_nox-0.2.0/CHANGELOG.md +92 -0
  6. antsibull_nox-0.2.0/CHANGELOG.rst +81 -0
  7. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/PKG-INFO +3 -1
  8. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/action.yml +22 -3
  9. antsibull_nox-0.2.0/changelogs/changelog.yaml +121 -0
  10. antsibull_nox-0.2.0/docs/changelog.md +77 -0
  11. antsibull_nox-0.2.0/docs/config-file.md +844 -0
  12. antsibull_nox-0.2.0/docs/getting-started.md +172 -0
  13. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/docs/index.md +5 -2
  14. antsibull_nox-0.2.0/docs/introduction.md +35 -0
  15. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/docs/nox-in-ci.md +34 -0
  16. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/docs/reference.md +438 -13
  17. antsibull_nox-0.2.0/docs/troubleshooting.md +42 -0
  18. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/mkdocs.yml +6 -3
  19. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/noxfile.py +2 -2
  20. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/pyproject.toml +11 -2
  21. antsibull_nox-0.2.0/src/antsibull_nox/__init__.py +80 -0
  22. antsibull_nox-0.2.0/src/antsibull_nox/ansible.py +260 -0
  23. antsibull_nox-0.2.0/src/antsibull_nox/collection/__init__.py +56 -0
  24. antsibull_nox-0.2.0/src/antsibull_nox/collection/data.py +106 -0
  25. antsibull_nox-0.2.0/src/antsibull_nox/collection/extract.py +23 -0
  26. antsibull_nox-0.2.0/src/antsibull_nox/collection/install.py +523 -0
  27. antsibull_nox-0.1.0/src/antsibull_nox/collection.py → antsibull_nox-0.2.0/src/antsibull_nox/collection/search.py +164 -253
  28. antsibull_nox-0.2.0/src/antsibull_nox/config.py +332 -0
  29. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/src/antsibull_nox/data/action-groups.py +1 -1
  30. antsibull_nox-0.1.0/src/antsibull_nox/data_util.py → antsibull_nox-0.2.0/src/antsibull_nox/data/antsibull_nox_data_util.py +0 -24
  31. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/src/antsibull_nox/data/license-check.py +1 -1
  32. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/src/antsibull_nox/data/no-unwanted-files.py +5 -1
  33. antsibull_nox-0.2.0/src/antsibull_nox/data/plugin-yamllint.py +244 -0
  34. antsibull_nox-0.2.0/src/antsibull_nox/data_util.py +38 -0
  35. antsibull_nox-0.2.0/src/antsibull_nox/interpret_config.py +235 -0
  36. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/src/antsibull_nox/paths.py +19 -0
  37. antsibull_nox-0.2.0/src/antsibull_nox/python.py +81 -0
  38. antsibull_nox-0.2.0/src/antsibull_nox/sessions.py +1712 -0
  39. antsibull_nox-0.2.0/src/antsibull_nox/utils.py +85 -0
  40. antsibull_nox-0.2.0/tests/needs-network/test_ansible_core.py +66 -0
  41. antsibull_nox-0.2.0/tests/unit/__init__.py +0 -0
  42. antsibull_nox-0.2.0/tests/unit/test_ansible.py +309 -0
  43. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/tests/unit/test_collection.py +109 -56
  44. antsibull_nox-0.2.0/tests/unit/test_python.py +60 -0
  45. antsibull_nox-0.2.0/tests/unit/test_utils.py +90 -0
  46. antsibull_nox-0.2.0/tests/unit/utils.py +27 -0
  47. antsibull_nox-0.1.0/.github/workflows/nox.yml +0 -119
  48. antsibull_nox-0.1.0/CHANGELOG.md +0 -51
  49. antsibull_nox-0.1.0/CHANGELOG.rst +0 -45
  50. antsibull_nox-0.1.0/changelogs/changelog.yaml +0 -56
  51. antsibull_nox-0.1.0/docs/changelog.md +0 -41
  52. antsibull_nox-0.1.0/docs/getting-started.md +0 -203
  53. antsibull_nox-0.1.0/src/antsibull_nox/__init__.py +0 -33
  54. antsibull_nox-0.1.0/src/antsibull_nox/sessions.py +0 -840
  55. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.flake8 +0 -0
  56. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.github/dependabot.yml +0 -0
  57. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.github/patchback.yml +0 -0
  58. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.gitignore +0 -0
  59. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/.readthedocs.yml +0 -0
  60. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/CHANGELOG.md.license +0 -0
  61. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/CHANGELOG.rst.license +0 -0
  62. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/LICENSE +0 -0
  63. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/LICENSES/GPL-3.0-or-later.txt +0 -0
  64. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/README.md +0 -0
  65. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/REUSE.toml +0 -0
  66. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/changelogs/changelog.yaml.license +0 -0
  67. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/changelogs/config.yaml +0 -0
  68. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/changelogs/fragments/.keep +0 -0
  69. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/codecov.yml +0 -0
  70. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/docs/changelog.md.license +0 -0
  71. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/docs/community.md +0 -0
  72. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/docs-requirements.txt +0 -0
  73. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/src/antsibull_nox/data/license-check.py.license +0 -0
  74. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/src/antsibull_nox/py.typed +0 -0
  75. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/tests/.keep +0 -0
  76. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/tests/test-collection/galaxy.yml +0 -0
  77. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/tests/test-collection/noxfile.py +0 -0
  78. {antsibull_nox-0.1.0 → antsibull_nox-0.2.0}/tests/test-collection/plugins/modules/test.py +0 -0
@@ -0,0 +1,74 @@
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: nox
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
+ nox:
23
+ runs-on: ubuntu-latest
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ include:
28
+ - session: test
29
+ python-versions: "3.9, 3.10, 3.11, 3.12, 3.13"
30
+ force-python: ""
31
+ codecov: true
32
+ packages: ""
33
+
34
+ - session: integration
35
+ python-versions: "3.13"
36
+ force-python: "3.13"
37
+ codecov: true
38
+ packages: ""
39
+
40
+ - session: lint
41
+ python-versions: "3.13"
42
+ force-python: "3.13"
43
+ codecov: false
44
+ packages: ""
45
+ name: "Run nox ${{ matrix.session }} session"
46
+ steps:
47
+ - name: Check out antsibull-nox
48
+ uses: actions/checkout@v4
49
+ with:
50
+ path: antsibull-nox
51
+ persist-credentials: false
52
+ - name: Check out dependent project antsibull-fileutils
53
+ uses: actions/checkout@v4
54
+ with:
55
+ repository: ansible-community/antsibull-fileutils
56
+ path: antsibull-fileutils
57
+ persist-credentials: false
58
+ - name: Install extra packages
59
+ if: "matrix.packages != ''"
60
+ run: |
61
+ sudo apt-get install -y ${{ matrix.packages }}
62
+ - name: Setup nox
63
+ uses: wntrblm/nox@2025.02.09
64
+ with:
65
+ python-versions: "${{ matrix.python-versions }}"
66
+ - name: Run nox
67
+ uses: ansible-community/github-action-run-nox@v1
68
+ with:
69
+ sessions: ${{ matrix.session }}
70
+ force-pythons: ${{ matrix.force-python }}
71
+ working-directory: antsibull-nox
72
+ codecov: ${{ matrix.codecov }}
73
+ codecov-session: coverage
74
+ codecov-token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,162 @@
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: 2025 Felix Fontein <felix@fontein.de>
6
+
7
+ name: Run sanity, unit, and integration tests
8
+
9
+ "on":
10
+ workflow_call:
11
+ inputs:
12
+ upload-codecov:
13
+ type: boolean
14
+ description: >-
15
+ Whether code coverage should be collected and uploaded to codecov.io.
16
+ required: false
17
+ default: false
18
+ secrets:
19
+ CODECOV_TOKEN:
20
+ required: false
21
+
22
+ jobs:
23
+ create-matrixes:
24
+ name: "Create matrixes"
25
+ runs-on: ubuntu-latest
26
+ outputs:
27
+ sanity-matrix: ${{ fromJSON(steps.generate-matrix.outputs.run-nox).sanity }}
28
+ units-matrix: ${{ fromJSON(steps.generate-matrix.outputs.run-nox).units }}
29
+ integration-matrix: ${{ fromJSON(steps.generate-matrix.outputs.run-nox).integration }}
30
+ steps:
31
+ - name: Check out collection
32
+ uses: actions/checkout@v4
33
+ with:
34
+ persist-credentials: false
35
+ - name: Run nox
36
+ uses: ansible-community/antsibull-nox@main
37
+ id: generate-matrix
38
+ with:
39
+ sessions: matrix-generator
40
+
41
+ sanity:
42
+ name: ${{ matrix.skip && 'Skipping ' || '' }}Sanity (Ⓐ${{ matrix.ansible-core }})
43
+ needs:
44
+ - create-matrixes
45
+ strategy:
46
+ matrix:
47
+ include: >-
48
+ ${{ fromJson(needs.create-matrixes.outputs.sanity-matrix || '[{"skip": true}]') }}
49
+ runs-on: ubuntu-latest
50
+ steps:
51
+ - name: Check out collection
52
+ if: >-
53
+ !matrix.skip
54
+ uses: actions/checkout@v4
55
+ with:
56
+ persist-credentials: false
57
+ - name: Run nox
58
+ if: >-
59
+ !matrix.skip
60
+ uses: ansible-community/antsibull-nox@main
61
+ with:
62
+ extra-python-versions: ${{ matrix.python }}
63
+ extra-args: ${{ inputs.upload-codecov && '--coverage' || '' }}
64
+ sessions: ${{ matrix.name }}
65
+ - name: Upload coverage for final step
66
+ if: >-
67
+ !matrix.skip && inputs.upload-codecov
68
+ uses: actions/upload-artifact@v4
69
+ with:
70
+ name: code-coverage-sanity-${{ matrix.name }}
71
+ path: tests/output/reports/coverage=sanity=*.xml
72
+
73
+ units:
74
+ name: ${{ matrix.skip && 'Skipping ' || '' }}Units (Ⓐ${{ matrix.ansible-core }})
75
+ needs:
76
+ - create-matrixes
77
+ strategy:
78
+ matrix:
79
+ include: >-
80
+ ${{ fromJson(needs.create-matrixes.outputs.units-matrix || '[{"skip": true}]') }}
81
+ runs-on: ubuntu-latest
82
+ steps:
83
+ - name: Check out collection
84
+ if: >-
85
+ !matrix.skip
86
+ uses: actions/checkout@v4
87
+ with:
88
+ persist-credentials: false
89
+ - name: Run nox
90
+ if: >-
91
+ !matrix.skip
92
+ uses: ansible-community/antsibull-nox@main
93
+ with:
94
+ extra-python-versions: ${{ matrix.python }}
95
+ extra-args: ${{ inputs.upload-codecov && '--coverage' || '' }}
96
+ sessions: ${{ matrix.name }}
97
+ - name: Upload coverage for final step
98
+ if: >-
99
+ !matrix.skip && inputs.upload-codecov
100
+ uses: actions/upload-artifact@v4
101
+ with:
102
+ name: code-coverage-units-${{ matrix.name }}
103
+ path: tests/output/reports/coverage=units=*.xml
104
+
105
+ integration:
106
+ name: ${{ matrix.skip && 'Skipping ' || '' }}I (Ⓐ${{ matrix.ansible-core }}+py${{ matrix.test-python }}+${{ matrix.test-container }})
107
+ needs:
108
+ - create-matrixes
109
+ strategy:
110
+ fail-fast: false
111
+ matrix:
112
+ include: >-
113
+ ${{ fromJson(needs.create-matrixes.outputs.integration-matrix || '[{"skip": true}]') }}
114
+ runs-on: ubuntu-latest
115
+ steps:
116
+ - name: Check out collection
117
+ if: >-
118
+ !matrix.skip
119
+ uses: actions/checkout@v4
120
+ with:
121
+ persist-credentials: false
122
+ - name: Run nox
123
+ if: >-
124
+ !matrix.skip
125
+ uses: ansible-community/antsibull-nox@main
126
+ with:
127
+ extra-python-versions: ${{ matrix.python }}
128
+ extra-args: ${{ inputs.upload-codecov && '--coverage' || '' }}
129
+ sessions: ${{ matrix.name }}
130
+ - name: Upload coverage for final step
131
+ if: >-
132
+ !matrix.skip && inputs.upload-codecov
133
+ uses: actions/upload-artifact@v4
134
+ with:
135
+ name: code-coverage-integration-${{ matrix.name }}
136
+ path: tests/output/reports/coverage=integration=*.xml
137
+
138
+ upload-coverage:
139
+ name: Upload coverage
140
+ if: inputs.upload-codecov
141
+ needs:
142
+ - sanity
143
+ - units
144
+ - integration
145
+ runs-on: ubuntu-latest
146
+ steps:
147
+ - name: Check out collection
148
+ uses: actions/checkout@v4
149
+ with:
150
+ persist-credentials: false
151
+ - name: Download coverage from previous steps
152
+ uses: actions/download-artifact@v4
153
+ with:
154
+ pattern: code-coverage-*
155
+ - name: List all files
156
+ run: find . -name 'coverage=*.xml'
157
+ shell: bash
158
+ - name: Upload coverage
159
+ uses: codecov/codecov-action@v5
160
+ with:
161
+ files: coverage=*.xml
162
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -2,7 +2,7 @@
2
2
  # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or
3
3
  # https://www.gnu.org/licenses/gpl-3.0.txt)
4
4
  # SPDX-License-Identifier: GPL-3.0-or-later
5
- # SPDX-FileCopyrightText: 2023 Maxwell G <maxwell@gtmx.me
5
+ # SPDX-FileCopyrightText: 2023 Maxwell G <maxwell@gtmx.me>
6
6
 
7
7
  name: test-gh-action
8
8
  'on':
@@ -21,7 +21,7 @@ env:
21
21
  jobs:
22
22
  test-gh-action:
23
23
  runs-on: ubuntu-latest
24
- name: "Run nox ${{ matrix.session }} session"
24
+ name: "Run nox"
25
25
  steps:
26
26
  - name: Check out antsibull-nox
27
27
  uses: actions/checkout@v4
@@ -66,7 +66,9 @@ confidence=
66
66
  # --disable=W".
67
67
  disable=
68
68
  locally-disabled,
69
+ too-few-public-methods,
69
70
  too-many-arguments,
71
+ too-many-lines,
70
72
  too-many-locals,
71
73
  too-many-positional-arguments,
72
74
 
@@ -0,0 +1,92 @@
1
+ # Antsibull Nox Helper Release Notes
2
+
3
+ **Topics**
4
+
5
+ - <a href="#v0-2-0">v0\.2\.0</a>
6
+ - <a href="#release-summary">Release Summary</a>
7
+ - <a href="#major-changes">Major Changes</a>
8
+ - <a href="#minor-changes">Minor Changes</a>
9
+ - <a href="#deprecated-features">Deprecated Features</a>
10
+ - <a href="#v0-1-0">v0\.1\.0</a>
11
+ - <a href="#release-summary-1">Release Summary</a>
12
+ - <a href="#minor-changes-1">Minor Changes</a>
13
+ - <a href="#breaking-changes--porting-guide">Breaking Changes / Porting Guide</a>
14
+ - <a href="#bugfixes">Bugfixes</a>
15
+ - <a href="#v0-0-1">v0\.0\.1</a>
16
+ - <a href="#release-summary-2">Release Summary</a>
17
+
18
+ <a id="v0-2-0"></a>
19
+ ## v0\.2\.0
20
+
21
+ <a id="release-summary"></a>
22
+ ### Release Summary
23
+
24
+ Major extension and overhaul with many breaking changes\. The next minor release is expected to bring more stabilization\.
25
+
26
+ <a id="major-changes"></a>
27
+ ### Major Changes
28
+
29
+ * There is now a new function <code>antsibull\_nox\.load\_antsibull\_nox\_toml\(\)</code> which loads <code>antsibull\-nox\.toml</code> and creates configuration and sessions from it\. Calling other functionality from <code>antsibull\_nox</code> in <code>noxfile\.py</code> is only necessary for creating own specialized sessions\, or ansible\-test sessions that cannot be created with the <code>antsibull\_nox\.add\_all\_ansible\_test\_\*\_test\_sessions\*\(\)</code> type functions \([https\://github\.com/ansible\-community/antsibull\-nox/pull/50](https\://github\.com/ansible\-community/antsibull\-nox/pull/50)\, [https\://github\.com/ansible\-community/antsibull\-nox/issues/34](https\://github\.com/ansible\-community/antsibull\-nox/issues/34)\)\.
30
+
31
+ <a id="minor-changes"></a>
32
+ ### Minor Changes
33
+
34
+ * Add descriptions to generated sessions that are shown when running <code>nox \-\-list</code> \([https\://github\.com/ansible\-community/antsibull\-nox/pull/31](https\://github\.com/ansible\-community/antsibull\-nox/pull/31)\)\.
35
+ * Add function <code>add\_matrix\_generator</code> which allows to generate matrixes for CI systems for ansible\-test runs \([https\://github\.com/ansible\-community/antsibull\-nox/pull/32](https\://github\.com/ansible\-community/antsibull\-nox/pull/32)\)\.
36
+ * Add several new functions to add ansible\-test runs \([https\://github\.com/ansible\-community/antsibull\-nox/issues/5](https\://github\.com/ansible\-community/antsibull\-nox/issues/5)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/32](https\://github\.com/ansible\-community/antsibull\-nox/pull/32)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/41](https\://github\.com/ansible\-community/antsibull\-nox/pull/41)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/45](https\://github\.com/ansible\-community/antsibull\-nox/pull/45)\)\.
37
+ * Add shared workflow for running ansible\-test from nox and generating the CI matrix from nox as well \([https\://github\.com/ansible\-community/antsibull\-nox/issues/35](https\://github\.com/ansible\-community/antsibull\-nox/issues/35)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/37](https\://github\.com/ansible\-community/antsibull\-nox/pull/37)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/38](https\://github\.com/ansible\-community/antsibull\-nox/pull/38)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/48](https\://github\.com/ansible\-community/antsibull\-nox/pull/48)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/53](https\://github\.com/ansible\-community/antsibull\-nox/pull/53)\)\.
38
+ * Allow to add <code>yamllint</code> session to <code>lint</code> meta\-session that checks YAML files\, and YAML content embedded in plugins and sidecar docs \([https\://github\.com/ansible\-community/antsibull\-nox/pull/42](https\://github\.com/ansible\-community/antsibull\-nox/pull/42)\)\.
39
+ * Allow to add ansible\-lint session \([https\://github\.com/ansible\-community/antsibull\-nox/issues/40](https\://github\.com/ansible\-community/antsibull\-nox/issues/40)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/49](https\://github\.com/ansible\-community/antsibull\-nox/pull/49)\)\.
40
+ * Allow to disable using installed collections that are not checked out next to the current one by setting the environment variable <code>ANTSIBULL\_NOX\_IGNORE\_INSTALLED\_COLLECTIONS</code> to <code>true</code> \([https\://github\.com/ansible\-community/antsibull\-nox/pull/51](https\://github\.com/ansible\-community/antsibull\-nox/pull/51)\)\.
41
+ * Collapse Galaxy importer\'s output in GitHub Actions \([https\://github\.com/ansible\-community/antsibull\-nox/pull/46](https\://github\.com/ansible\-community/antsibull\-nox/pull/46)\)\.
42
+ * In the GitHub Action\, no longer use installed collections\, but only ones that have been checked out next to the current one\. This avoids using collections that come with the Ansible community package installed in the default GHA image \([https\://github\.com/ansible\-community/antsibull\-nox/pull/51](https\://github\.com/ansible\-community/antsibull\-nox/pull/51)\)\.
43
+ * The action allows to install additional Python versions with the new <code>extra\-python\-versions</code> option \([https\://github\.com/ansible\-community/antsibull\-nox/pull/32](https\://github\.com/ansible\-community/antsibull\-nox/pull/32)\)\.
44
+ * The action allows to pass extra commands after <code>\-\-</code> with the new <code>extra\-args</code> option \([https\://github\.com/ansible\-community/antsibull\-nox/pull/32](https\://github\.com/ansible\-community/antsibull\-nox/pull/32)\)\.
45
+ * antsibull\-nox now automatically installs missing collections\. It uses <code>\.nox/\.cache</code> to store the collection artifacts and the extracted collections \([https\://github\.com/ansible\-community/antsibull\-nox/pull/46](https\://github\.com/ansible\-community/antsibull\-nox/pull/46)\, [https\://github\.com/ansible\-community/antsibull\-nox/pull/52](https\://github\.com/ansible\-community/antsibull\-nox/pull/52)\, [https\://github\.com/ansible\-community/antsibull\-nox/issues/7](https\://github\.com/ansible\-community/antsibull\-nox/issues/7)\)\.
46
+ * pydantic is now a required Python dependency of antsibull\-nox \([https\://github\.com/ansible\-community/antsibull\-nox/pull/50](https\://github\.com/ansible\-community/antsibull\-nox/pull/50)\)\.
47
+ * tomli is now a required Python dependency of antsibull\-nox for Python versions 3\.9 and 3\.10 For Python 3\.11\+\, the standard library tomllib will be used \([https\://github\.com/ansible\-community/antsibull\-nox/pull/50](https\://github\.com/ansible\-community/antsibull\-nox/pull/50)\)\.
48
+
49
+ <a id="deprecated-features"></a>
50
+ ### Deprecated Features
51
+
52
+ * All functions in <code>antsibull\_nox\.\*\*</code> are deprecated except <code>antsibull\_nox\.load\_antsibull\_nox\_toml\(\)</code>\, <code>antsibull\_nox\.add\_ansible\_test\_session\(\)</code>\, and <code>antsibull\_nox\.sessions\.prepare\_collections\(\)</code>\. The other function will still work for the next minor release\, but will then be removed\. Use <code>antsibull\-nox\.toml</code> and <code>antsibull\_nox\.load\_antsibull\_nox\_toml\(\)</code> instead \([https\://github\.com/ansible\-community/antsibull\-nox/pull/50](https\://github\.com/ansible\-community/antsibull\-nox/pull/50)\)\.
53
+
54
+ <a id="v0-1-0"></a>
55
+ ## v0\.1\.0
56
+
57
+ <a id="release-summary-1"></a>
58
+ ### Release Summary
59
+
60
+ Feature release\.
61
+
62
+ <a id="minor-changes-1"></a>
63
+ ### Minor Changes
64
+
65
+ * 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)\)\.
66
+ * 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)\)\.
67
+ * 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)\)\.
68
+ * 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)\)\.
69
+ * 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)\)\.
70
+ * 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)\)\.
71
+ * 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)\)\.
72
+ * 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)\)\.
73
+ * 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)\)\.
74
+ * 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)\)\.
75
+
76
+ <a id="breaking-changes--porting-guide"></a>
77
+ ### Breaking Changes / Porting Guide
78
+
79
+ * 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)\)\.
80
+
81
+ <a id="bugfixes"></a>
82
+ ### Bugfixes
83
+
84
+ * 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)\)\.
85
+
86
+ <a id="v0-0-1"></a>
87
+ ## v0\.0\.1
88
+
89
+ <a id="release-summary-2"></a>
90
+ ### Release Summary
91
+
92
+ Initial alpha release\.
@@ -0,0 +1,81 @@
1
+ ==================================
2
+ Antsibull Nox Helper Release Notes
3
+ ==================================
4
+
5
+ .. contents:: Topics
6
+
7
+ v0.2.0
8
+ ======
9
+
10
+ Release Summary
11
+ ---------------
12
+
13
+ Major extension and overhaul with many breaking changes. The next minor release is expected to bring more stabilization.
14
+
15
+ Major Changes
16
+ -------------
17
+
18
+ - There is now a new function ``antsibull_nox.load_antsibull_nox_toml()`` which loads ``antsibull-nox.toml`` and creates configuration and sessions from it. Calling other functionality from ``antsibull_nox`` in ``noxfile.py`` is only necessary for creating own specialized sessions, or ansible-test sessions that cannot be created with the ``antsibull_nox.add_all_ansible_test_*_test_sessions*()`` type functions (https://github.com/ansible-community/antsibull-nox/pull/50, https://github.com/ansible-community/antsibull-nox/issues/34).
19
+
20
+ Minor Changes
21
+ -------------
22
+
23
+ - Add descriptions to generated sessions that are shown when running ``nox --list`` (https://github.com/ansible-community/antsibull-nox/pull/31).
24
+ - Add function ``add_matrix_generator`` which allows to generate matrixes for CI systems for ansible-test runs (https://github.com/ansible-community/antsibull-nox/pull/32).
25
+ - Add several new functions to add ansible-test runs (https://github.com/ansible-community/antsibull-nox/issues/5, https://github.com/ansible-community/antsibull-nox/pull/32, https://github.com/ansible-community/antsibull-nox/pull/41, https://github.com/ansible-community/antsibull-nox/pull/45).
26
+ - Add shared workflow for running ansible-test from nox and generating the CI matrix from nox as well (https://github.com/ansible-community/antsibull-nox/issues/35, https://github.com/ansible-community/antsibull-nox/pull/37, https://github.com/ansible-community/antsibull-nox/pull/38, https://github.com/ansible-community/antsibull-nox/pull/48, https://github.com/ansible-community/antsibull-nox/pull/53).
27
+ - Allow to add ``yamllint`` session to ``lint`` meta-session that checks YAML files, and YAML content embedded in plugins and sidecar docs (https://github.com/ansible-community/antsibull-nox/pull/42).
28
+ - Allow to add ansible-lint session (https://github.com/ansible-community/antsibull-nox/issues/40, https://github.com/ansible-community/antsibull-nox/pull/49).
29
+ - Allow to disable using installed collections that are not checked out next to the current one by setting the environment variable ``ANTSIBULL_NOX_IGNORE_INSTALLED_COLLECTIONS`` to ``true`` (https://github.com/ansible-community/antsibull-nox/pull/51).
30
+ - Collapse Galaxy importer's output in GitHub Actions (https://github.com/ansible-community/antsibull-nox/pull/46).
31
+ - In the GitHub Action, no longer use installed collections, but only ones that have been checked out next to the current one. This avoids using collections that come with the Ansible community package installed in the default GHA image (https://github.com/ansible-community/antsibull-nox/pull/51).
32
+ - The action allows to install additional Python versions with the new ``extra-python-versions`` option (https://github.com/ansible-community/antsibull-nox/pull/32).
33
+ - The action allows to pass extra commands after ``--`` with the new ``extra-args`` option (https://github.com/ansible-community/antsibull-nox/pull/32).
34
+ - antsibull-nox now automatically installs missing collections. It uses ``.nox/.cache`` to store the collection artifacts and the extracted collections (https://github.com/ansible-community/antsibull-nox/pull/46, https://github.com/ansible-community/antsibull-nox/pull/52, https://github.com/ansible-community/antsibull-nox/issues/7).
35
+ - pydantic is now a required Python dependency of antsibull-nox (https://github.com/ansible-community/antsibull-nox/pull/50).
36
+ - tomli is now a required Python dependency of antsibull-nox for Python versions 3.9 and 3.10 For Python 3.11+, the standard library tomllib will be used (https://github.com/ansible-community/antsibull-nox/pull/50).
37
+
38
+ Deprecated Features
39
+ -------------------
40
+
41
+ - All functions in ``antsibull_nox.**`` are deprecated except ``antsibull_nox.load_antsibull_nox_toml()``, ``antsibull_nox.add_ansible_test_session()``, and ``antsibull_nox.sessions.prepare_collections()``. The other function will still work for the next minor release, but will then be removed. Use ``antsibull-nox.toml`` and ``antsibull_nox.load_antsibull_nox_toml()`` instead (https://github.com/ansible-community/antsibull-nox/pull/50).
42
+
43
+ v0.1.0
44
+ ======
45
+
46
+ Release Summary
47
+ ---------------
48
+
49
+ Feature release.
50
+
51
+ Minor Changes
52
+ -------------
53
+
54
+ - 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).
55
+ - 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).
56
+ - 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).
57
+ - 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).
58
+ - 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).
59
+ - Allow to provide ``extra_code_files`` to ``add_lint_sessions()`` (https://github.com/ansible-community/antsibull-nox/pull/14).
60
+ - 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).
61
+ - 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).
62
+ - 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).
63
+ - antsibull-nox now depends on antsibull-fileutils >= 1.2.0 (https://github.com/ansible-community/antsibull-nox/pull/1).
64
+
65
+ Breaking Changes / Porting Guide
66
+ --------------------------------
67
+
68
+ - The nox workflow now by default runs all sessions, unless restricted with the ``sessions`` parameter (https://github.com/ansible-community/antsibull-nox/pull/14).
69
+
70
+ Bugfixes
71
+ --------
72
+
73
+ - Make sure that black in CI checks formatting instead of just reformatting (https://github.com/ansible-community/antsibull-nox/pull/14).
74
+
75
+ v0.0.1
76
+ ======
77
+
78
+ Release Summary
79
+ ---------------
80
+
81
+ Initial alpha release.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: antsibull-nox
3
- Version: 0.1.0
3
+ Version: 0.2.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/
@@ -25,8 +25,10 @@ Requires-Python: >=3.9.0
25
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
+ Requires-Dist: pydantic~=2.0
28
29
  Requires-Dist: pyyaml
29
30
  Requires-Dist: semantic-version
31
+ Requires-Dist: tomli; python_version < '3.11'
30
32
  Provides-Extra: codeqa
31
33
  Requires-Dist: antsibull-changelog; extra == 'codeqa'
32
34
  Requires-Dist: flake8>=3.8.0; extra == 'codeqa'
@@ -14,6 +14,17 @@ inputs:
14
14
  Python-version to use. We recommend to stick to the default.
15
15
  required: false
16
16
  default: "3.13"
17
+ extra-python-versions:
18
+ description: |-
19
+ Newline-separated list of Python versions to install as well.
20
+ Should be used if other Python versions are needed.
21
+ required: false
22
+ default: ""
23
+ extra-args:
24
+ description: |-
25
+ Additional arguments to pass to the nox run after `--`.
26
+ required: false
27
+ default: ""
17
28
  sessions:
18
29
  description: |-
19
30
  Nox sessions to run. By default, all sessions are run.
@@ -25,6 +36,10 @@ inputs:
25
36
  Should be the directory where the collection's `galaxy.yml` is in, and where the `noxfile.py` is in.
26
37
  required: false
27
38
  default: .
39
+ outputs:
40
+ run-nox:
41
+ description: Output of the 'run nox' step.
42
+ value: ${{ toJSON(steps.run-nox.outputs) }}
28
43
 
29
44
  runs:
30
45
  using: composite
@@ -33,7 +48,9 @@ runs:
33
48
  uses: actions/setup-python@v5
34
49
  id: python
35
50
  with:
36
- python-version: "${{ inputs.python-version }}"
51
+ python-version: |-
52
+ ${{ inputs.extra-python-versions }}
53
+ ${{ inputs.python-version }}
37
54
 
38
55
  - name: "Install nox and antsibull-nox"
39
56
  run: |
@@ -45,7 +62,7 @@ runs:
45
62
  - name: "Set up nox environments"
46
63
  run: |
47
64
  echo "::group::Set up nox environments"
48
- nox --verbose --install-only ${{ inputs.sessions && '--sessions' || '' }} ${{ inputs.sessions }}
65
+ nox --verbose --install-only${{ inputs.sessions && ' --sessions ' || '' }}${{ inputs.sessions }}
49
66
  echo "::endgroup::"
50
67
  env:
51
68
  FORCE_COLOR: "1"
@@ -53,9 +70,11 @@ runs:
53
70
  working-directory: "${{ inputs.working-directory }}"
54
71
 
55
72
  - name: "Run nox"
73
+ id: run-nox
56
74
  run: |
57
- nox --verbose --reuse-existing-virtualenvs --no-install ${{ inputs.sessions && '--sessions' || '' }} ${{ inputs.sessions }}
75
+ nox --verbose --reuse-existing-virtualenvs --no-install${{ inputs.sessions && ' --sessions ' || '' }}${{ inputs.sessions }}${{ inputs.extra-args && ' -- ' || '' }}${{ inputs.extra-args }}
58
76
  env:
59
77
  FORCE_COLOR: "1"
78
+ ANTSIBULL_NOX_IGNORE_INSTALLED_COLLECTIONS: "true"
60
79
  shell: bash
61
80
  working-directory: "${{ inputs.working-directory }}"