Skip to content

fix(deps): update minor and patch updates - #176

Merged
lervag merged 1 commit into
masterfrom
renovate/minor-and-patch-updates
Oct 30, 2026
Merged

lervag merged 1 commit into
masterfrom
renovate/minor-and-patch-updates

Conversation

@renovate

@renovate renovate Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending Age Confidence
astral-sh/setup-uv action minor v10.2.0 → v10.3.0 v10.3.3 (+2) age confidence
jdx/mise-action action minor v5.1.1 → v5.2.0 v5.2.4 (+3) age confidence
markdown (changelog) project.dependencies patch ==3.11 → ==3.11.1 3.11.2 age confidence
pyrefly dependency-groups minor ==1.3.2 → ==1.4.0 age confidence
ruff (source, changelog) dependency-groups minor ==0.16.10 → ==0.17.1 0.17.3 (+1) age confidence
uv tools minor 0.12.24 → 0.13.1 0.13.6 (+4) age confidence

Release Notes

astral-sh/setup-uv

v10.3.0: 🌈 Add Python architecture selection

Compare Source

Changes

This release adds the python-arch input to select a Python architecture independently of the Python version. With uv 0.13.0 or later, set python-arch: x86_64 to use x64 Python on Windows ARM64 runners.

It also includes embedded checksums for uv releases through 0.13.0.

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

jdx/mise-action

v5.2.0: : Periodic cache rebuilds, signed packslip verification, and monorepo installs

Compare Source

The default cache key now rolls over every 30 days, so long-lived caches pick up newer mise releases. The action also checks the downloaded mise binary against the release's signed packslip, and it runs mise install --monorepo automatically in monorepos. Existing caches miss once after you upgrade, because the default cache key format has changed.

