Bump the all-pip-updates group across 3 directories with 76 updates#69393
Bump the all-pip-updates group across 3 directories with 76 updates#69393dependabot[bot] wants to merge 11 commits into
Conversation
|
@copilot fix |
1 similar comment
|
@copilot fix |
|
@copilot fix |
|
@copilot fix |
1 similar comment
|
@copilot fix |
|
Prepare Workflow Run fails with Proper fix in #69395 (adds |
|
Pushed the missing |
After dependabot bumped the constraint to 'pip == 26.0.1' (PR #69393), the onedir-dependencies step that installs the urllib3-CVE-patched pip 25.2 wheel fails with ResolutionImpossible: The user requested pip 25.2 (from .../pip-25.2-py3-none-any.whl) The user requested (constraint) pip==26.0.1 The patched wheel must be installed at exactly the bundled version because the unified-diff patches in pkg/patches/pip-urllib3/ target pip 25.2's vendored urllib3 1.26.20. Drop PIP_CONSTRAINT for this single --force-reinstall --no-deps call; the constraint still applies to the subsequent requirements install. Also use shutil.rmtree(onexc=) on Python 3.12+ to clear a deprecated-argument warning from the newer pylint that the lint pre-commit hook pulls in.
|
The earlier Pre-Commit / NSIS / macOS-arm64 reds on run 27120576558 were CDN timeouts ( The Windows / macOS-arm64 Build Salt Onedir failures are real: dependabot bumped The patched wheel must stay at 25.2 because the unified-diff patches in |
|
Pushed Real failures fixed:
Infra flakes / not real:
Still red, maintainer attention needed:
|
|
Pushed
|
|
Lint Salt's Source Code passed on Cause is the dependabot Pushed Pre-Commit was still pending on the previous run; the new run includes both fixes. |
|
Pushed 1. pytest 9 vs
|
--- updated-dependencies: - dependency-name: build dependency-version: 1.4.4 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: wheel dependency-version: 0.47.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pip dependency-version: 26.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-pip-updates - dependency-name: pycryptodomex dependency-version: 3.23.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: mock dependency-version: 5.2.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pytest dependency-version: 8.4.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pytest-salt-factories dependency-version: 1.0.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pytest-helpers-namespace dependency-version: 2021.12.29 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pytest-timeout dependency-version: 2.4.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: more-itertools dependency-version: 10.8.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pyzmq dependency-version: 27.1.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: certifi dependency-version: 2026.5.20 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cheroot dependency-version: 11.1.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cherrypy dependency-version: 18.10.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: croniter dependency-version: 6.2.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cryptography dependency-version: 48.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: distro dependency-version: 1.9.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: frozenlist dependency-version: 1.8.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: jaraco-functools dependency-version: 4.4.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: jaraco-context dependency-version: 6.1.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: jaraco-text dependency-version: 4.2.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: jinja2 dependency-version: 3.1.6 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: lxml dependency-version: 6.1.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: markupsafe dependency-version: 3.0.3 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: msgpack dependency-version: 1.1.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: packaging dependency-version: '26.2' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-pip-updates - dependency-name: pymssql dependency-version: 2.3.13 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-pip-updates - dependency-name: pymysql dependency-version: 1.2.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pyopenssl dependency-version: 26.2.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-dateutil dependency-version: 2.9.0.post0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-gnupg dependency-version: 0.5.6 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pythonnet dependency-version: 3.0.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pywin32 dependency-version: '312' dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: requests dependency-version: 2.32.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: setproctitle dependency-version: 1.3.7 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: urllib3 dependency-version: 2.6.3 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: xmltodict dependency-version: 1.0.4 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: zipp dependency-version: 3.23.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: idna dependency-version: '3.18' dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pycparser dependency-version: '2.23' dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: aiohttp dependency-version: 3.14.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cffi dependency-version: 2.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cherrypy dependency-version: 18.10.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cryptography dependency-version: 48.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: gitpython dependency-version: 3.1.50 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: markupsafe dependency-version: 3.0.3 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pymysql dependency-version: 1.2.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: virtualenv dependency-version: 21.4.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: apache-libcloud dependency-version: 3.9.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pywinrm dependency-version: 0.5.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-tools-scripts dependency-version: 0.20.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: boto3 dependency-version: 1.43.24 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pygit2 dependency-version: 1.19.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: ansible dependency-version: 14.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: twilio dependency-version: 9.10.9 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-telegram-bot dependency-version: '22.7' dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: mercurial dependency-version: 7.2.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pylint dependency-version: 4.0.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: saltpylint dependency-version: 2024.2.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: boto dependency-version: 2.49.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: filelock dependency-version: 3.29.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: keyring dependency-version: 25.7.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-pip-updates - dependency-name: kubernetes dependency-version: 36.0.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: libnacl dependency-version: 2.1.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: moto dependency-version: 5.2.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: paramiko dependency-version: 5.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pynacl dependency-version: 1.6.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-etcd dependency-version: 0.4.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: sqlparse dependency-version: 0.5.5 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: vcert dependency-version: 0.18.1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: watchdog dependency-version: 6.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: websocket-client dependency-version: 1.9.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: werkzeug dependency-version: 3.1.8 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: xmldiff dependency-version: 2.7.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: genshi dependency-version: 0.7.11 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cheetah3 dependency-version: 3.2.6.post1 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: sphinx dependency-version: 9.1.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: sphinxcontrib-httpdomain dependency-version: 2.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: towncrier dependency-version: 25.8.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-pip-updates - dependency-name: importlib-metadata dependency-version: 9.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: more-itertools dependency-version: 11.1.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cheroot dependency-version: 11.1.2 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cherrypy dependency-version: 18.10.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: cryptography dependency-version: 48.0.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: distro dependency-version: 1.9.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pyopenssl dependency-version: 26.2.0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-dateutil dependency-version: 2.9.0.post0 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: python-gnupg dependency-version: 0.5.6 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: setproctitle dependency-version: 1.3.7 dependency-type: direct:production dependency-group: all-pip-updates - dependency-name: pycparser dependency-version: '3.0' dependency-type: direct:production dependency-group: all-pip-updates ... Signed-off-by: dependabot[bot] <support@github.com>
The previous 'Fix rich MarkupError when rendering dependabot PR body' commit added escape() calls in workflow_config without importing the function, so Prepare Workflow Run failed with NameError. Add the missing 'from rich.markup import escape' import.
After dependabot bumped the constraint to 'pip == 26.0.1' (PR #69393), the onedir-dependencies step that installs the urllib3-CVE-patched pip 25.2 wheel fails with ResolutionImpossible: The user requested pip 25.2 (from .../pip-25.2-py3-none-any.whl) The user requested (constraint) pip==26.0.1 The patched wheel must be installed at exactly the bundled version because the unified-diff patches in pkg/patches/pip-urllib3/ target pip 25.2's vendored urllib3 1.26.20. Drop PIP_CONSTRAINT for this single --force-reinstall --no-deps call; the constraint still applies to the subsequent requirements install. Also use shutil.rmtree(onexc=) on Python 3.12+ to clear a deprecated-argument warning from the newer pylint that the lint pre-commit hook pulls in.
The dependabot batch raised many requirements floors that drop support
for Python 3.9, 3.10, or 3.11, causing pre-commit pip-compile hooks
to fail with ResolutionImpossible. Add per-Python upper bounds for
the affected packages so each version stream picks a release that
still supports the targeted Python.
base.txt + static/ci/common.txt + static/pkg/{linux,freebsd}.txt:
cryptography cap <48.0.0 for py<3.10 (needs >3.9.1)
aiohttp cap <3.14.0 for py<3.10 (3.14 needs py>=3.10)
apache-libcloud cap <3.9.1 for py<3.10
boto3 drop py<3.10 pin (transitively pulls urllib3 1.26
chain incompatible with Salt's
urllib3 2.6)
importlib-metadata cap <9.0.0 for py<3.10
kubernetes cap <36.0.0 for py<3.10
more-itertools cap <11.0.0 for py<3.10
moto cap <5.2.0 for py<3.10
pycparser cap <3.0 for py<3.10
pygit2 cap <1.18.0 for py<3.11
python-telegram-bot cap <22.0 for py<3.10
sphinx cap <9.0.0 for py<3.12
sphinxcontrib-httpdomain cap <2.0 for py<3.10
base.txt:
PyYAML bump floor to 6.0.3 (kubernetes 36 needs it)
filelock pin >=3.29.1 for py>=3.10 (uv resolver otherwise
picks 3.25 here)
pymssql cap <2.3.12 — 2.3.13 has no win32 wheels
virtualenv bump floor to 21.4.2 to match CI common.txt
static/ci/common.txt:
vcert revert to ~=0.9.0 — 0.18.x hard-pins
cryptography==45.0.7 and pynacl==1.5.0 which
conflict with everything else
pynacl unpin
static/ci/linux.txt:
ansible map per-Python release line (10.x / 12.x / 14.x)
tools/pkg/build.py:
Drop PIP_CONSTRAINT for the pip-download and force-reinstall of
the urllib3-CVE-patched pip 25.2 wheel; constraint pins pip
26.0.1 which made pip refuse the requested 25.2 install.
Use shutil.rmtree(onexc=) via **kwargs on Python 3.12+ so newer
pylint and the CI pylint 3.1.0 both stop complaining.
py3.9 ZeroMQ / Cloud / Lint hooks and Docs (3.10-3.14) hooks are
SKIPped in this commit because the residual py3.9 conflicts and the
docs lock chains need maintainer attention (botocore <-> urllib3 2.x,
moto <-> botocore, myst-docutils <-> markdown-it-py). CI will exercise
those paths and report them.
…for py3.10 Three follow-ups that the previous floor sweep did not catch: 1. pylint ~=4.0.5 was a major-version dependabot bump that enables a raft of new default-on checks (E0606 possibly-used-before-assignment, E0601 used-before-assignment, E0602 undefined-variable in extra branches). Salt 3006.x's source has dozens of pre-existing occurrences that the 3.1 line tolerated; bumping to 4.x turns them into hard CI failures across salt/, tools/, and tests/. Cap to ~=3.1.0 until the codebase is audited. 2. urllib3 >= 2.6.3 for py < 3.10 was a dependabot bump that broke the entire py3.9 pip-compile chain: botocore on py3.9 hard requires urllib3 < 2, so the py3.9 ZeroMQ / Cloud / Lint hooks all hit ResolutionImpossible. Restore the previous urllib3 >= 1.26.20, < 2.0.0 floor for py3.9 (Salt 3006.x still builds py3.9 onedirs; 1.26.20 already carries the relevant urllib3 fixes for that line). 3. Docs CI Py3.10 lock chain: myst-docutils 4.x is the latest line supporting Python 3.10 and it pins markdown-it-py ~=3.0; the ci/linux.lock would otherwise resolve markdown-it-py to 4.2.0 (latest, pulled in transitively via rich). Cap markdown-it-py < 4.0.0 for py3.10 only in requirements/constraints.txt, mirroring the existing < 3.0.0 cap for py3.9. After these changes, pre-commit run pip-compile --all-files passes cleanly across every hook (no SKIP needed). Lock files regenerated.
dependabot bumped keyring 5.7.1 -> 25.7.0 which: - made KeyringBackend.priority a required abstract property - tightened the cooperative __init__ chain This left tests/pytests/unit/utils/test_cloud.py:CustomKeyring with two new pylint warnings (W0223 abstract-method, W0231 super-init-not-called) that the Lint / Lint Salt's Test Suite job now treats as failures. Add the priority class attribute and the super().__init__() call so the test backend is a concrete KeyringBackend subclass under both the old and new keyring API.
Three independent breakages introduced by the dependabot bumps to
pytest (>=8.4.2, resolving 9.0.3) and virtualenv (>=21.4.2):
1. salt/ext/tornado/testing.py:AsyncTestCase.__init__ unconditionally
did setattr(self, methodName, _TestMethodWrapper(getattr(self,
methodName))) for the 'runTest' default. unittest.TestCase treats
'runTest' as a no-op sentinel and does not require it to exist, but
the vendored AsyncTestCase did. pytest 9 (commit
_pytest/unittest.py:newinstance) now instantiates a dummy TestCase
with methodName='runTest' during collection for every test class,
triggering AttributeError on every salt.ext.tornado-derived test
class and blocking all Test Salt unit / integration buckets.
Fix: only wrap when the named method exists, mirroring stdlib's
handling of 'runTest'. Real test method names continue to be
wrapped the same way as before so pytest 8 behavior is unchanged.
2. tests/pytests/scenarios/compat/test_with_versions.py applied
@pytest.mark.skip_if_binaries_missing('docker') and
@pytest.mark.skip_on_fips_enabled_platform to fixtures. pytest 9
turns PytestRemovedIn9Warning 'Marks applied to fixtures have no
effect' into a collection error. Both marks are redundant with
the module-level pytestmark / test-level decorators already in
place; removing them keeps existing skip behavior on every
supported pytest version.
3. tools/pkg/build.py salt_onedir() copies the urllib3-CVE-patched
pip wheel into the virtualenv embed directory and rewrites
BUNDLE_SUPPORT in the embed __init__.py. virtualenv 21 added a
BUNDLE_SHA256 verification step that refuses any embedded wheel
missing a recorded sha256, so seed-from-embedded-wheels fails with
'bundled wheel pip-25.2-py3-none-any.whl has no recorded sha256 in
BUNDLE_SHA256' and every functional pip test errors at
virtualenv-creation time.
Fix: rewrite BUNDLE_SHA256 to contain the on-disk hashes of the
wheels actually present in the embed directory. The replacement is
guarded by 'if "BUNDLE_SHA256" in content:' so virtualenv 20.x
(no BUNDLE_SHA256 dict) is unchanged.
Resolves merge-conflict residue from rebasing the dependabot bumps and my floor caps on top of the new 3006.x base (which added a tzdata; sys_platform == 'win32' entry to requirements/base.txt and re-flowed the affected lock files). Running pre-commit run pip-compile --all-files converges in two iterations; this commit captures the resulting lock content for the five files where the rebase conflict resolution had to pick one side.
|
Rebased onto current Conflicts encountered + resolutions:
Commit graph after rebase: No |
…re packaging 24.0
Four real failures surfaced by the rebased dependabot bumps, each
fixed range-tolerant so the code still works on the older library
version that 3006.x has shipped with:
* tests/unit/states/test_pip_state.py::test_install_requirements_parsing
pip 26 raises pip._internal.exceptions.InvalidEggFragment (a
DiagnosticPipError, NOT a subclass of InstallationError) when a URL
fragment like "#egg=SaltTesting>=0.5.1" carries a version specifier.
Older pip accepted the spec and produced an InstallRequirement whose
.req was None. salt/states/pip_state.py:_check_pkg_version_format()
caught (ValueError, InstallationError), so InvalidEggFragment leaked
out as a state failure. Add a try-import for InvalidEggFragment and
catch it as a separate clause that mirrors the legacy
install_req.req-is-None URL fallback path. The catch tuple is empty
on older pip releases so the existing behavior is unchanged.
* tests/pytests/unit/beacons/test_cert_info.py::test_cert_information
pyOpenSSL 26.2 removed X509.get_extension() entirely (only the
changelog explicitly lists X509.add_extension/get_extensions, but
get_extension/get_extension_count went too). salt/beacons/cert_info.py
hit AttributeError on every cert it processed.
Detect the missing method (hasattr(cert, 'get_extension')) and fall
back to cert.to_cryptography().extensions when pyOpenSSL no longer
ships it. Added a small _format_extension_value() helper that emits
OpenSSL-style strings ("CA:FALSE", "DNS:foo, IP:1.2.3.4") so the
beacon's output payload stays byte-for-byte identical to the legacy
path on the BasicConstraints / SubjectAlternativeName extensions the
test (and historical consumers) care about. Verified locally with
the get_extension attribute monkeypatched off.
* tests/pytests/unit/utils/test_x509.py::test_parse_general_names[
inpt27-...] idna 3.18 changed the rejection message for U+200C
joiner-context violations from
"Joiner U+200C not allowed at position 9 in '...'"
to
"Unknown codepoint adjacent to joiner U+200C at position 9 in
'...'"
Loosen the test regex to match the U+200C-at-position-9 substring so
it works against both old and new idna.
* tests/integration/cli/test_custom_module.py::SSHCustomModuleTest::*
Salt-ssh sends its thin tarball + py3 deps to the target host. With
packaging>=24.1, the version helper uses
"from __future__ import annotations"; with packaging 26.x it also
uses positional-only "/" parameter syntax. Both are SyntaxErrors on
Amazon Linux 2's stock Python 3.7. The base.txt comment already
warned against bumping past 24.0 for this exact reason; dependabot
bumped it to 26.2 anyway. Restore the 24.0 pin and expand the
comment. Lock files regenerated.
Out-of-scope but flagged in the PR comment:
* Build Source Packages / RPM (arm64) — pyzmq 27's scikit-build-core
backend tries to build cmake from source on aarch64 RPM; the build
container is missing kernel headers needed for pid_t. Maintainer
issue (CI container).
* Test Package / * upgrade — installs salt 3008.0 (Argon) from a
system repository, then asserts version matches 3006.25+...; same
pre-existing salt-internal CI orchestration bug seen on every run.
* tests/pytests/functional/states/file/test_managed.py::test_issue_60203
Network-dependent flaky test (uses a non-resolving host); error
message reaches a different salt code path on different DNS results.
|
Pushed 1. pip 26 vs
|
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditions