Skip to content

Commit 1080d91

Browse files
Fix first-run collection discovery by enabling plugin loader after prepare_environment (#4722)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 06f26f6 commit 1080d91

File tree

15 files changed

+191
-130
lines changed

15 files changed

+191
-130
lines changed

.config/constraints.txt

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file was autogenerated by uv via the following command:
22
# tox run -e deps
3-
ansible-compat==25.6.0 # via ansible-lint (pyproject.toml)
4-
ansible-creator==25.6.0 # via ansible-lint (pyproject.toml)
5-
astroid==3.3.10 # via pylint
3+
ansible-compat==25.8.0 # via ansible-lint (pyproject.toml)
4+
ansible-creator==25.7.1 # via ansible-lint (pyproject.toml)
5+
astroid==3.3.11 # via pylint
66
asttokens==3.0.0 # via stack-data
77
attrs==25.3.0 # via jsonschema, referencing, ansible-lint (pyproject.toml)
88
babel==2.17.0 # via mkdocs-material
@@ -15,15 +15,15 @@ bracex==2.6 # via wcmatch, ansible-lint (pyproject.toml)
1515
cachetools==6.1.0 # via tox
1616
cairocffi==1.7.1 # via cairosvg
1717
cairosvg==2.7.1 # via mkdocs-ansible
18-
certifi==2025.7.14 # via requests
18+
certifi==2025.8.3 # via requests
1919
cffi==1.17.1 # via cairocffi, cryptography, ansible-lint (pyproject.toml)
2020
chardet==5.2.0 # via tox
21-
charset-normalizer==3.4.2 # via requests
21+
charset-normalizer==3.4.3 # via requests
2222
click==8.2.1 # via black, mkdocs, ansible-lint (pyproject.toml)
2323
colorama==0.4.6 # via griffe, mkdocs-material, tox
24-
coverage==7.10.0 # via coverage-enable-subprocess, ansible-lint (pyproject.toml)
24+
coverage==7.10.3 # via coverage-enable-subprocess, ansible-lint (pyproject.toml)
2525
coverage-enable-subprocess==1.0 # via ansible-lint (pyproject.toml)
26-
cryptography==45.0.5 # via ansible-core, ansible-lint (pyproject.toml)
26+
cryptography==45.0.6 # via ansible-core, ansible-lint (pyproject.toml)
2727
csscompressor==0.9.5 # via mkdocs-minify-plugin
2828
cssselect2==0.8.0 # via cairosvg
2929
decorator==5.2.1 # via ipdb, ipython
@@ -38,24 +38,24 @@ filelock==3.18.0 # via tox, virtualenv, ansible-lint (pyproject.toml)
3838
ghp-import==2.1.0 # via mkdocs
3939
gitdb==4.0.12 # via gitpython
4040
gitpython==3.1.45 # via tox-extra
41-
griffe==1.8.0 # via mkdocstrings-python
41+
griffe==1.11.1 # via mkdocstrings-python
4242
hjson==3.1.0 # via mkdocs-macros-plugin, super-collections
4343
htmlmin2==0.1.13 # via mkdocs-minify-plugin
4444
idna==3.10 # via requests
4545
importlib-metadata==8.7.0 # via ansible-lint (pyproject.toml)
4646
iniconfig==2.1.0 # via pytest
4747
ipdb==0.13.13 # via ansible-lint (pyproject.toml)
48-
ipython==8.36.0 # via ipdb, ansible-lint (pyproject.toml)
48+
ipython==8.37.0 # via ipdb, ansible-lint (pyproject.toml)
4949
isort==6.0.1 # via pylint
5050
jedi==0.19.2 # via ipython
5151
jinja2==3.1.6 # via ansible-core, ansible-creator, mkdocs, mkdocs-macros-plugin, mkdocs-material, mkdocstrings, ansible-lint (pyproject.toml)
5252
jmespath==1.0.1 # via ansible-lint (pyproject.toml)
5353
jsmin==3.0.1 # via mkdocs-minify-plugin
54-
jsonschema==4.24.0 # via ansible-compat, ansible-lint (pyproject.toml)
54+
jsonschema==4.25.0 # via ansible-compat, ansible-lint (pyproject.toml)
5555
jsonschema-specifications==2025.4.1 # via jsonschema, ansible-lint (pyproject.toml)
56-
license-expression==30.4.3 # via ansible-lint (pyproject.toml)
57-
linkchecker==10.5.0 # via mkdocs-ansible
58-
markdown==3.8 # via markdown-include, mkdocs, mkdocs-autorefs, mkdocs-htmlproofer-plugin, mkdocs-material, mkdocstrings, pymdown-extensions
56+
license-expression==30.4.4 # via ansible-lint (pyproject.toml)
57+
linkchecker==10.6.0 # via mkdocs-ansible
58+
markdown==3.8.2 # via markdown-include, mkdocs, mkdocs-autorefs, mkdocs-htmlproofer-plugin, mkdocs-material, mkdocstrings, pymdown-extensions
5959
markdown-exec==1.11.0 # via mkdocs-ansible
6060
markdown-include==0.8.1 # via mkdocs-ansible
6161
markupsafe==3.0.2 # via jinja2, mkdocs, mkdocs-autorefs, mkdocstrings, ansible-lint (pyproject.toml)
@@ -68,21 +68,21 @@ mkdocs-autorefs==1.4.2 # via mkdocstrings, mkdocstrings-python
6868
mkdocs-gen-files==0.5.0 # via mkdocs-ansible
6969
mkdocs-get-deps==0.2.0 # via mkdocs
7070
mkdocs-htmlproofer-plugin==1.3.0 # via mkdocs-ansible
71-
mkdocs-macros-plugin==1.3.7 # via mkdocs-ansible
71+
mkdocs-macros-plugin==1.3.9 # via mkdocs-ansible
7272
mkdocs-material==9.6.16 # via mkdocs-ansible
7373
mkdocs-material-extensions==1.3.1 # via mkdocs-ansible, mkdocs-material
7474
mkdocs-minify-plugin==0.8.0 # via mkdocs-ansible
7575
mkdocstrings==0.30.0 # via mkdocs-ansible, mkdocstrings-python
7676
mkdocstrings-python==1.16.12 # via mkdocs-ansible
77-
mypy==1.16.1 # via ansible-lint (pyproject.toml)
77+
mypy==1.17.1 # via ansible-lint (pyproject.toml)
7878
mypy-extensions==1.1.0 # via black, mypy, ansible-lint (pyproject.toml)
7979
netaddr==1.3.0 # via ansible-lint (pyproject.toml)
8080
packaging==25.0 # via ansible-compat, ansible-core, bindep, black, mkdocs, mkdocs-macros-plugin, pyproject-api, pytest, pytest-sugar, tox, tox-extra, tox-uv, ansible-lint (pyproject.toml)
8181
paginate==0.5.7 # via mkdocs-material
8282
parsley==1.3 # via bindep
8383
parso==0.8.4 # via jedi
8484
pathspec==0.12.1 # via black, mkdocs, mkdocs-macros-plugin, mypy, yamllint, ansible-lint (pyproject.toml)
85-
pbr==6.1.1 # via bindep
85+
pbr==7.0.0 # via bindep
8686
pexpect==4.9.0 # via ipython
8787
pillow==11.3.0 # via cairosvg, mkdocs-ansible
8888
platformdirs==4.3.8 # via black, mkdocs-get-deps, pylint, tox, virtualenv, ansible-lint (pyproject.toml)
@@ -93,8 +93,8 @@ ptyprocess==0.7.0 # via pexpect
9393
pure-eval==0.2.3 # via stack-data
9494
pycparser==2.22 # via cffi, ansible-lint (pyproject.toml)
9595
pygments==2.19.2 # via ipython, mkdocs-material, pytest
96-
pylint==3.3.7 # via ansible-lint (pyproject.toml)
97-
pymdown-extensions==10.16 # via markdown-exec, mkdocs-ansible, mkdocs-material, mkdocstrings
96+
pylint==3.3.8 # via ansible-lint (pyproject.toml)
97+
pymdown-extensions==10.16.1 # via markdown-exec, mkdocs-ansible, mkdocs-material, mkdocstrings
9898
pyproject-api==1.9.1 # via tox
9999
pytest==8.4.1 # via pytest-instafail, pytest-mock, pytest-plus, pytest-sugar, pytest-xdist, ansible-lint (pyproject.toml)
100100
pytest-instafail==0.5.0 # via ansible-lint (pyproject.toml)
@@ -107,7 +107,7 @@ pyyaml==6.0.2 # via ansible-compat, ansible-core, ansible-creator, m
107107
pyyaml-env-tag==1.1 # via mkdocs
108108
referencing==0.36.2 # via jsonschema, jsonschema-specifications, types-jsonschema, ansible-lint (pyproject.toml)
109109
requests==2.32.4 # via linkchecker, mkdocs-htmlproofer-plugin, mkdocs-material
110-
rpds-py==0.26.0 # via jsonschema, referencing, ansible-lint (pyproject.toml)
110+
rpds-py==0.27.0 # via jsonschema, referencing, ansible-lint (pyproject.toml)
111111
ruamel-yaml==0.18.14 # via ansible-lint (pyproject.toml)
112112
setproctitle==1.3.6 # via pytest-xdist
113113
setuptools==80.9.0 # via pbr
@@ -120,14 +120,14 @@ super-collections==0.5.3 # via mkdocs-macros-plugin
120120
termcolor==3.1.0 # via mkdocs-macros-plugin, pytest-sugar
121121
tinycss2==1.4.0 # via cairosvg, cssselect2
122122
tomlkit==0.13.3 # via pylint
123-
tox==4.27.0 # via tox-extra, tox-uv, ansible-lint (pyproject.toml)
123+
tox==4.28.4 # via tox-extra, tox-uv, ansible-lint (pyproject.toml)
124124
tox-extra==2.2.0 # via ansible-lint (pyproject.toml)
125-
tox-uv==1.26.1 # via tox-extra, ansible-lint (pyproject.toml)
125+
tox-uv==1.27.0 # via tox-extra, ansible-lint (pyproject.toml)
126126
traitlets==5.14.3 # via ipython, matplotlib-inline
127-
types-jsonschema==4.24.0.20250528 # via ansible-lint (pyproject.toml)
128-
types-pyyaml==6.0.12.20250516 # via ansible-lint (pyproject.toml)
127+
types-jsonschema==4.25.0.20250809 # via ansible-lint (pyproject.toml)
128+
types-pyyaml==6.0.12.20250809 # via ansible-lint (pyproject.toml)
129129
urllib3==2.5.0 # via requests
130-
virtualenv==20.32.0 # via tox
130+
virtualenv==20.34.0 # via tox
131131
watchdog==6.0.0 # via mkdocs
132132
wcmatch==10.1 # via ansible-lint (pyproject.toml)
133133
wcwidth==0.2.13 # via prompt-toolkit

.config/requirements-lock.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# This file was autogenerated by uv via the following command:
22
# tox run -e deps
3-
ansible-compat==25.6.0 # via ansible-lint (pyproject.toml)
3+
ansible-compat==25.8.0 # via ansible-lint (pyproject.toml)
44
attrs==25.3.0 # via jsonschema, referencing
55
black==25.1.0 # via ansible-lint (pyproject.toml)
66
bracex==2.6 # via wcmatch
77
cffi==1.17.1 # via cryptography
88
click==8.2.1 # via black
9-
cryptography==45.0.5 # via ansible-core
9+
cryptography==45.0.6 # via ansible-core
1010
filelock==3.18.0 # via ansible-lint (pyproject.toml)
1111
importlib-metadata==8.7.0 # via ansible-lint (pyproject.toml)
1212
jinja2==3.1.6 # via ansible-core
13-
jsonschema==4.24.0 # via ansible-compat, ansible-lint (pyproject.toml)
13+
jsonschema==4.25.0 # via ansible-compat, ansible-lint (pyproject.toml)
1414
jsonschema-specifications==2025.4.1 # via jsonschema
1515
markupsafe==3.0.2 # via jinja2
1616
mypy-extensions==1.1.0 # via black
@@ -20,7 +20,7 @@ platformdirs==4.3.8 # via black
2020
pycparser==2.22 # via cffi
2121
pyyaml==6.0.2 # via ansible-compat, ansible-core, yamllint, ansible-lint (pyproject.toml)
2222
referencing==0.36.2 # via jsonschema, jsonschema-specifications, ansible-lint (pyproject.toml)
23-
rpds-py==0.26.0 # via jsonschema, referencing
23+
rpds-py==0.27.0 # via jsonschema, referencing
2424
ruamel-yaml==0.18.14 # via ansible-lint (pyproject.toml)
2525
subprocess-tee==0.4.2 # via ansible-compat, ansible-lint (pyproject.toml)
2626
wcmatch==10.1 # via ansible-lint (pyproject.toml)

.config/requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Special order section for helping pip:
22
ansible-core>=2.16.11 # GPLv3
3-
ansible-compat>=25.1.5 # GPLv3
3+
ansible-compat>=25.8.0 # GPLv3
44
# alphabetically sorted:
55
black>=24.3.0 # MIT (security)
66
filelock>=3.8.2 # The Unlicense

.github/lower-constraints.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# automatically updated by dependabot. This should be kept in sync with
33
# minimal requirements configured inside .config/requirements.in
44
ansible-core==2.16.11
5-
ansible-compat==25.1.5 # GPLv3
5+
ansible-compat==25.8.0 # GPLv3
66
black==24.3.0 # MIT (security)
77
filelock==3.16.1 # The Unlicense # due to tox-uv
88
jsonschema==4.10.0 # MIT, version needed for improved errors

.github/workflows/tox.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
hook
4141
docs
4242
pre
43-
py311-devel
43+
py312-devel
4444
py310-lower
4545
py312-lower
4646
py313-devel

.pre-commit-config.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ repos:
6161
6262
6363
- repo: https://github.com/streetsidesoftware/cspell-cli
64-
rev: v9.0.1
64+
rev: v9.2.0
6565
hooks:
6666
- id: cspell
6767
entry: bash
@@ -79,7 +79,7 @@ repos:
7979
hooks:
8080
- id: check-github-workflows
8181
- repo: https://github.com/pre-commit/pre-commit-hooks.git
82-
rev: v5.0.0
82+
rev: v6.0.0
8383
hooks:
8484
- id: check-added-large-files
8585
- id: check-merge-conflict
@@ -147,26 +147,26 @@ repos:
147147
alias: toml
148148

149149
- repo: https://github.com/tox-dev/tox-ini-fmt
150-
rev: 1.5.0
150+
rev: 1.6.0
151151
hooks:
152152
- id: tox-ini-fmt
153153

154154
- repo: https://github.com/astral-sh/ruff-pre-commit
155-
rev: v0.12.2
155+
rev: v0.12.8
156156
hooks:
157157
- id: ruff-format
158158
alias: ruff
159159
- id: ruff-check
160160
alias: ruff
161161
- repo: https://github.com/pre-commit/mirrors-mypy
162-
rev: v1.16.1
162+
rev: v1.17.1
163163
hooks:
164164
- id: mypy
165165
# "." and pass_files are used to make pre-commit mypy behave the same as standalone mypy
166166
args: ["."]
167167
pass_filenames: false
168168
additional_dependencies: &deps
169-
- ansible-compat>=25.1.5
169+
- ansible-compat>=25.8.0
170170
- black>=22.10.0
171171
- cryptography>=39.0.1
172172
- filelock>=3.12.2
@@ -185,12 +185,12 @@ repos:
185185
- wcmatch
186186
- yamllint>=1.34.0
187187
- repo: https://github.com/RobertCraigie/pyright-python
188-
rev: v1.1.402
188+
rev: v1.1.403
189189
hooks:
190190
- id: pyright
191191
additional_dependencies: *deps
192192
- repo: https://github.com/pycqa/pylint
193-
rev: v3.3.7
193+
rev: v3.3.8
194194
hooks:
195195
- id: pylint
196196
args:

src/ansiblelint/app.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,4 +428,7 @@ def get_app(*, offline: bool | None = None, cached: bool = False) -> App:
428428
role_name_check=role_name_check,
429429
)
430430