Added
  • The cache is rebuilt every 30 days by default. GitHub never evicts a cache that keeps getting hits. Before this release, an active repo could keep the same mise binary and tools for months, until a config file changed. The default cache key now includes a period suffix (-p<N>), so the cache is rebuilt from scratch at least once per period. All repos roll over on the same calendar boundary. Use the new cache_max_age_days input to change the period, or set it to 0 to keep the old key that never expires. Custom cache_key templates can use the new {{cache_period}} variable, which {{default}} already includes. A custom key that doesn't use it behaves as before. On self-hosted runners that keep mise data between runs, you may also need auto_update: true to pick up a newer mise. (#​689 by @​jdx, fixes #​688)
    - uses: jdx/mise-action@v5
      with:
        cache_max_age_days: 14 # default 30; 0 disables periodic rebuilds
  • Throttled cache restores and saves can be retried. Before this release, when GitHub's cache service returned HTTP 429, the action gave up right away: a restore counted as a miss and a save was skipped. The new cache_restore_retry_budget and cache_save_retry_budget inputs set how long the action may wait. Each retry waits for the Retry-After value plus some random jitter. Once the budget runs out, the action falls back to the old behavior. Retries apply to the main cache, the post-step save and the binary cache. Real cache misses and reservation conflicts are never retried. Both budgets default to 0s (no retries). @actions/cache doesn't report 429 errors directly, so the action detects throttling from its warning messages. If those messages change in a future @actions/cache release, throttling won't be detected and nothing will be retried. (#​692 by @​jdx, fixes #​691)
    - uses: jdx/mise-action@v5
      with:
        cache_restore_retry_budget: 60s
        cache_save_retry_budget: 120s
  • The latest mise binary can fall back to a second download source. When the action downloads the latest mise version, it can fall back between GitHub and mise.jdx.dev if the first source fails. The fetch_from_github setting decides which source it tries first. Pinned versions and minimum_release_age installs are only downloaded from GitHub. The binary is still checked against the signed checksums for the resolved version, whichever source it came from. (#​692 by @​jdx)
  • The mise binary is checked against its signed packslip. If a mise release includes packslip.sigstore.json, the action checks the downloaded binary against it. The bundle must be signed by mise's release workflow for that exact tag. After a successful check, the log shows Verified <asset> against the signed packslip. If the check fails, the install stops instead of falling back to a weaker check. Releases without a packslip use the existing minisign and SHASUMS256 check. An explicit sha256 input still takes precedence. (#​693 by @​jdx)
  • Monorepo-aware installs. If your mise config sets [monorepo].config_roots, the action now adds --monorepo to mise install, so tools configured anywhere in the monorepo get installed. Repos without that setting aren't affected. To opt out, set monorepo: false. (#​679 by @​zeitlinger)
Fixed
  • Tool directories that mise moves to the front of PATH are now exported. The action used to find mise's PATH changes by comparing mise's PATH with the runner's. If a tool's bin directory was already on the runner's PATH, such as ~/.cargo/bin, mise only moved it to the front, so the action didn't export it. Later steps then found the mise shim first. For example, rustup resolved to the shim instead of ~/.cargo/bin/rustup. The action now asks mise for its entries with mise env --paths and exports them in the order mise reports. This fix needs a mise version that supports --paths. With older versions, the action uses the old comparison. (#​685 by @​jdx)
Documentation
  • The new "Release workflows" section of the README says that jobs that publish releases shouldn't restore caches. A lower-trust workflow that can write to default-branch caches could otherwise slip files into a release. In those jobs, use cache: false or GitHub's cache-mode: none. (#​682 by @​jdx)
  • The README explains how to cache mise's downloads, keyed on mise.lock, instead of installed tools. It includes a Windows example that sets MISE_CACHE_DIR from ${{ runner.temp }}, because actions/cache doesn't expand %TEMP%. (#​686, #​690 by @​zeitlinger)
Breaking Changes
  • The default cache key has a new format, so the first run after upgrading is a cache miss and saves a fresh cache. After that, the cache is rebuilt every 30 days by default. To keep the old cache key that never expires, set cache_max_age_days: 0. Workflows that set a custom cache_key without {{default}} or {{cache_period}} aren't affected.

Full Changelog: jdx/mise-action@v5.1.2...v5.2.0

v5.1.2: : mise_dir now sets MISE_DATA_DIR; auto_update handles a locked mise binary

Compare Source

The mise_dir input now also sets where mise installs tools, so those tools end up in the cache. With auto_update: true, the action no longer crashes on Windows when the mise binary is still in use.

Fixed
  • mise_dir now exports MISE_DATA_DIR. Before this release, mise_dir moved the mise binary and the cache path, but mise kept installing tools to ~/.local/share/mise. The saved cache didn't include the tools. On runners where ~/.local isn't writable, the step failed with EACCES: permission denied. When mise_dir is set, the action now exports MISE_DATA_DIR=<mise_dir>, so tools are installed into the directory that gets cached. If your workflow sets a different MISE_DATA_DIR, the mise_dir input overrides it. If mise_dir isn't set, nothing changes. mise's state directory (~/.local/state/mise) stays where it is. If that path also can't be written, set MISE_STATE_DIR yourself. (#​672 by @​jdx, fixes #​668)
    - uses: jdx/mise-action@v5
      with:
        mise_dir: ${{ runner.tool_cache }}/mise/data
  • auto_update no longer crashes when it can't replace mise.exe. On Windows, the step used to fail with a bare EPERM: operation not permitted, unlink '…\mise.exe' if another process was still using the binary. Now, if version isn't pinned and the existing binary passes verification against its recorded version, the action prints a warning and continues with that version. In any other case, the step fails with a message that says the file is in use and how to fix it. A pinned version never quietly keeps an older binary. (#​665 by @​jdx, fixes #​664)
Documentation
  • The README explains how to use mise's MISE_ENABLE_TOOLS setting as a job-level allowlist. Unlike install_args, the allowlist applies to the action's install and to later mise commands. If jobs use different allowlists, add the value to a custom cache_key. (#​667 by @​zeitlinger)
  • The Rust cache section is updated for mise 2026.9.2 and later, where mise install repairs a restored toolchain instead of leaving rustfmt missing. Swatinem/rust-cache now works alongside mise-managed Rust. (#​670 by @​jdx)

Full Changelog: jdx/mise-action@v5.1.1...v5.1.2

Python-Markdown/markdown (markdown)

v3.11.1

Compare Source

Fixed
  • Update serializer to be non-recursive (#​1644).
  • Improve ancestor handling in the inline Treeprocessor (#​1646).
  • Keep a raw HTML comment inside an inline HTML element that closes in the
    same paragraph, instead of splitting the paragraph around it (#​1643).
  • Fix issue where inline HTML attributes were rejected if they had < or > in the attribute (#​1647).
  • Fix issue where an unterminated end tag (</foo) could cause all remaining content to be dropped (#​1651).
  • Complete rework of emphasis handling to improve nested emphasis handling better (#​1632).
astral-sh/ruff (ruff)

v0.17.1

Compare Source

Released on 2026-10-15.

Preview features
  • [pycodestyle] Don't treat None, True, or False as keywords (E271-E274) (#​29322)
Bug fixes
  • Fix dedent with multiple leading comments (#​29382)
  • [flake8-pyi] Detect legacy positional-only parameters in __new__ methods (PYI063) (#​28502)
  • [flake8-pyi] Fix false positives on quoted annotations (PYI036) (#​29274)
  • [perflint] Avoid invalid comprehension suggestions (PERF401, PERF403) (#​29366)
Rule changes
  • Treat more collections and weakref containers as mutable (#​29213)
Documentation
  • [flake8-import-conventions] Update default and example aliases (#​29333)
Contributors

v0.17.0

Compare Source

Released on 2026-10-09.

The executables in our macOS and Windows release archives and ruff wheels are now code-signed.
macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows
executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables
verification of the release publisher and binary integrity, supports publisher-based allowlisting,
and should reduce security warnings and antivirus false positives.

Breaking changes
  • Update the default and latest Python versions for 3.15 (#​28792)

    Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through
    target-version or
    requires-python. When
    checking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15
    instead of 3.14.

  • Update the default rule set (#​28786)

    Several of the flake8-datetimez rules
    (DTZ001,
    DTZ005,
    DTZ006,
    DTZ007,
    DTZ011,
    DTZ012, and
    DTZ901) are no longer enabled by default,
    while undefined-local-with-nested-import-star-usage
    (F406), which corresponds to a syntax error, is now enabled by default.

  • Update Rust crate quick-junit to 0.8.0 (#​27295)

    JUnit output now uses a skipped attribute instead of disabled on <testsuite> elements and
    includes a skipped attribute on the root <testsuites> element.

  • [flake8-import-conventions] Add datetime as dt as a conventional alias (ICN001) (#​28790)

  • Support Unicode dummy variable names (#​28722)

    The default lint.dummy-variable-rgx
    now recognizes underscore-prefixed Unicode names, such as _次, as dummy variables.

  • Update to Unicode 17 (#​21229, #​28784)

    Ruff now uses Unicode 17 data for identifier normalization and named character escapes ("\N{...}").

  • Always show unsafe and display-only fixes in the CLI (#​27810)

    The default full output format now shows unsafe fixes and suggestions requiring manual review,
    regardless of the unsafe-fixes setting.
    Actually applying unsafe fixes still requires explicit opt-in.

  • Remove the Python dependency from conda-forge builds (conda-forge/ruff-feedstock#361)

    The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and
    linux-ppc64le platforms, and now includes shell completions. However, no longer depending on
    Python means that python -m ruff and import ruff will no longer work. Use ruff directly from
    PATH instead. PyPI installations and those from the standalone installer are unaffected.

  • Remove support for ruff-lsp (#​28750)

    Support for ruff-lsp, the legacy Python language server deprecated in Ruff
    v0.9.5
    , has been removed. The Ruff VS Code
    extension now always uses the native language server; ruff.nativeServer is deprecated and
    ignored. See the migration guide.

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

  • The formatter, unsorted-imports (I001),
    line-too-long (E501), and
    doc-line-too-long (W505) now
    consistently ignore trailing pragma comments when computing line length. This resolved several
    bugs involving interactions between these rules
    (#​27313) but may also cause existing imports to be
    reformatted and was thus classified as a breaking change.
Preview features
  • [flake8-bugbear] Report the method name and a more precise range (B005) (#​27050)
  • [refurb] Mark fix unsafe and move to suspicious (FURB152) (#​28405)
  • [ruff] Allow docstrings in strict mode (RUF067) (#​28679)
Bug fixes
  • [flake8-builtins] Expand checks in class scopes (A001) (#​29076)
  • [flake8-self] Allow private access on object.__new__(cls) instances (SLF001) (#​29001)
  • [flake8-tidy-imports] Skip lazy-import-mismatch in stubs (TID254) (#​29095)
  • [flake8-type-checking] Add the notion of runtime-ambiguous references (#​26508)
  • [flake8-type-checking] Never flag annotations in function scopes (#​29183)
  • [pyflakes] Mark the fix as unsafe when it creates a docstring (F541) (#​28258)
  • [pylint] Preserve trailing comments in useless-return fix (PLR1711) (#​29180)
  • [ruff] Avoid false positive when pytest.raises is used in a with statement (RUF061) (#​28186)
Rule changes
  • [pyupgrade] Suggest typing.TypeForm on Python 3.15 (UP035) (#​29084)
Contributors
astral-sh/uv (uv)

v0.13.1

Compare Source

Released on 2026-10-14.

Enhancements
  • Ignore Requires-Python upper bounds in uv pip check and uv pip install --strict, consistent with resolution (#​22500)
  • Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable (#​22463)
  • Report missing trusted hashes in resolution errors (#​22241)
Python
Preview features
  • Allow uv tool upgrade to upgrade installed tools when tool-install-locks is enabled (#​22498)
  • Add preliminary support for parsing PEP 825 variant labels in wheel filenames with wheel-variants (#​22039)
Performance
Bug fixes
  • Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories (#​22495)
  • Restore support for source distributions containing hard links or full-length tar user or group names (#​22516, #​22522)
  • Preserve device files and FIFOs used as uv pip compile or uv export output destinations (#​22496)
  • Fix sys._base_executable detection for environments created from symlinked interpreters (#​22520)
  • Prevent concurrent readers from observing partially written lockfiles, Python version files, or managed Python sysconfig files (#​22399, #​22402, #​22403)
  • Serialize concurrent project commands that reach the same environment through real and symlinked paths (#​22390)
  • Prevent installs, syncs, and environment creation from failing when they race with uv cache clean (#​22387)
  • Prevent concurrent tool installations from corrupting an environment when the last tool is uninstalled (#​22391)
  • Persist changed upgrade settings even when uv tool upgrade leaves the tool version unchanged (#​22499)
  • Reuse environments with installed Git dependencies pinned to full commit hashes without resolving again (#​22464)
Documentation
  • Explain how to select an emulated Python interpreter on Windows ARM64 when native wheels are unavailable (#​22424)
  • Fix the .netrc format documentation link (#​22514)
Other changes
  • Publish Python 3.15-based uv Docker images under stable tags (#​22503)

v0.13.0

Compare Source

Released on 2026-10-09.

uv 0.13.0 makes Python 3.15 the default stable Python version. We've also included several breaking changes to improve correctness, performance, and compatibility, described below.

We expect most users to be able to upgrade without making changes.

While not a breaking change, this release also updates the format of many of uv's cache entries to improve performance. uv may download or rebuild dependencies after upgrading, because some cached entries from earlier versions cannot be reused. Multiple versions of uv can still safely share the same cache directory.

There are no breaking changes to the configuration of the uv build backend. If your [build-system] table includes an upper bound on uv_build, update it to allow uv_build 0.13, e.g., uv_build>=0.13.0,<0.14.

Breaking changes
  • Use Python 3.15 as the default stable version

    The default stable Python version has changed from 3.14 to 3.15. This affects Python downloads when no version is requested or pinned, e.g., when running uv python install.

    uv continues to use compatible Python installations that are already present. For example, uv venv can still use an installed Python 3.14. If no suitable interpreter is installed and automatic downloads are enabled, commands such as uv venv and uvx python can now download Python 3.15.

    You can opt out of this behavior by requesting Python 3.14 explicitly, e.g., uv venv --python 3.14. For projects, use uv python pin 3.14 to record the version in .python-version.

  • Honor --require-hashes in included constraints files (#​22275)

    Previously, uv ignored --require-hashes in constraints files included with -c from a requirements file. Now, uv honors the directive and requires hashes for all requirements in the installation. Installs that previously succeeded can now fail if a requirement is missing a hash.

    You cannot opt out while the directive is present. Add the missing hashes to your requirements, or remove the --require-hashes directive from the included constraints file if hash checking is not intended.

  • Prefer native Python on Windows ARM64 (#​22100)

    Previously, ARM64 builds of uv preferred emulated x86_64 Python installations because native wheel support was limited. Now, uv prefers native ARM64 (aarch64) interpreters across Python versions.

    This follows similar changes in CPython, the official Windows Python install manager, and GitHub's actions/setup-python.

    When a native interpreter is unavailable, uv continues to fall back to x86_64, then 32-bit x86.

    You can opt out of this behavior by setting UV_PYTHON_ARCH=x86_64 or requesting an explicit architecture, e.g., cpython-3.14-windows-x86_64. If you are using setup-uv, you can set python-arch: x86_64 instead.

  • Reject editable requirements in included constraints files (#​22282)

    Previously, uv silently ignored editable (-e) requirements in constraints files included with -c from a requirements file. Now, uv rejects these requirements with an error, matching pip's behavior.

    You cannot opt out of this behavior. Move editable requirements to a requirements file passed with -r, or pass them directly with --editable, instead of including them in a constraints file.

  • Omit the distutils startup patch on Python 3.10 and later (#​22096)

    Previously, uv installed _virtualenv.py and _virtualenv.pth into every new virtual environment to prevent distutils configuration from changing installation paths. Now, like virtualenv 21.6.0, uv omits these files on Python 3.10 and later, which already ignore the affected configuration keys. This reduces Python startup overhead. Python 3.9 and earlier retain the patch.

    You cannot opt out of this behavior. Existing virtual environments are not modified automatically. Recreate an environment with Python 3.10 or later to remove the patch.

    This stabilizes the no-distutils-patch preview feature.

  • Treat requirement-file option values as single paths (#​22290)

    Previously, uv split values passed to --constraint, --override, --exclude, and --build-constraint on spaces, even when quoted. Now, each value is treated as a single path, allowing file paths containing spaces.

    You cannot opt out of this behavior. Repeat the option to provide multiple files. For example, replace -c "a.txt b.txt" with -c a.txt -c b.txt.

    Space-separated lists in UV_CONSTRAINT, UV_OVERRIDE, UV_EXCLUDE, and UV_BUILD_CONSTRAINT remain supported.

  • Use tar-codec for tar archives by default (#​22094)

    Previously, uv used astral-tokio-tar to extract tar archives, build source distributions with uv_build, and read their metadata for uv publish. Now, uv uses tar-codec, which applies stricter validation when reading archives.

    uv may now reject archives containing hard links or unsupported tar extensions that previous versions accepted. Source distributions created by uv_build can also have different archive bytes and hashes.

    You can opt out of this behavior by setting UV_LEGACY_TAR_BACKEND=1.

    This stabilizes the tar-codec preview feature.

  • Reject uv build --clear output directories that contain a build source
    (#​22276)

    Previously, uv build --clear could delete a project or input source distribution when the
    output directory contained the source. Now, uv rejects these output directories, including
    equivalent paths reached through symlinks, before clearing any build output.

    Select an output directory that does not contain any build sources, or omit --clear.

Python
Preview features
  • Require hashes for build dependencies, including transitive dependencies, with --require-build-hashes (#​21411)
Performance
  • Speed up revalidation of cached HTTP responses by avoiding rewrites of unchanged payloads (#​22130)
  • Reduce allocations when reading cached HTTP responses (#​22136)
  • Reduce cache storage for HTTP policies and package records (#​22135, #​22133)
  • Reduce allocations for cached source distribution revisions (#​22131)
Bug fixes
  • Fix incorrect dependency resolution when reusing source metadata with different build settings (#​22404)
  • Avoid overlong wheel cache lock filenames on Windows (#​22134)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 9pm on friday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Oct 30, 2026
@renovate
renovate Bot requested a review from lervag October 30, 2026 01:15
@renovate
renovate Bot force-pushed the renovate/minor-and-patch-updates branch from 9c3b0dc to edddd05 Compare October 30, 2026 13:32
@lervag
lervag merged commit 4f872ac into master Oct 30, 2026
4 checks passed
@lervag
lervag deleted the renovate/minor-and-patch-updates branch October 30, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant