diff --git a/.devcontainer/CHANGELOG.md b/.devcontainer/CHANGELOG.md index 4444c03..65462e0 100644 --- a/.devcontainer/CHANGELOG.md +++ b/.devcontainer/CHANGELOG.md @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.3.4](https://github.com/vig-os/devcontainer/releases/tag/0.3.4) - 2026-04-29 + +### Added + +- **Renovate config validation on pull requests** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Workflow discovers tracked `renovate*.json` files (excluding `assets/workspace/renovate.json`, whose `extends` uses an unresolved template placeholder) and runs `renovate-config-validator --strict` on the rest when renovate JSON changes + - `just test-renovate` recipe mirrors the workflow locally and is included in `just test` + +### Changed + +- **Bump expected tool versions in image tests** + - `gh` 2.89 → 2.92, `just` 1.49 → 1.50, `cargo-binstall` 1.17 → 1.18 to match the latest upstream releases the image now installs + +### Fixed + +- **Renovate preset blocked all dependency updates** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Split Python `packageRules` so `matchUpdateTypes` and `rangeStrategy` are not combined in one rule; rename `baseBranches` to `baseBranchPatterns` + - Remove invalid `uv` from `enabledManagers` (`pep621` continues to handle `pyproject.toml` and `uv.lock`) + ## [0.3.3](https://github.com/vig-os/devcontainer/releases/tag/0.3.3) - 2026-04-10 ### Added @@ -41,6 +60,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Promote-release draft release validation** ([#507](https://github.com/vig-os/devcontainer/issues/507)) - Use the paginated releases list API with jq instead of `GET /releases/tags/{tag}`, which returns 404 for draft releases - Apply the same release lookup for RC git tag cleanup in upstream and workspace `promote-release.yml` +- **Promote-release validate job cannot see draft releases** ([#517](https://github.com/vig-os/devcontainer/issues/517)) + - Elevate `validate` job permissions to `contents: write` so the token has push-level access required by the GitHub API to list draft releases + - Use `github.token` instead of the release app token for the draft release check in workspace `promote-release.yml` ### Security diff --git a/.github/renovate-default.json b/.github/renovate-default.json index 95c5a45..b010c7f 100644 --- a/.github/renovate-default.json +++ b/.github/renovate-default.json @@ -3,7 +3,7 @@ "extends": ["config:recommended"], "timezone": "Etc/UTC", "schedule": ["before 9am on monday"], - "baseBranches": ["dev"], + "baseBranchPatterns": ["dev"], "rebaseWhen": "conflicted", "gitIgnoredAuthors": ["41898282+github-actions[bot]@users.noreply.github.com"], "packageRules": [ @@ -23,21 +23,17 @@ "semanticCommitScope": "actions" }, { - "description": "Python (PEP 621 + uv) — pin ranges, group minor/patch", - "matchManagers": ["pep621", "uv"], - "matchUpdateTypes": ["minor", "patch"], - "groupName": "python (minor and patch)", + "description": "Python (PEP 621) — always pin ranges", + "matchManagers": ["pep621"], "rangeStrategy": "pin", "semanticCommitType": "build", "semanticCommitScope": "pip" }, { - "description": "Python — major updates stay separate", - "matchManagers": ["pep621", "uv"], - "matchUpdateTypes": ["major"], - "rangeStrategy": "pin", - "semanticCommitType": "build", - "semanticCommitScope": "pip" + "description": "Python — group minor/patch", + "matchManagers": ["pep621"], + "matchUpdateTypes": ["minor", "patch"], + "groupName": "python (minor and patch)" }, { "description": "npm", diff --git a/.github/workflows/promote-release.yml b/.github/workflows/promote-release.yml index 54eac6d..766cff4 100644 --- a/.github/workflows/promote-release.yml +++ b/.github/workflows/promote-release.yml @@ -53,7 +53,7 @@ jobs: outputs: version: ${{ steps.vars.outputs.version }} permissions: - contents: read + contents: write pull-requests: read defaults: run: @@ -87,7 +87,7 @@ jobs: - name: Verify draft GitHub Release exists env: - GH_TOKEN: ${{ steps.release_app_token.outputs.token }} + GH_TOKEN: ${{ github.token }} VERSION: ${{ steps.vars.outputs.version }} run: | set -euo pipefail diff --git a/.vig-os b/.vig-os index 0e54bf9..c366ff1 100644 --- a/.vig-os +++ b/.vig-os @@ -1,2 +1,2 @@ # vig-os devcontainer configuration -DEVCONTAINER_VERSION=0.3.3 +DEVCONTAINER_VERSION=0.3.4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 08c3d21..87c1dff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,26 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.3.3](https://github.com/vig-os/devcontainer-smoke-test/releases/tag/0.3.3) - 2026-04-10 +## [0.3.4](https://github.com/vig-os/devcontainer-smoke-test/releases/tag/0.3.4) - 2026-04-29 + +### Added + +- **Renovate config validation on pull requests** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Workflow discovers tracked `renovate*.json` files (excluding `assets/workspace/renovate.json`, whose `extends` uses an unresolved template placeholder) and runs `renovate-config-validator --strict` on the rest when renovate JSON changes + - `just test-renovate` recipe mirrors the workflow locally and is included in `just test` + +### Changed + +- **Bump expected tool versions in image tests** + - `gh` 2.89 → 2.92, `just` 1.49 → 1.50, `cargo-binstall` 1.17 → 1.18 to match the latest upstream releases the image now installs + +### Fixed + +- **Renovate preset blocked all dependency updates** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Split Python `packageRules` so `matchUpdateTypes` and `rangeStrategy` are not combined in one rule; rename `baseBranches` to `baseBranchPatterns` + - Remove invalid `uv` from `enabledManagers` (`pep621` continues to handle `pyproject.toml` and `uv.lock`) + +## [0.3.3](https://github.com/vig-os/devcontainer/releases/tag/0.3.3) - 2026-04-10 ### Added @@ -41,6 +60,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Promote-release draft release validation** ([#507](https://github.com/vig-os/devcontainer/issues/507)) - Use the paginated releases list API with jq instead of `GET /releases/tags/{tag}`, which returns 404 for draft releases - Apply the same release lookup for RC git tag cleanup in upstream and workspace `promote-release.yml` +- **Promote-release validate job cannot see draft releases** ([#517](https://github.com/vig-os/devcontainer/issues/517)) + - Elevate `validate` job permissions to `contents: write` so the token has push-level access required by the GitHub API to list draft releases + - Use `github.token` instead of the release app token for the draft release check in workspace `promote-release.yml` ### Security diff --git a/docs/pull-requests/pr-117.md b/docs/pull-requests/pr-117.md index a788915..ad78520 100644 --- a/docs/pull-requests/pr-117.md +++ b/docs/pull-requests/pr-117.md @@ -1,18 +1,18 @@ --- type: pull_request -state: open +state: closed branch: dependabot/github_actions/dev/actions-minor-patch-003dc165f5 → dev created: 2026-04-05T11:49:02Z -updated: 2026-04-06T05:24:28Z +updated: 2026-04-13T05:26:47Z author: dependabot[bot] author_url: https://github.com/dependabot[bot] url: https://github.com/vig-os/devcontainer-smoke-test/pull/117 -comments: 0 +comments: 1 labels: dependencies, github_actions assignees: none milestone: none projects: none -synced: 2026-04-07T04:33:13.916Z +synced: 2026-04-14T04:45:15.555Z --- # [PR 117](https://github.com/vig-os/devcontainer-smoke-test/pull/117) ci(deps): bump actions/cache from 5.0.3 to 5.0.4 in the actions-minor-patch group across 1 directory @@ -125,3 +125,22 @@ Relevant for maintainers with write access only.


+ +--- +--- + +# Comments (1) + +## [Comment #1](https://github.com/vig-os/devcontainer-smoke-test/pull/117#issuecomment-4234046119) by [@dependabot[bot]](https://github.com/apps/dependabot) + +_Posted on April 13, 2026 at 05:26 AM_ + +Looks like actions/cache is updatable in another way, so this is no longer needed. + +--- +--- + +## Commits + +### Commit 1: [01832fb](https://github.com/vig-os/devcontainer-smoke-test/commit/01832fb7c4a701fa9d3114c76959604c2ec254a0) by [dependabot[bot]](https://github.com/apps/dependabot) on April 6, 2026 at 05:24 AM +ci(deps): bump actions/cache, 4 files modified (.github/workflows/sync-issues.yml) diff --git a/docs/pull-requests/pr-134.md b/docs/pull-requests/pr-134.md index e622cf9..b5724f0 100644 --- a/docs/pull-requests/pr-134.md +++ b/docs/pull-requests/pr-134.md @@ -1,9 +1,9 @@ --- type: pull_request -state: open +state: closed (merged) branch: release/0.3.3 → main created: 2026-04-10T14:13:58Z -updated: 2026-04-10T14:16:08Z +updated: 2026-04-10T14:21:49Z author: vig-os-release-app[bot] author_url: https://github.com/vig-os-release-app[bot] url: https://github.com/vig-os/devcontainer-smoke-test/pull/134 @@ -12,7 +12,8 @@ labels: release-kind:final assignees: none milestone: none projects: none -synced: 2026-04-10T14:16:58.061Z +merged: 2026-04-10T14:21:47Z +synced: 2026-04-11T04:22:03.367Z --- # [PR 134](https://github.com/vig-os/devcontainer-smoke-test/pull/134) chore: release 0.3.3 @@ -65,3 +66,30 @@ This PR prepares release 0.3.3 for merge to main. - Refresh `.trivyignore`: drop resolved gh/docker-cli and gRPC entries; add Go stdlib and typos-related suppressions plus `jwt-token` false positive - Suppress unfixable base-image CVEs: ncurses (CVE-2025-69720), SQLite (CVE-2025-7458), systemd (CVE-2026-29111), zlib/minizip (CVE-2023-45853) + + +--- +--- + +## Commits + +### Commit 1: [8e9b28c](https://github.com/vig-os/devcontainer-smoke-test/commit/8e9b28ce2715c17233abf55e6d83ed0c1015df70) by [vig-os-release-app[bot]](https://github.com/apps/vig-os-release-app) on April 10, 2026 at 01:54 PM +chore: sync dev with main (#132), 14 files modified (CHANGELOG.md) + +### Commit 2: [88566c6](https://github.com/vig-os/devcontainer-smoke-test/commit/88566c60812ba7e42fe58bf30bae8a2cfcff3fe9) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:11 PM +chore: deploy 0.3.3, 6 files modified (.devcontainer/CHANGELOG.md, .vig-os, CHANGELOG.md) + +### Commit 3: [c6e7346](https://github.com/vig-os/devcontainer-smoke-test/commit/c6e73469a439cec5801cce26576f66ccc5015b53) by [vig-os-release-app[bot]](https://github.com/apps/vig-os-release-app) on April 10, 2026 at 02:12 PM +chore: deploy 0.3.3 (#133), 6 files modified (.devcontainer/CHANGELOG.md, .vig-os, CHANGELOG.md) + +### Commit 4: [4cb7b74](https://github.com/vig-os/devcontainer-smoke-test/commit/4cb7b74f480fbc746c9d2093b016d5b66b89f9ab) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:13 PM +chore: freeze changelog for release 0.3.3, 14 files modified (CHANGELOG.md) + +### Commit 5: [9416934](https://github.com/vig-os/devcontainer-smoke-test/commit/9416934c2e11f8e2ccd3ba74c0fa03909a9945e0) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:13 PM +chore: prepare release 0.3.3, 14 files modified (CHANGELOG.md) + +### Commit 6: [41fa9c3](https://github.com/vig-os/devcontainer-smoke-test/commit/41fa9c344433590ae272c1b3573268b56695bc08) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:16 PM +chore: finalize release 0.3.3, 2 files modified (CHANGELOG.md) + +### Commit 7: [e9eae4a](https://github.com/vig-os/devcontainer-smoke-test/commit/e9eae4a53f0c13edab9e7de78cec948b09dca9ec) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:17 PM +chore: sync issues and PRs, 260 files modified (docs/pull-requests/pr-130.md, docs/pull-requests/pr-131.md, docs/pull-requests/pr-132.md, docs/pull-requests/pr-133.md, docs/pull-requests/pr-134.md) diff --git a/docs/pull-requests/pr-135.md b/docs/pull-requests/pr-135.md new file mode 100644 index 0000000..47838ca --- /dev/null +++ b/docs/pull-requests/pr-135.md @@ -0,0 +1,39 @@ +--- +type: pull_request +state: closed (merged) +branch: chore/sync-main-to-dev-33-1 → dev +created: 2026-04-10T14:23:14Z +updated: 2026-04-10T14:24:16Z +author: vig-os-release-app[bot] +author_url: https://github.com/vig-os-release-app[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/135 +comments: 0 +labels: none +assignees: none +milestone: none +projects: none +merged: 2026-04-10T14:24:15Z +synced: 2026-04-11T04:22:02.460Z +--- + +# [PR 135](https://github.com/vig-os/devcontainer-smoke-test/pull/135) chore: sync dev with main + +Syncs `dev` with `main` (sync-main-to-dev workflow). + + +--- +--- + +## Commits + +### Commit 1: [9416934](https://github.com/vig-os/devcontainer-smoke-test/commit/9416934c2e11f8e2ccd3ba74c0fa03909a9945e0) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:13 PM +chore: prepare release 0.3.3, 14 files modified (CHANGELOG.md) + +### Commit 2: [41fa9c3](https://github.com/vig-os/devcontainer-smoke-test/commit/41fa9c344433590ae272c1b3573268b56695bc08) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:16 PM +chore: finalize release 0.3.3, 2 files modified (CHANGELOG.md) + +### Commit 3: [e9eae4a](https://github.com/vig-os/devcontainer-smoke-test/commit/e9eae4a53f0c13edab9e7de78cec948b09dca9ec) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 10, 2026 at 02:17 PM +chore: sync issues and PRs, 260 files modified (docs/pull-requests/pr-130.md, docs/pull-requests/pr-131.md, docs/pull-requests/pr-132.md, docs/pull-requests/pr-133.md, docs/pull-requests/pr-134.md) + +### Commit 4: [7241038](https://github.com/vig-os/devcontainer-smoke-test/commit/72410387662cb2bdbd7f30241171d7d3b64bc9f8) by [vig-os-release-app[bot]](https://github.com/apps/vig-os-release-app) on April 10, 2026 at 02:21 PM +chore: release 0.3.3 (#134), 266 files modified (.devcontainer/CHANGELOG.md, .vig-os, CHANGELOG.md, docs/pull-requests/pr-130.md, docs/pull-requests/pr-131.md, docs/pull-requests/pr-132.md, docs/pull-requests/pr-133.md, docs/pull-requests/pr-134.md) diff --git a/docs/pull-requests/pr-136.md b/docs/pull-requests/pr-136.md new file mode 100644 index 0000000..c30348f --- /dev/null +++ b/docs/pull-requests/pr-136.md @@ -0,0 +1,79 @@ +--- +type: pull_request +state: open +branch: dependabot/pip/dev/pandas-gte-3.0.2 → dev +created: 2026-04-13T05:26:24Z +updated: 2026-04-13T05:26:25Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/136 +comments: 0 +labels: dependencies, python +assignees: none +milestone: none +projects: none +synced: 2026-04-14T04:45:20.800Z +--- + +# [PR 136](https://github.com/vig-os/devcontainer-smoke-test/pull/136) build(deps-dev): update pandas requirement from >=2.2 to >=3.0.2 + +Updates the requirements on [pandas](https://github.com/pandas-dev/pandas) to permit the latest version. +
+Release notes +

Sourced from pandas's releases.

+
+

pandas 3.0.2

+

We are pleased to announce the release of pandas 3.0.2. +This is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.

+

See the full whatsnew for a list of all the changes.

+

Pandas 3.0 supports Python 3.11 and higher. +The release can be installed from PyPI:

+
python -m pip install --upgrade pandas==3.0.*
+
+

Or from conda-forge

+
conda install -c conda-forge pandas=3.0
+
+

Please report any issues with the release on the pandas issue tracker.

+

Thanks to all the contributors who made this release possible.

+
+
+
+Commits + +
+
+ + +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-automerge-start) +[//]: # (dependabot-automerge-end) + +--- + +
+Dependabot commands and options +
+ +You can trigger Dependabot actions by commenting on this PR: +- `@dependabot rebase` will rebase this PR +- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it +- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency +- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) + + +
diff --git a/docs/pull-requests/pr-137.md b/docs/pull-requests/pr-137.md new file mode 100644 index 0000000..d295f73 --- /dev/null +++ b/docs/pull-requests/pr-137.md @@ -0,0 +1,152 @@ +--- +type: pull_request +state: open +branch: dependabot/pip/dev/ipykernel-gte-7.2.0 → dev +created: 2026-04-13T05:26:29Z +updated: 2026-04-13T05:26:30Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/137 +comments: 0 +labels: dependencies, python +assignees: none +milestone: none +projects: none +synced: 2026-04-14T04:45:19.786Z +--- + +# [PR 137](https://github.com/vig-os/devcontainer-smoke-test/pull/137) build(deps-dev): update ipykernel requirement from >=6.0 to >=7.2.0 + +Updates the requirements on [ipykernel](https://github.com/ipython/ipykernel) to permit the latest version. +
+Release notes +

Sourced from ipykernel's releases.

+
+

v7.2.0

+

7.2.0

+

(Full Changelog)

+

New features added

+ +

Enhancements made

+ +

Bugs fixed

+ +

Maintenance and upkeep improvements

+ +

Contributors to this release

+

The following people contributed discussions, new ideas, code and documentation contributions, and review. +See our definition of contributors.

+

(GitHub contributors page for this release)

+

@​arjxn-py (activity) | @​Carreau (activity) | @​ccordoba12 (activity) | @​ianthomas23 (activity) | @​JohanMabille (activity) | @​minrk (activity) | @​newville (activity) | @​SylvainCorlay (activity)

+
+
+
+Changelog +

Sourced from ipykernel's changelog.

+
+

7.2.0

+

(Full Changelog)

+

New features added

+ +

Enhancements made

+ +

Bugs fixed

+ +

Maintenance and upkeep improvements

+ +

Contributors to this release

+

The following people contributed discussions, new ideas, code and documentation contributions, and review. +See our definition of contributors.

+

(GitHub contributors page for this release)

+

@​arjxn-py (activity) | @​Carreau (activity) | @​ccordoba12 (activity) | @​ianthomas23 (activity) | @​JohanMabille (activity) | @​minrk (activity) | @​newville (activity) | @​SylvainCorlay (activity)

+ +

7.2.0a1

+

(Full Changelog)

+

New features added

+ + +
+

... (truncated)

+
+
+Commits + +
+
+ + +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-automerge-start) +[//]: # (dependabot-automerge-end) + +--- + +
+Dependabot commands and options +
+ +You can trigger Dependabot actions by commenting on this PR: +- `@dependabot rebase` will rebase this PR +- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it +- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency +- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) + + +
diff --git a/docs/pull-requests/pr-138.md b/docs/pull-requests/pr-138.md new file mode 100644 index 0000000..8ea2177 --- /dev/null +++ b/docs/pull-requests/pr-138.md @@ -0,0 +1,43 @@ +--- +type: pull_request +state: open +branch: dependabot/pip/dev/jupyter-gte-1.1.1 → dev +created: 2026-04-13T05:26:30Z +updated: 2026-04-13T05:26:31Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/138 +comments: 0 +labels: dependencies, python +assignees: none +milestone: none +projects: none +synced: 2026-04-14T04:45:18.738Z +--- + +# [PR 138](https://github.com/vig-os/devcontainer-smoke-test/pull/138) build(deps-dev): update jupyter requirement from >=1.0 to >=1.1.1 + +Updates the requirements on [jupyter](https://jupyter.org) to permit the latest version. + + +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-automerge-start) +[//]: # (dependabot-automerge-end) + +--- + +
+Dependabot commands and options +
+ +You can trigger Dependabot actions by commenting on this PR: +- `@dependabot rebase` will rebase this PR +- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it +- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency +- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) + + +
diff --git a/docs/pull-requests/pr-139.md b/docs/pull-requests/pr-139.md new file mode 100644 index 0000000..709aa1b --- /dev/null +++ b/docs/pull-requests/pr-139.md @@ -0,0 +1,89 @@ +--- +type: pull_request +state: open +branch: dependabot/pip/dev/scipy-gte-1.17.1 → dev +created: 2026-04-13T05:26:38Z +updated: 2026-04-13T05:26:39Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/139 +comments: 0 +labels: dependencies, python +assignees: none +milestone: none +projects: none +synced: 2026-04-14T04:45:17.657Z +--- + +# [PR 139](https://github.com/vig-os/devcontainer-smoke-test/pull/139) build(deps-dev): update scipy requirement from >=1.14 to >=1.17.1 + +Updates the requirements on [scipy](https://github.com/scipy/scipy) to permit the latest version. +
+Release notes +

Sourced from scipy's releases.

+
+

SciPy 1.17.1 Release Notes

+

SciPy 1.17.1 is a bug-fix release with no new features compared to 1.17.0.

+

Authors

+ +

A total of 13 people contributed to this release. +People with a "+" by their names contributed a patch for the first time. +This list of names is automatically generated, and may not be fully complete.

+

Complete issue list, PR list, and release asset hashes are available in the associated README.txt.

+
+
+
+Commits + +
+
+ + +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-automerge-start) +[//]: # (dependabot-automerge-end) + +--- + +
+Dependabot commands and options +
+ +You can trigger Dependabot actions by commenting on this PR: +- `@dependabot rebase` will rebase this PR +- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it +- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency +- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) + + +
diff --git a/docs/pull-requests/pr-140.md b/docs/pull-requests/pr-140.md new file mode 100644 index 0000000..f763d17 --- /dev/null +++ b/docs/pull-requests/pr-140.md @@ -0,0 +1,132 @@ +--- +type: pull_request +state: open +branch: dependabot/pip/dev/rich-gte-15.0.0 → dev +created: 2026-04-13T05:26:43Z +updated: 2026-04-13T05:26:44Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/140 +comments: 0 +labels: dependencies, python +assignees: none +milestone: none +projects: none +synced: 2026-04-14T04:45:16.667Z +--- + +# [PR 140](https://github.com/vig-os/devcontainer-smoke-test/pull/140) build(deps-dev): update rich requirement from >=13.0.0 to >=15.0.0 + +Updates the requirements on [rich](https://github.com/Textualize/rich) to permit the latest version. +
+Release notes +

Sourced from rich's releases.

+
+

The So Long 3.8 Release

+

A few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024

+

[15.0.0] - 2026-04-12

+

Changed

+ +

Fixed

+ +
+
+
+Changelog +

Sourced from rich's changelog.

+
+

[15.0.0] - 2026-04-12

+

Changed

+ +

Fixed

+ +

[14.3.4] - 2026-04-11

+

Changed

+ +

[14.3.3] - 2026-02-19

+

Fixed

+ +

[14.3.2] - 2026-02-01

+

Fixed

+ +

[14.3.1] - 2026-01-24

+

Fixed

+ +

[14.3.0] - 2026-01-24

+

Fixed

+ +

Added

+ +
+

... (truncated)

+
+
+Commits + +
+
+ + +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-automerge-start) +[//]: # (dependabot-automerge-end) + +--- + +
+Dependabot commands and options +
+ +You can trigger Dependabot actions by commenting on this PR: +- `@dependabot rebase` will rebase this PR +- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it +- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency +- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) +- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) + + +
diff --git a/docs/pull-requests/pr-141.md b/docs/pull-requests/pr-141.md new file mode 100644 index 0000000..5b79985 --- /dev/null +++ b/docs/pull-requests/pr-141.md @@ -0,0 +1,213 @@ +--- +type: pull_request +state: closed +branch: dependabot/github_actions/dev/actions-minor-patch-630f6bf131 → dev +created: 2026-04-13T05:26:48Z +updated: 2026-04-20T05:31:00Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/141 +comments: 1 +labels: dependencies, github_actions +assignees: none +milestone: none +projects: none +synced: 2026-04-21T04:48:14.211Z +--- + +# [PR 141](https://github.com/vig-os/devcontainer-smoke-test/pull/141) ci(deps): bump the actions-minor-patch group across 1 directory with 2 updates + +Bumps the actions-minor-patch group with 2 updates in the / directory: [actions/create-github-app-token](https://github.com/actions/create-github-app-token) and [actions/cache](https://github.com/actions/cache). + +Updates `actions/create-github-app-token` from 3.0.0 to 3.1.1 +
+Release notes +

Sourced from actions/create-github-app-token's releases.

+
+

v3.1.1

+

3.1.1 (2026-04-11)

+

Bug Fixes

+ +

v3.1.0

+

3.1.0 (2026-04-11)

+

Bug Fixes

+ +

Features

+ +
+
+
+Commits + +
+
+ +Updates `actions/cache` from 5.0.3 to 5.0.4 +
+Release notes +

Sourced from actions/cache's releases.

+
+

v5.0.4

+

What's Changed

+ +

New Contributors

+ +

Full Changelog: https://github.com/actions/cache/compare/v5...v5.0.4

+
+
+
+Changelog +

Sourced from actions/cache's changelog.

+
+

Releases

+

How to prepare a release

+
+

[!NOTE]
+Relevant for maintainers with write access only.

+
+
    +
  1. Switch to a new branch from main.
  2. +
  3. Run npm test to ensure all tests are passing.
  4. +
  5. Update the version in https://github.com/actions/cache/blob/main/package.json.
  6. +
  7. Run npm run build to update the compiled files.
  8. +
  9. Update this https://github.com/actions/cache/blob/main/RELEASES.md with the new version and changes in the ## Changelog section.
  10. +
  11. Run licensed cache to update the license report.
  12. +
  13. Run licensed status and resolve any warnings by updating the https://github.com/actions/cache/blob/main/.licensed.yml file with the exceptions.
  14. +
  15. Commit your changes and push your branch upstream.
  16. +
  17. Open a pull request against main and get it reviewed and merged.
  18. +
  19. Draft a new release https://github.com/actions/cache/releases use the same version number used in package.json +
      +
    1. Create a new tag with the version number.
    2. +
    3. Auto generate release notes and update them to match the changes you made in RELEASES.md.
    4. +
    5. Toggle the set as the latest release option.
    6. +
    7. Publish the release.
    8. +
    +
  20. +
  21. Navigate to https://github.com/actions/cache/actions/workflows/release-new-action-version.yml +
      +
    1. There should be a workflow run queued with the same version number.
    2. +
    3. Approve the run to publish the new version and update the major tags for this action.
    4. +
    +
  22. +
+

Changelog

+

5.0.4

+ +

5.0.3

+ +

5.0.2

+ +

5.0.1

+ +

5.0.0

+
+

[!IMPORTANT] +actions/cache@v5 runs on the Node.js 24 runtime and requires a minimum Actions Runner version of 2.327.1.

+
+ +
+

... (truncated)

+
+
+Commits + +
+
+ + +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-automerge-start) +[//]: # (dependabot-automerge-end) + +--- + +
+Dependabot commands and options +
+ +You can trigger Dependabot actions by commenting on this PR: +- `@dependabot rebase` will rebase this PR +- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it +- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency +- `@dependabot ignore major version` will 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 minor version` will 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 ` 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 ` will remove all of the ignore conditions of the specified dependency +- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions + + +
+ + +--- +--- + +# Comments (1) + +## [Comment #1](https://github.com/vig-os/devcontainer-smoke-test/pull/141#issuecomment-4278071090) by [@dependabot[bot]](https://github.com/apps/dependabot) + +_Posted on April 20, 2026 at 05:30 AM_ + +Looks like these dependencies are updatable in another way, so this is no longer needed. + +--- +--- + +## Commits + +### Commit 1: [6f5f0cc](https://github.com/vig-os/devcontainer-smoke-test/commit/6f5f0cc0cc5c2d41dcdb3a0870ae4ea0dcc35b12) by [dependabot[bot]](https://github.com/apps/dependabot) on April 13, 2026 at 05:26 AM +ci(deps): bump the actions-minor-patch group across 1 directory with 2 updates, 56 files modified diff --git a/docs/pull-requests/pr-142.md b/docs/pull-requests/pr-142.md new file mode 100644 index 0000000..e5a1f2d --- /dev/null +++ b/docs/pull-requests/pr-142.md @@ -0,0 +1,275 @@ +--- +type: pull_request +state: open +branch: dependabot/github_actions/dev/actions-minor-patch-b9bae8ce07 → dev +created: 2026-04-20T05:31:03Z +updated: 2026-04-27T05:34:01Z +author: dependabot[bot] +author_url: https://github.com/dependabot[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/142 +comments: 0 +labels: dependencies, github_actions +assignees: none +milestone: none +projects: none +synced: 2026-04-28T05:30:32.773Z +--- + +# [PR 142](https://github.com/vig-os/devcontainer-smoke-test/pull/142) ci(deps): bump the actions-minor-patch group across 1 directory with 3 updates + +Bumps the actions-minor-patch group with 3 updates in the / directory: [github/codeql-action](https://github.com/github/codeql-action), [actions/create-github-app-token](https://github.com/actions/create-github-app-token) and [actions/cache](https://github.com/actions/cache). + +Updates `github/codeql-action` from 4.35.1 to 4.35.2 +
+Release notes +

Sourced from github/codeql-action's releases.

+
+

v4.35.2

+ +
+
+
+Changelog +

Sourced from github/codeql-action's changelog.

+
+

CodeQL Action Changelog

+

See the releases page for the relevant changes to the CodeQL CLI and language packs.

+

[UNRELEASED]

+

No user facing changes.

+

4.35.2 - 15 Apr 2026

+ +

4.35.1 - 27 Mar 2026

+ +

4.35.0 - 27 Mar 2026

+ +

4.34.1 - 20 Mar 2026

+ +

4.34.0 - 20 Mar 2026

+ +

4.33.0 - 16 Mar 2026

+ +

4.32.6 - 05 Mar 2026

+ +
+

... (truncated)

+
+
+Commits + +
+
+ +Updates `actions/create-github-app-token` from 3.0.0 to 3.1.1 +
+Release notes +

Sourced from actions/create-github-app-token's releases.

+
+

v3.1.1

+

3.1.1 (2026-04-11)

+

Bug Fixes

+ +

v3.1.0

+

3.1.0 (2026-04-11)

+

Bug Fixes

+ +

Features

+ +
+
+
+Commits + +
+
+ +Updates `actions/cache` from 5.0.3 to 5.0.5 +
+Release notes +

Sourced from actions/cache's releases.

+
+

v5.0.5

+

What's Changed

+ +

Full Changelog: https://github.com/actions/cache/compare/v5...v5.0.5

+

v5.0.4

+

What's Changed

+ +

New Contributors

+ +

Full Changelog: https://github.com/actions/cache/compare/v5...v5.0.4

+
+
+
+Changelog +

Sourced from actions/cache's changelog.

+
+

Releases

+

How to prepare a release

+
+

[!NOTE]
+Relevant for maintainers with write access only.

+
+
    +
  1. Switch to a new branch from main.
  2. +
  3. Run npm test to ensure all tests are passing.
  4. +
  5. Update the version in https://github.com/actions/cache/blob/main/package.json.
  6. +
  7. Run npm run build to update the compiled files.
  8. +
  9. Update this https://github.com/actions/cache/blob/main/RELEASES.md with the new version and changes in the ## Changelog section.
  10. +
  11. Run licensed cache to update the license report.
  12. +
  13. Run licensed status and resolve any warnings by updating the https://github.com/actions/cache/blob/main/.licensed.yml file with the exceptions.
  14. +
  15. Commit your changes and push your branch upstream.
  16. +
  17. Open a pull request against main and get it reviewed and merged.
  18. +
  19. Draft a new release https://github.com/actions/cache/releases use the same version number used in package.json +
      +
    1. Create a new tag with the version number.
    2. +
    3. Auto generate release notes and update them to match the changes you made in RELEASES.md.
    4. +
    5. Toggle the set as the latest release option.
    6. +
    7. Publish the release.
    8. +
    +
  20. +
  21. Navigate to https://github.com/actions/cache/actions/workflows/release-new-action-version.yml +
      +
    1. There should be a workflow run queued with the same version number.
    2. +
    3. Approve the run to publish the new version and update the major tags for this action.
    4. +
    +
  22. +
+

Changelog

+

5.0.4

+ +

5.0.3

+ +

5.0.2

+ +

5.0.1

+ +

5.0.0

+
+

[!IMPORTANT] +actions/cache@v5 runs on the Node.js 24 runtime and requires a minimum Actions Runner version of 2.327.1.

+
+ +
+

... (truncated)

+
+
+Commits + +
+
+ diff --git a/docs/pull-requests/pr-143.md b/docs/pull-requests/pr-143.md new file mode 100644 index 0000000..ebc4045 --- /dev/null +++ b/docs/pull-requests/pr-143.md @@ -0,0 +1,34 @@ +--- +type: pull_request +state: closed (merged) +branch: chore/deploy-0.3.4-rc1 → dev +created: 2026-04-29T10:35:45Z +updated: 2026-04-29T10:36:49Z +author: vig-os-release-app[bot] +author_url: https://github.com/vig-os-release-app[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/143 +comments: 0 +labels: deploy +assignees: none +milestone: none +projects: none +merged: 2026-04-29T10:36:47Z +synced: 2026-04-29T14:17:37.387Z +--- + +# [PR 143](https://github.com/vig-os/devcontainer-smoke-test/pull/143) chore: deploy 0.3.4-rc1 + +Automated smoke-test deployment commit created by repository_dispatch. + +- Dispatch tag: 0.3.4-rc1 +- Branch: chore/deploy-0.3.4-rc1 +- Target: dev + + +--- +--- + +## Commits + +### Commit 1: [f1d8620](https://github.com/vig-os/devcontainer-smoke-test/commit/f1d8620411d71c198b42d6a70beb4b717e71567f) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 29, 2026 at 10:35 AM +chore: deploy 0.3.4-rc1, 201 files modified (.devcontainer/CHANGELOG.md, .github/renovate-default.json, .github/workflows/promote-release.yml, .vig-os, CHANGELOG.md, uv.lock) diff --git a/docs/pull-requests/pr-144.md b/docs/pull-requests/pr-144.md new file mode 100644 index 0000000..1920476 --- /dev/null +++ b/docs/pull-requests/pr-144.md @@ -0,0 +1,75 @@ +--- +type: pull_request +state: closed +branch: release/0.3.4 → main +created: 2026-04-29T10:38:35Z +updated: 2026-04-29T14:12:02Z +author: vig-os-release-app[bot] +author_url: https://github.com/vig-os-release-app[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/144 +comments: 0 +labels: release-kind:candidate +assignees: none +milestone: none +projects: none +synced: 2026-04-29T14:17:34.707Z +--- + +# [PR 144](https://github.com/vig-os/devcontainer-smoke-test/pull/144) chore: release 0.3.4 + +# Release 0.3.4 + +This PR prepares release 0.3.4 for merge to main. + +## [0.3.4] - TBD + +### Added + +- **Renovate config validation on pull requests** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Workflow discovers tracked `renovate*.json` files (excluding `assets/workspace/renovate.json`, whose `extends` uses an unresolved template placeholder) and runs `renovate-config-validator --strict` on the rest when renovate JSON changes + - `just test-renovate` recipe mirrors the workflow locally and is included in `just test` + +### Changed + +- **Bump expected tool versions in image tests** + - `gh` 2.89 → 2.92, `just` 1.49 → 1.50, `cargo-binstall` 1.17 → 1.18 to match the latest upstream releases the image now installs + +### Fixed + +- **Renovate preset blocked all dependency updates** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Split Python `packageRules` so `matchUpdateTypes` and `rangeStrategy` are not combined in one rule; rename `baseBranches` to `baseBranchPatterns` + - Remove invalid `uv` from `enabledManagers` (`pep621` continues to handle `pyproject.toml` and `uv.lock`) + + + +--- +--- + +## Commits + +### Commit 1: [92d89bc](https://github.com/vig-os/devcontainer-smoke-test/commit/92d89bc4fd7a343bfa15466ddf6ffca867830d99) by [vig-os-release-app[bot]](https://github.com/apps/vig-os-release-app) on April 10, 2026 at 02:24 PM +chore: sync dev with main (#135), 276 files modified (CHANGELOG.md, docs/pull-requests/pr-130.md, docs/pull-requests/pr-131.md, docs/pull-requests/pr-132.md, docs/pull-requests/pr-133.md, docs/pull-requests/pr-134.md) + +### Commit 2: [7ebba2f](https://github.com/vig-os/devcontainer-smoke-test/commit/7ebba2fd3207d94a15b577e14c96158b531a128a) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 11, 2026 at 04:22 AM +chore: sync issues and PRs, 73 files modified (docs/pull-requests/pr-134.md, docs/pull-requests/pr-135.md) + +### Commit 3: [c325770](https://github.com/vig-os/devcontainer-smoke-test/commit/c325770d4b39b129f29799e074c7c9ccf00d47c8) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 14, 2026 at 04:45 AM +chore: sync issues and PRs, 715 files modified + +### Commit 4: [545715f](https://github.com/vig-os/devcontainer-smoke-test/commit/545715fb5a10bb922df84e1c8a81a0b794561c20) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 21, 2026 at 04:48 AM +chore: sync issues and PRs, 327 files modified (docs/pull-requests/pr-141.md, docs/pull-requests/pr-142.md) + +### Commit 5: [8df69c3](https://github.com/vig-os/devcontainer-smoke-test/commit/8df69c381896cb34a8a0f37d12d952796dbb2a69) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 28, 2026 at 05:30 AM +chore: sync issues and PRs, 28 files modified (docs/pull-requests/pr-142.md) + +### Commit 6: [f1d8620](https://github.com/vig-os/devcontainer-smoke-test/commit/f1d8620411d71c198b42d6a70beb4b717e71567f) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 29, 2026 at 10:35 AM +chore: deploy 0.3.4-rc1, 201 files modified (.devcontainer/CHANGELOG.md, .github/renovate-default.json, .github/workflows/promote-release.yml, .vig-os, CHANGELOG.md, uv.lock) + +### Commit 7: [28a059f](https://github.com/vig-os/devcontainer-smoke-test/commit/28a059f23be2480f27165f5379d19b8f5147f131) by [vig-os-release-app[bot]](https://github.com/apps/vig-os-release-app) on April 29, 2026 at 10:36 AM +chore: deploy 0.3.4-rc1 (#143), 201 files modified (.devcontainer/CHANGELOG.md, .github/renovate-default.json, .github/workflows/promote-release.yml, .vig-os, CHANGELOG.md, uv.lock) + +### Commit 8: [1ae88bc](https://github.com/vig-os/devcontainer-smoke-test/commit/1ae88bc17413b95b5b3baf73c61d24590195b2c1) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 29, 2026 at 10:38 AM +chore: freeze changelog for release 0.3.4, 14 files modified (CHANGELOG.md) + +### Commit 9: [0bbf69e](https://github.com/vig-os/devcontainer-smoke-test/commit/0bbf69e47b5bc18c5a308b4564c72ea7e1cda97a) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 29, 2026 at 10:38 AM +chore: prepare release 0.3.4, 14 files modified (CHANGELOG.md) diff --git a/docs/pull-requests/pr-145.md b/docs/pull-requests/pr-145.md new file mode 100644 index 0000000..4f32539 --- /dev/null +++ b/docs/pull-requests/pr-145.md @@ -0,0 +1,34 @@ +--- +type: pull_request +state: closed (merged) +branch: chore/deploy-0.3.4 → dev +created: 2026-04-29T14:10:19Z +updated: 2026-04-29T14:11:40Z +author: vig-os-release-app[bot] +author_url: https://github.com/vig-os-release-app[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/145 +comments: 0 +labels: deploy +assignees: none +milestone: none +projects: none +merged: 2026-04-29T14:11:39Z +synced: 2026-04-29T14:17:36.093Z +--- + +# [PR 145](https://github.com/vig-os/devcontainer-smoke-test/pull/145) chore: deploy 0.3.4 + +Automated smoke-test deployment commit created by repository_dispatch. + +- Dispatch tag: 0.3.4 +- Branch: chore/deploy-0.3.4 +- Target: dev + + +--- +--- + +## Commits + +### Commit 1: [b33b9b2](https://github.com/vig-os/devcontainer-smoke-test/commit/b33b9b244fb1e3b476e68d9e2380e76f1d859a96) by [commit-action-bot[bot]](https://github.com/apps/commit-action-bot) on April 29, 2026 at 02:10 PM +chore: deploy 0.3.4, 18 files modified (.devcontainer/CHANGELOG.md, .vig-os, CHANGELOG.md) diff --git a/docs/pull-requests/pr-146.md b/docs/pull-requests/pr-146.md new file mode 100644 index 0000000..627efa7 --- /dev/null +++ b/docs/pull-requests/pr-146.md @@ -0,0 +1,42 @@ +--- +type: pull_request +state: open +branch: release/0.3.4 → main +created: 2026-04-29T14:13:25Z +updated: 2026-04-29T14:16:25Z +author: vig-os-release-app[bot] +author_url: https://github.com/vig-os-release-app[bot] +url: https://github.com/vig-os/devcontainer-smoke-test/pull/146 +comments: 0 +labels: release-kind:final +assignees: none +milestone: none +projects: none +synced: 2026-04-29T14:17:32.774Z +--- + +# [PR 146](https://github.com/vig-os/devcontainer-smoke-test/pull/146) chore: release 0.3.4 + +# Release 0.3.4 + +This PR prepares release 0.3.4 for merge to main. + +## [0.3.4] - TBD + +### Added + +- **Renovate config validation on pull requests** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Workflow discovers tracked `renovate*.json` files (excluding `assets/workspace/renovate.json`, whose `extends` uses an unresolved template placeholder) and runs `renovate-config-validator --strict` on the rest when renovate JSON changes + - `just test-renovate` recipe mirrors the workflow locally and is included in `just test` + +### Changed + +- **Bump expected tool versions in image tests** + - `gh` 2.89 → 2.92, `just` 1.49 → 1.50, `cargo-binstall` 1.17 → 1.18 to match the latest upstream releases the image now installs + +### Fixed + +- **Renovate preset blocked all dependency updates** ([#520](https://github.com/vig-os/devcontainer/issues/520)) + - Split Python `packageRules` so `matchUpdateTypes` and `rangeStrategy` are not combined in one rule; rename `baseBranches` to `baseBranchPatterns` + - Remove invalid `uv` from `enabledManagers` (`pep621` continues to handle `pyproject.toml` and `uv.lock`) + diff --git a/uv.lock b/uv.lock index 3aac644..540a312 100644 --- a/uv.lock +++ b/uv.lock @@ -156,11 +156,11 @@ css = [ [[package]] name = "certifi" -version = "2026.2.25" +version = "2026.4.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, + { url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" }, ] [[package]] @@ -686,11 +686,11 @@ wheels = [ [[package]] name = "idna" -version = "3.11" +version = "3.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/cc/762dfb036166873f0059f3b7de4565e1b5bc3d6f28a414c13da27e442f99/idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242", size = 194210, upload-time = "2026-04-22T16:42:42.314Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/5d/13/ad7d7ca3808a898b4612b6fe93cde56b53f3034dcde235acb1f0e1df24c6/idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3", size = 68629, upload-time = "2026-04-22T16:42:40.909Z" }, ] [[package]] @@ -728,7 +728,7 @@ wheels = [ [[package]] name = "ipython" -version = "9.12.0" +version = "9.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -738,13 +738,14 @@ dependencies = [ { name = "matplotlib-inline" }, { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, { name = "prompt-toolkit" }, + { name = "psutil" }, { name = "pygments" }, { name = "stack-data" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3a/73/7114f80a8f9cabdb13c27732dce24af945b2923dcab80723602f7c8bc2d8/ipython-9.12.0.tar.gz", hash = "sha256:01daa83f504b693ba523b5a407246cabde4eb4513285a3c6acaff11a66735ee4", size = 4428879, upload-time = "2026-03-27T09:42:45.312Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/c4/87cda5842cf5c31837c06ddb588e11c3c35d8ece89b7a0108c06b8c9b00a/ipython-9.13.0.tar.gz", hash = "sha256:7e834b6afc99f020e3f05966ced34792f40267d64cb1ea9043886dab0dde5967", size = 4430549, upload-time = "2026-04-24T12:24:55.221Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/59/22/906c8108974c673ebef6356c506cebb6870d48cedea3c41e949e2dd556bb/ipython-9.12.0-py3-none-any.whl", hash = "sha256:0f2701e8ee86e117e37f50563205d36feaa259d2e08d4a6bc6b6d74b18ce128d", size = 625661, upload-time = "2026-03-27T09:42:42.831Z" }, + { url = "https://files.pythonhosted.org/packages/b9/86/3060e8029b7cc505cce9a0137431dda81d0a3fde93a8f0f50ee0bf37a795/ipython-9.13.0-py3-none-any.whl", hash = "sha256:57f9d4639e20818d328d287c7b549af3d05f12486ea8f2e7f73e52a36ec4d201", size = 627274, upload-time = "2026-04-24T12:24:53.038Z" }, ] [[package]] @@ -936,7 +937,7 @@ wheels = [ [[package]] name = "jupyter-events" -version = "0.12.0" +version = "0.12.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonschema", extra = ["format-nongpl"] }, @@ -948,9 +949,9 @@ dependencies = [ { name = "rfc3986-validator" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/c3/306d090461e4cf3cd91eceaff84bede12a8e52cd821c2d20c9a4fd728385/jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b", size = 62196, upload-time = "2025-02-03T17:23:41.485Z" } +sdist = { url = "https://files.pythonhosted.org/packages/18/f8/475c4241b2b75af0deaae453ed003c6c851766dbc44d332d8baf245dc931/jupyter_events-0.12.1.tar.gz", hash = "sha256:faff25f77218335752f35f23c5fe6e4a392a7bd99a5939ccb9b8fbf594636cf3", size = 62854, upload-time = "2026-04-20T23:17:50.66Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/48/577993f1f99c552f18a0428731a755e06171f9902fa118c379eb7c04ea22/jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb", size = 19430, upload-time = "2025-02-03T17:23:38.643Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6c/6fcde0c8f616ed360ffd3587f7db9e225a7e62b583a04494d2f069cf64ea/jupyter_events-0.12.1-py3-none-any.whl", hash = "sha256:c366585253f537a627da52fa7ca7410c5b5301fe893f511e7b077c2d93ec8bcf", size = 19512, upload-time = "2026-04-20T23:17:48.927Z" }, ] [[package]] @@ -1239,7 +1240,7 @@ wheels = [ [[package]] name = "matplotlib" -version = "3.10.8" +version = "3.10.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, @@ -1252,43 +1253,43 @@ dependencies = [ { name = "pyparsing" }, { name = "python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", size = 8260453, upload-time = "2025-12-10T22:55:30.709Z" }, - { url = "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", size = 8148321, upload-time = "2025-12-10T22:55:33.265Z" }, - { url = "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", size = 8716944, upload-time = "2025-12-10T22:55:34.922Z" }, - { url = "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", size = 9550099, upload-time = "2025-12-10T22:55:36.789Z" }, - { url = "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", size = 9613040, upload-time = "2025-12-10T22:55:38.715Z" }, - { url = "https://files.pythonhosted.org/packages/30/4e/c10f171b6e2f44d9e3a2b96efa38b1677439d79c99357600a62cc1e9594e/matplotlib-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:dd80ecb295460a5d9d260df63c43f4afbdd832d725a531f008dad1664f458adf", size = 8142717, upload-time = "2025-12-10T22:55:41.103Z" }, - { url = "https://files.pythonhosted.org/packages/f1/76/934db220026b5fef85f45d51a738b91dea7d70207581063cd9bd8fafcf74/matplotlib-3.10.8-cp312-cp312-win_arm64.whl", hash = "sha256:3c624e43ed56313651bc18a47f838b60d7b8032ed348911c54906b130b20071b", size = 8012751, upload-time = "2025-12-10T22:55:42.684Z" }, - { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, - { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, - { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, - { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, - { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, - { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, - { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, - { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, - { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, - { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, - { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, - { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, - { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, - { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, - { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, - { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, - { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, - { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, - { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, - { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, - { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, - { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, - { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, - { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233, upload-time = "2026-04-24T00:14:13.539Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/c6/5581e26c72233ebb2a2a6fed2d24fb7c66b4700120b813f51b0555acf0b6/matplotlib-3.10.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1", size = 8319908, upload-time = "2026-04-24T00:12:21.323Z" }, + { url = "https://files.pythonhosted.org/packages/b7/18/4880dd762e40cd360c1bf06e890c5a97b997e91cb324602b1a19950ad5ce/matplotlib-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320", size = 8216016, upload-time = "2026-04-24T00:12:23.4Z" }, + { url = "https://files.pythonhosted.org/packages/32/91/d024616abdba99e83120e07a20658976f6a343646710760c4a51df126029/matplotlib-3.10.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285", size = 8789336, upload-time = "2026-04-24T00:12:26.096Z" }, + { url = "https://files.pythonhosted.org/packages/5c/04/030a2f61ef2158f5e4c259487a92ac877732499fb33d871585d89e03c42d/matplotlib-3.10.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2", size = 9604602, upload-time = "2026-04-24T00:12:29.052Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c2/541e4d09d87bb6b5830fc28b4c887a9a8cf4e1c6cee698a8c05552ae2003/matplotlib-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf", size = 9670966, upload-time = "2026-04-24T00:12:32.131Z" }, + { url = "https://files.pythonhosted.org/packages/04/a1/4571fc46e7702de8d0c2dc54ad1b2f8e29328dea3ee90831181f7353d93c/matplotlib-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6", size = 8217462, upload-time = "2026-04-24T00:12:35.226Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d0/2269edb12aa30c13c8bcc9382892e39943ce1d28aab4ec296e0381798e81/matplotlib-3.10.9-cp312-cp312-win_arm64.whl", hash = "sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42", size = 8136688, upload-time = "2026-04-24T00:12:37.442Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d3/8d4f6afbecb49fc04e060a57c0fce39ea51cc163a6bd87303ccd698e4fa6/matplotlib-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f", size = 8320331, upload-time = "2026-04-24T00:12:39.688Z" }, + { url = "https://files.pythonhosted.org/packages/63/d9/9e14bc7564bf92d5ffa801ae5fac819ce74b925dfb55e3ebde61a3bbad3e/matplotlib-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e", size = 8216461, upload-time = "2026-04-24T00:12:42.494Z" }, + { url = "https://files.pythonhosted.org/packages/8a/17/4402d0d14ccf1dfc70932600b68097fbbf9c898a4871d2cbbe79c7801a32/matplotlib-3.10.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f", size = 8790091, upload-time = "2026-04-24T00:12:44.789Z" }, + { url = "https://files.pythonhosted.org/packages/3e/0b/322aeec06dd9b91411f92028b37d447342770a24392aa4813e317064dad5/matplotlib-3.10.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838", size = 9605027, upload-time = "2026-04-24T00:12:47.583Z" }, + { url = "https://files.pythonhosted.org/packages/74/88/5f13482f55e7b00bcfc09838b093c2456e1379978d2a146844aae05350ad/matplotlib-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2", size = 9671269, upload-time = "2026-04-24T00:12:50.878Z" }, + { url = "https://files.pythonhosted.org/packages/c5/e0/0840fd2f93da988ec660b8ad1984abe9f25d2aed22a5e394ff1c68c88307/matplotlib-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921", size = 8217588, upload-time = "2026-04-24T00:12:53.784Z" }, + { url = "https://files.pythonhosted.org/packages/47/b9/d706d06dd605c49b9f83a2aed8c13e3e5db70697d7a80b7e3d7915de6b17/matplotlib-3.10.9-cp313-cp313-win_arm64.whl", hash = "sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8", size = 8136913, upload-time = "2026-04-24T00:12:56.501Z" }, + { url = "https://files.pythonhosted.org/packages/9b/45/6e32d96978264c8ca8c4b1010adb955a1a49cfaf314e212bbc8908f04a61/matplotlib-3.10.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9", size = 8368019, upload-time = "2026-04-24T00:12:58.896Z" }, + { url = "https://files.pythonhosted.org/packages/86/0a/c8e3d3bba245f0f7fc424937f8ff7ef77291a36af3edb97ccd78aa93d84f/matplotlib-3.10.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4", size = 8264645, upload-time = "2026-04-24T00:13:01.406Z" }, + { url = "https://files.pythonhosted.org/packages/3d/aa/5bf5a14fe4fed73a4209a155606f8096ff797aad89c6c35179026571133e/matplotlib-3.10.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc", size = 8802194, upload-time = "2026-04-24T00:13:03.702Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5e/b4be852d6bba6fd15893fadf91ff26ae49cb91aac789e95dde9d342e664f/matplotlib-3.10.9-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99", size = 9622684, upload-time = "2026-04-24T00:13:06.647Z" }, + { url = "https://files.pythonhosted.org/packages/4c/3d/ed428c971139112ef730f62770654d609467346d09d4b62617e1afd68a5a/matplotlib-3.10.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d", size = 9680790, upload-time = "2026-04-24T00:13:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/e7/09/052e884aaf2b985c63cb79f715f1d5b6a3eaa7de78f6a52b9dbc077d5b53/matplotlib-3.10.9-cp313-cp313t-win_amd64.whl", hash = "sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8", size = 8287571, upload-time = "2026-04-24T00:13:13.087Z" }, + { url = "https://files.pythonhosted.org/packages/f4/38/ae27288e788c35a4250491422f3db7750366fc8c97d6f36fbdecfc1f5518/matplotlib-3.10.9-cp313-cp313t-win_arm64.whl", hash = "sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38", size = 8188292, upload-time = "2026-04-24T00:13:15.546Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e6/3bd8afd04949f02eabc1c17115ea5255e19cacd4d06fc5abdde4eeb0052c/matplotlib-3.10.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d", size = 8321276, upload-time = "2026-04-24T00:13:18.318Z" }, + { url = "https://files.pythonhosted.org/packages/41/86/86231232fff41c9f8e4a1a7d7a597d349a02527109c3af7d618366122139/matplotlib-3.10.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f", size = 8218218, upload-time = "2026-04-24T00:13:20.974Z" }, + { url = "https://files.pythonhosted.org/packages/85/8f/becc9722cafc64f5d2eb0b7c1bf5f585271c618a45dbd8fabeb021f898b6/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b", size = 9608145, upload-time = "2026-04-24T00:13:23.228Z" }, + { url = "https://files.pythonhosted.org/packages/32/5d/f7e914f7d9325abff4057cee62c0fa70263683189f774473cbfb534cd13b/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2", size = 9885085, upload-time = "2026-04-24T00:13:25.849Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fd/fa69f2221534e80cc5772ac2b7d222011a2acafc2ec7216d5dd174c864ae/matplotlib-3.10.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716", size = 9672358, upload-time = "2026-04-24T00:13:28.906Z" }, + { url = "https://files.pythonhosted.org/packages/ab/1a/5a4f747a8b271cbb024946d2dd3c913ab5032ba430626f8c3528ada96b4b/matplotlib-3.10.9-cp314-cp314-win_amd64.whl", hash = "sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f", size = 8349970, upload-time = "2026-04-24T00:13:31.904Z" }, + { url = "https://files.pythonhosted.org/packages/64/dc/95d60ecaefe30680a154b52ea96ab4b0dab547f1fd6aa12f5fb655e89cae/matplotlib-3.10.9-cp314-cp314-win_arm64.whl", hash = "sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456", size = 8272785, upload-time = "2026-04-24T00:13:34.511Z" }, + { url = "https://files.pythonhosted.org/packages/70/a0/005d68bc8b8418300ce6591f18586910a8526806e2ab663933d9f20a41e9/matplotlib-3.10.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe", size = 8367999, upload-time = "2026-04-24T00:13:36.962Z" }, + { url = "https://files.pythonhosted.org/packages/22/05/1236cc9290be70b2498af20ca348add76e3fffe7f67b477db5133a84f3ea/matplotlib-3.10.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6", size = 8264543, upload-time = "2026-04-24T00:13:39.851Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c2/071f5a5ff6c5bd63aaaf2f45c811d9bf2ced94bde188d9e1a519e21d0cba/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c", size = 9622800, upload-time = "2026-04-24T00:13:42.296Z" }, + { url = "https://files.pythonhosted.org/packages/95/57/da7d1f10a85624b9e7db68e069dd94e58dc41dbf9463c5921632ecbe3661/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4", size = 9888561, upload-time = "2026-04-24T00:13:45.026Z" }, + { url = "https://files.pythonhosted.org/packages/67/b2/ef8d6bb59b0edb6c16c968b70f548aa13b54348972def5aa6ac85df67145/matplotlib-3.10.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf", size = 9680884, upload-time = "2026-04-24T00:13:48.066Z" }, + { url = "https://files.pythonhosted.org/packages/61/1c/d21bfeb9931881ebe96bcfcff27c7ae4b160ae0ec291a714c42641a56d75/matplotlib-3.10.9-cp314-cp314t-win_amd64.whl", hash = "sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39", size = 8432333, upload-time = "2026-04-24T00:13:51.008Z" }, + { url = "https://files.pythonhosted.org/packages/78/23/92493c3e6e1b635ccfff146f7b99e674808787915420373ac399283764c2/matplotlib-3.10.9-cp314-cp314t-win_arm64.whl", hash = "sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c", size = 8324785, upload-time = "2026-04-24T00:13:53.633Z" }, ] [[package]] @@ -1476,11 +1477,11 @@ wheels = [ [[package]] name = "packaging" -version = "26.0" +version = "26.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, ] [[package]] @@ -1555,11 +1556,11 @@ wheels = [ [[package]] name = "pathspec" -version = "1.0.4" +version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, + { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" }, ] [[package]] @@ -1977,15 +1978,15 @@ wheels = [ [[package]] name = "rich" -version = "14.3.3" +version = "15.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" }, + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, ] [[package]] @@ -2234,11 +2235,11 @@ wheels = [ [[package]] name = "trove-classifiers" -version = "2026.1.14.14" +version = "2026.4.28.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/43/7935f8ea93fcb6680bc10a6fdbf534075c198eeead59150dd5ed68449642/trove_classifiers-2026.1.14.14.tar.gz", hash = "sha256:00492545a1402b09d4858605ba190ea33243d361e2b01c9c296ce06b5c3325f3", size = 16997, upload-time = "2026-01-14T14:54:50.526Z" } +sdist = { url = "https://files.pythonhosted.org/packages/04/af/88fdebf242bc7bc4957c96c5358a2b2b0f07e5001401906783a521ea9f54/trove_classifiers-2026.4.28.13.tar.gz", hash = "sha256:c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676", size = 17035, upload-time = "2026-04-28T13:45:41.495Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/4a/2e5583e544bc437d5e8e54b47db87430df9031b29b48d17f26d129fa60c0/trove_classifiers-2026.1.14.14-py3-none-any.whl", hash = "sha256:1f9553927f18d0513d8e5ff80ab8980b8202ce37ecae0e3274ed2ef11880e74d", size = 14197, upload-time = "2026-01-14T14:54:49.067Z" }, + { url = "https://files.pythonhosted.org/packages/d6/bb/fbdc4e57731efb86b4209ffdd2519520782bf27b3c961beac3e5c20d2b87/trove_classifiers-2026.4.28.13-py3-none-any.whl", hash = "sha256:8f4b1eb4e16296b57d612965444f87a83861cc989a0451ac97fe4265ddef03b8", size = 14216, upload-time = "2026-04-28T13:45:39.943Z" }, ] [[package]] @@ -2252,11 +2253,11 @@ wheels = [ [[package]] name = "tzdata" -version = "2026.1" +version = "2026.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/19/f5/cd531b2d15a671a40c0f66cf06bc3570a12cd56eef98960068ebbad1bf5a/tzdata-2026.1.tar.gz", hash = "sha256:67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98", size = 197639, upload-time = "2026-04-03T11:25:22.002Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/19/1b9b0e29f30c6d35cb345486df41110984ea67ae69dddbc0e8a100999493/tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10", size = 198254, upload-time = "2026-04-24T15:22:08.651Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/70/d460bd685a170790ec89317e9bd33047988e4bce507b831f5db771e142de/tzdata-2026.1-py2.py3-none-any.whl", hash = "sha256:4b1d2be7ac37ceafd7327b961aa3a54e467efbdb563a23655fbfe0d39cfc42a9", size = 348952, upload-time = "2026-04-03T11:25:20.313Z" }, + { url = "https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7", size = 349321, upload-time = "2026-04-24T15:22:05.876Z" }, ] [[package]]