431+
# Enable plugin loader now that collections are installed
432+
app.runtime.enable_plugin_loader()
433+
431434
return app

src/ansiblelint/runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
from ansiblelint.text import strip_ansi_escape
4343
from ansiblelint.types import ( # pyright: ignore[reportAttributeAccessIssue]
4444
AnsibleJSON,
45-
AnsibleMapping,
45+
AnsibleMapping, # pyright: ignore[reportAttributeAccessIssue]
4646
)
4747
from ansiblelint.utils import (
4848
PLAYBOOK_DIR,

src/ansiblelint/schemas/galaxy.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858
"Artistic-1.0-Perl",
5959
"Artistic-1.0-cl8",
6060
"Artistic-2.0",
61+
"Artistic-dist",
62+
"Aspell-RU",
6163
"Asterisk-exception",
6264
"Asterisk-linking-protocols-exception",
6365
"Autoconf-exception-2.0",
@@ -71,6 +73,7 @@
7173
"BSD-2-Clause-Patent",
7274
"BSD-2-Clause-Views",
7375
"BSD-2-Clause-first-lines",
76+
"BSD-2-Clause-pkgconf-disclaimer",
7477
"BSD-3-Clause",
7578
"BSD-3-Clause-Attribution",
7679
"BSD-3-Clause-Clear",
@@ -217,6 +220,7 @@
217220
"Cornell-Lossless-JPEG",
218221
"Cronyx",
219222
"Crossword",
223+
"CryptoSwift",
220224
"CrystalStacker",
221225
"Cube",
222226
"D-FSL-1.0",
@@ -228,6 +232,8 @@
228232
"DRL-1.1",
229233
"DSDP",
230234
"DigiRule-FOSS-exception",
235+
"Digia-Qt-LGPL-exception-1.1",
236+
"DocBook-DTD",
231237
"DocBook-Schema",
232238
"DocBook-Stylesheet",
233239
"DocBook-XML",
@@ -254,7 +260,10 @@
254260
"FSFAP-no-warranty-disclaimer",
255261
"FSFUL",
256262
"FSFULLR",
263+
"FSFULLRSD",
257264
"FSFULLRWD",
265+
"FSL-1.1-ALv2",
266+
"FSL-1.1-MIT",
258267
"FTL",
259268
"Fair",
260269
"Fawkes-Runtime-exception",
@@ -305,12 +314,14 @@
305314
"GPL-CC-1.0",
306315
"GStreamer-exception-2005",
307316
"GStreamer-exception-2008",
317+
"Game-Programming-Gems",
308318
"Giftware",
309319
"Glide",
310320
"Glulxe",
311321
"Gmsh-exception",
312322
"Graphics-Gems",
313323
"Gutmann",
324+
"HDF5",
314325
"HIDAPI",
315326
"HP-1986",
316327
"HP-1989",
@@ -464,6 +475,7 @@
464475
"NPL-1.1",
465476
"NPOSL-3.0",
466477
"NRL",
478+
"NTIA-PD",
467479
"NTP",
468480
"NTP-0",
469481
"Naumen",
@@ -579,11 +591,13 @@
579591
"SMLNJ",
580592
"SMPPL",
581593
"SNIA",
594+
"SOFA",
582595
"SPL-1.0",
583596
"SSH-OpenSSH",
584597
"SSH-short",
585598
"SSLeay-standalone",
586599
"SSPL-1.0",
600+
"SUL-1.0",
587601
"SWI-exception",
588602
"SWL",
589603
"Saxpath",
@@ -634,6 +648,8 @@
634648
"Universal-FOSS-exception-1.0",
635649
"UnixCrypt",
636650
"Unlicense",
651+
"Unlicense-libtelnet",
652+
"Unlicense-libwhirlpool",
637653
"VOSTROM",
638654
"VSL-1.0",
639655
"Vim",
@@ -696,6 +712,8 @@
696712
"hdparm",
697713
"i2p-gpl-java-exception",
698714
"iMatix",
715+
"jove",
716+
"libpng-1.6.35",
699717
"libpng-2.0",
700718
"libpri-OpenH323-exception",
701719
"libselinux-1.0",
@@ -704,15 +722,18 @@
704722
"lsof",
705723
"magaz",
706724
"mailprio",
725+
"man2html",
707726
"metamail",
708727
"mif-exception",
709728
"mpi-permissive",
710729
"mpich2",
711730
"mplus",
712731
"mxml-exception",
732+
"ngrep",
713733
"openvpn-openssl-exception",
714734
"pkgconf",
715735
"pnmstitch",
736+
"polyparse-exception",
716737
"psfrag",
717738
"psutils",
718739
"python-ldap",

test/schemas/negative_test/changelogs/invalid-date/changelogs/changelog.yaml.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ stdout:
2525
"errors": [
2626
{
2727
"filename": "negative_test/changelogs/invalid-date/changelogs/changelog.yaml",
28-
"path": "$.releases.1.0.0.release_date",
28+
"path": "$.releases['1.0.0'].release_date",
2929
"message": "'01-01-2020' is not a 'date'",
3030
"has_sub_errors": false
3131
},
3232
{
3333
"filename": "negative_test/changelogs/invalid-date/changelogs/changelog.yaml",
34-
"path": "$.releases.1.0.0.release_date",
34+
"path": "$.releases['1.0.0'].release_date",
3535
"message": "'01-01-2020' does not match '\\\\d\\\\d\\\\d\\\\d-\\\\d\\\\d-\\\\d\\\\d'",
3636
"has_sub_errors": false
3737
}

0 commit comments

Comments
 (0)