Skip to content

chore: bump deps to open-aea 2.2.1 / open-autonomy 0.21.18 + migrate scripts to CLIs#22

Merged
DavidMinarsch merged 14 commits into
mainfrom
chore/bump-deps-migrate-scripts
Apr 17, 2026
Merged

chore: bump deps to open-aea 2.2.1 / open-autonomy 0.21.18 + migrate scripts to CLIs#22
DavidMinarsch merged 14 commits into
mainfrom
chore/bump-deps-migrate-scripts

Conversation

@DhairyaPatel7
Copy link
Copy Markdown
Contributor

@DhairyaPatel7 DhairyaPatel7 commented Apr 16, 2026

Summary

Bumps all framework dependencies and migrates CI scripts to CLI commands.

Dependency bumps

  • open-aea*: ==2.1.0==2.2.1
  • open-autonomy: ==0.21.13==0.21.18
  • tomte: ==0.6.2==0.6.5
  • Python constraint tightened to >=3.10, <3.15 (matches open-autonomy's real support range and the existing classifiers)

Scripts removed

scripts/ (and the top-level tests/) are deleted entirely, per review feedback that tests canonically live under packages/<author>/<skill>/tests/. Migration path for forks:

Deleted script Replacement
scripts/check_dependencies.py aea-ci check-dependencies --check
scripts/bump.py aea-helpers bump-dependencies (install open-aea-helpers)
scripts/check_doc_ipfs_hashes.py aea-helpers check-doc-hashes (open-autonomy plugin — layout-agnostic, unlike the hardcoded aea-ci check-doc-hashes from open-aea)

Heads-up for downstream forks: anything that referenced scripts/check_dependencies.py, scripts/bump.py, or scripts/check_doc_ipfs_hashes.py must switch to the aea-ci / aea-helpers commands above.

CI-compatibility fixes

  • pytest-custom_exit_code plugin added so the empty template passes the py3.1x-* matrix when packages/ has no tests yet. When a user adds packages/<author>/<skill>/tests/, pytest auto-picks them up.
  • setuptools<=81.0.0 pinned because liccheck 0.6.0 (via tomte[liccheck]==0.6.5) imports pkg_resources, which was removed in setuptools 81+.
  • open-aea-ci-helpers and open-aea-helpers pinned in [tool.poetry.dependencies] (required by aea-ci check-dependencies --check, which only reads main deps).
  • tox.ini consolidated: open-autonomy[all]==0.21.18 now lives in [deps-packages] + liccheck whitelist only (was duplicated in 6 places; redundant explicit lines dropped from check-hash, check-packages, check-abciapp-specs, and the dead [extra-deps] block deleted).
  • Regenerated poetry.lock (was stale from pre-PR state).

README refresh

Rewritten to reflect current repo state: accurate packages/ description, .env behaviour, Poetry 2.0+ requirement (poetry install + eval $(poetry env activate)poetry shell was removed in Poetry 2.0), and a table covering the make targets that actually exist.

Test plan

  • tox -e black-check, isort-check, flake8, mypy, pylint, darglint, bandit
  • tox -e check-dependencies, check-hash, check-packages, check-abciapp-specs, abci-docstrings, check-doc-hashes
  • tox -e liccheck (verified locally with manual pip workaround)
  • tox -e py{3.10,3.11,3.12,3.13,3.14}-darwin
  • tomte check-copyright, check-doc-links, check-spelling, check-code; gitleaks
  • Full CI matrix green on commit 9f3632b (22/22 jobs)

DhairyaPatel7 and others added 8 commits April 16, 2026 15:43
- open-aea* pins: ==2.1.0 -> ==2.2.1
- open-autonomy pins: ==0.21.13 -> ==0.21.17
- Remove open-aea-ledger-ethereum-flashbots from scripts/bump.py
  (plugin removed upstream in open-aea 2.2.1)
- Remove open-aea-flashbots from dependency ignore lists

Third-party package hashes will need updating once open-autonomy
0.21.17 is released and packages are available on IPFS.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dependency bumps:
  * open-aea*: ==2.1.0 -> ==2.2.1
  * open-autonomy: ==0.21.13 -> ==0.21.17
  * tomte: ==0.6.2 -> ==0.6.5

Script migration (3 scripts deleted):
  * scripts/check_dependencies.py    -> aea-ci check-dependencies --check
  * scripts/check_doc_ipfs_hashes.py -> aea-ci check-doc-hashes
  * scripts/bump.py                  -> aea-helpers bump-dependencies
                                        (install open-aea-helpers)

Flashbots cleanup:
  * Removed open-aea-ledger-ethereum-flashbots from scripts/bump.py
    (done before deletion)
  * Removed open-aea-flashbots from scripts/check_dependencies.py
    (done before deletion)

Remaining in scripts/: __init__.py

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two CI failures:

1. check-packages: ModuleNotFoundError for aea_cli_ipfs. Root cause:
   open-aea-cli-ipfs is behind open-autonomy's [cli]/[all] extras.
   Changed all open-autonomy==0.21.17 pins to open-autonomy[all]==0.21.17
   so the CLI deps are installed.

2. liccheck: regex 2026.4.4 has license "Apache-2.0 AND CNRI-Python".
   CNRI-Python is OSI-approved but not in liccheck's built-in list.
   Added regex to [Authorized Packages].

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bumps open-autonomy from 0.21.17 to 0.21.18 in pyproject.toml and
tox.ini. Poetry lock regenerated.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ense

Two CI failures:

1. check-abciapp-specs: ModuleNotFoundError for aea_cli_ipfs. The env
   had no deps — added open-autonomy[all]==0.21.18 so the autonomy
   CLI and its transitive deps (including open-aea-cli-ipfs) are
   available.

2. liccheck: open-autonomy 0.21.18 wheel metadata reports
   "Other/Proprietary" (Poetry's license field mapping issue). Added
   to [Authorized Packages] whitelist pinned to ==0.21.18.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every tox env that runs the autonomy CLI needs open-autonomy[all]
installed (for open-aea-cli-ipfs, python-dotenv, and other extras).
Previously only check-hash and check-packages had it explicitly;
check-dependencies, check-abciapp-specs, and the base testenv did not.

Root fix: add open-autonomy[all]==0.21.18 to [deps-packages] so all
inheriting envs get it automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aea-ci check-dependencies --check strictly compares deps declared in
pyproject.toml vs tox.ini. Added missing explicit deps to both:

pyproject.toml:
  * open-autonomy[all]==0.21.18 (was bare, needs [all] for CLI extras)
  * open-aea[all]==2.2.1
  * open-aea-cli-ipfs==2.2.1
  * open-aea-ci-helpers==2.2.1
  * setuptools<=81.0.0

tox.ini [deps-packages]:
  * open-aea[all]==2.2.1
  * open-aea-cli-ipfs==2.2.1
  * toml==0.10.2

Poetry lock regenerated.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aea-ci check-doc-hashes has deploy-image/build.sh hardcoded in its
file list (designed for open-autonomy's repo structure). dev-template
has no deploy-image directory and no IPFS hashes in any docs — the
check was always a no-op here.

Removed the workflow step and tox env.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread tox.ini Outdated
Comment on lines +273 to +276
; check-doc-hashes removed — aea-ci check-doc-hashes is hardcoded for
; open-autonomy's directory structure (requires deploy-image/build.sh).
; dev-template has no deployment images. Upstream fix needed to make
; the command configurable before it can be used here.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why aren't we fixing this in open-autonomy first?

Copy link
Copy Markdown
Contributor Author

@DhairyaPatel7 DhairyaPatel7 Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will be creating a PR in Open aea as well, but since this check was anyways not being used for this repo, to unblock the CI have added a comment.

@DavidMinarsch
Copy link
Copy Markdown
Contributor

imo both tests and scripts folder can be deleted. Tests are canonically to be in packages as well so we are not even implying a good pattern

@DavidMinarsch
Copy link
Copy Markdown
Contributor

readme is outdated

Comment thread pyproject.toml Outdated
Comment on lines +20 to +23
open-aea = {version = "==2.2.1", extras = ["all"]}
open-aea-cli-ipfs = "==2.2.1"
open-aea-ci-helpers = "==2.2.1"
setuptools = "<=81.0.0"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these really needed? I'm asking because if they are just transitive deps then it would be cleaner as it was before. Otherwise please also consider if keeping the required ones in development below makes more sense.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same question for tox.ini

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — you're right about the transitive ones. Confirmed by empirically running aea-ci check-dependencies --check locally:

  • open-aea[all]==2.2.1 and open-aea-cli-ipfs==2.2.1redundant, transitive via open-autonomy[all]. Removed from both pyproject.toml and tox.ini [deps-packages].
  • open-aea-ci-helpers==2.2.1 and setuptools<=81.0.0required in main deps. Tested moving them to [tool.poetry.group.development.dependencies] and the checker fails with ERROR: X not found in pyproject.toml. aea-ci check-dependencies only reads [tool.poetry.dependencies] (source), not group deps — so they have to stay there to satisfy the check.

DhairyaPatel7 and others added 4 commits April 17, 2026 01:58
Both are transitive via open-autonomy[all], so explicit pins were
redundant. Verified aea-ci check-dependencies --check still passes
locally with only the deps it actually enforces:
  - open-aea-ci-helpers (required — in tox.ini check-dependencies env)
  - setuptools (required — in tox.ini liccheck env)

Kept in [tool.poetry.dependencies] because the checker only reads
that section, not dev group deps.

Addresses review feedback from @OjusWiZard.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per review feedback from @DavidMinarsch: tests canonically live in
packages/<author>/<skill>/tests, so keeping a top-level tests/ with
a dummy test implies a bad pattern. Same for scripts/ which is now
empty after the CLI migration.

Changes:
  * Delete scripts/ (only __init__.py remained after CLI migration)
  * Delete tests/ (contained only a dummy no-op test)
  * tox.ini: strip `scripts` and `tests/` references from all lint
    envs; repoint pytest at packages/ so it targets the canonical
    test location
  * Makefile: drop `-e check-doc-hashes` from common-checks-1 target
    (env was removed earlier)
  * README: fix Python version typo (>=10 -> >=3.10)

Verified aea-ci check-dependencies --check still passes locally.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Addresses @DavidMinarsch's review feedback that the README was
outdated. Key fixes:

  * poetry shell -> poetry env activate (shell removed in Poetry 2.0)
  * Python version: clarified as >=3.10, <4.0 (tested on 3.10-3.14)
  * Note Poetry >=2.0 requirement (pyproject pins poetry-core>=2.0.0)
  * Drop separate Pip bullet (poetry brings it transitively)
  * packages/ description corrected (not an "empty directory" — has
    packages.json with dev/third_party trees)
  * .env description corrected (prepends project root to PYTHONPATH,
    not just the packages directory)
  * Expanded Useful commands into a table covering formatters,
    code-checks, security, generators, common-checks-1, clean,
    autonomy test
  * Link to CONTRIBUTING.md for pre-PR workflow

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Root cause: deleting tests/ removed the dummy test that kept pytest
from exiting with code 5 ("no tests collected"), which tox treats as
failure. Empty packages/ (template state) has nothing for pytest to
find, so the py3.1x-{linux,darwin,win} matrix fails on empty forks.

Fix: add pytest-custom_exit_code plugin and pass
--suppress-no-test-exit-code so exit 5 is converted to exit 0. When
users add packages/<author>/<skill>/tests/ (canonical location per
@DavidMinarsch), pytest picks them up automatically and CI starts
running real tests with no extra user action.

Chosen over alternatives:
  * Fake skill scaffold under packages/ — implies a pattern the
    template shouldn't dictate.
  * Root conftest.py with pytest_sessionfinish hook — less
    discoverable than a named flag.
  * Commenting out CI test steps — risks users silently shipping
    with no tests running for weeks before they notice.

Also fixes the Python version marker: pyproject previously claimed
python = "<4.0,>=3.10" but open-autonomy[all]==0.21.18 requires
<3.15,>=3.10 (and the existing classifiers list only 3.10-3.14).
Updated to "<3.15,>=3.10" so the constraint matches reality —
without this, `poetry lock` couldn't resolve.

Regenerated poetry.lock (was stale from pre-PR state — last updated
before the open-aea 2.2.1 / open-autonomy 0.21.18 bumps).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread pyproject.toml
python = "<3.15,>=3.10"
open-autonomy = {version = "==0.21.18", extras = ["all"]}
open-aea-ci-helpers = "==2.2.1"
pytest-custom_exit_code = "==0.3.0"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needed because of your earlier feedback to delete tests/. That removed the dummy test which kept pytest from exiting with code 5 on the empty template. The plugin + --suppress-no-test-exit-code converts exit-5 to 0 on empty packages/ so the py3.1x-* matrix passes. When users add packages/<author>/<skill>/tests/, pytest finds them automatically.

Placed in [tool.poetry.dependencies] because aea-ci check-dependencies --check only reads that section (not group deps) — same reason as open-aea-ci-helpers.

Comment thread pyproject.toml
open-autonomy = {version = "==0.21.18", extras = ["all"]}
open-aea-ci-helpers = "==2.2.1"
pytest-custom_exit_code = "==0.3.0"
setuptools = "<=81.0.0"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Required for the [testenv:liccheck] env: liccheck 0.6.0 (pulled in via tomte 0.6.5[liccheck]) imports pkg_resources, which was removed in setuptools 81+. Verified empirically just now — removing the pin gives ModuleNotFoundError: No module named 'pkg_resources' in the liccheck env.

Pin was originally added by @OjusWiZard in commit fbb3160 (fix: liccheck) pre-PR. The only new thing in this PR is that I also declared it in pyproject.toml, because aea-ci check-dependencies --check requires anything in tox.ini to also be in [tool.poetry.dependencies] (it doesn't read dev groups).

Fair point on the downstream ceiling. Cleanest long-term fixes are upstream: either teach aea-ci check-dependencies to read dev-group deps (so we can move this to development), or upgrade liccheck to one that uses importlib.metadata instead of pkg_resources. Happy to file either if you'd like — they're both out of scope for this PR though.

Comment thread README.md Outdated
## System requirements

- Python `>=10`
- Python `>=3.10, <4.0` (tested on 3.10–3.14)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Python `>=3.10, <4.0` (tested on 3.10–3.14)
- Python `>=3.10, <3.15`

Comment thread README.md Outdated
```

Get developing...
> `poetry shell` was removed in Poetry 2.0 — use `poetry env activate` (prints the activation command) or prefix commands with `poetry run`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's clean that up. don't need a history on poetry

@DavidMinarsch
Copy link
Copy Markdown
Contributor

Review

All 22 CI jobs pass, including the full Python 3.10–3.14 × 3-OS matrix. Reviewer feedback on deleting tests/scripts and refreshing the README was acted on. A few items before merge:

Blocking

1. Stale PR description. Please refresh:

  • Says "open-autonomy 0.21.17" — actually 0.21.18 (49b4029).
  • Says "check_doc_ipfs_hashes.pyaea-ci check-doc-hashes" — actually removed with no replacement (59a1336), because upstream is hardcoded to open-autonomy's layout.
  • Says "Remaining in scripts/: __init__.py" — scripts/ is gone entirely (8203faa).

2. README Python upper bound is wrong. README.md:7 says Python >=3.10, <4.0 but pyproject.toml:18 pins <3.15,>=3.10. Reconcile to <3.15.

Non-blocking nits

3. open-autonomy==0.21.18 duplicated in 6 places. Exact pins are intentional, but the literal version string is repeated across [deps-packages], [extra-deps], check-hash, check-packages, check-abciapp-specs, and the liccheck whitelist. Next bump = 6 edits with drift risk. Worth consolidating via {[deps-packages]deps} / {[extra-deps]deps} references where possible so the version lives in one place.

4. setuptools = "<=81.0.0" placement. It's in runtime deps (pyproject.toml:22) but looks like a build/tooling workaround (matches tox.ini:301). If so, it belongs under [tool.poetry.group.development.dependencies] — otherwise it imposes a ceiling on downstream consumers of the template.

5. check-abciapp-specs installs open-autonomy[all] twice — once via {[testenv]deps}[deps-packages], and once explicitly (tox.ini:278). The explicit line is redundant after 23c52d2.

6. Downstream heads-up. Forks relying on scripts/check_dependencies.py, scripts/bump.py, or scripts/check_doc_ipfs_hashes.py will break silently. A line in the PR body pointing them to aea-ci / aea-helpers would help.

Addresses @DavidMinarsch's follow-up review:

README.md:
  * Line 7: adopt David's suggestion — "Python >=3.10, <3.15" (matches
    pyproject.toml constraint; drops the "(tested on 3.10-3.14)" prose).
  * Line 34: drop the Poetry-shell removal note — just show the
    activation command without the history.

tox.ini: consolidate open-autonomy[all]==0.21.18 from 6 places to 2.
  * Delete unused [extra-deps] block (dead code — not referenced
    anywhere in tox.ini).
  * Remove redundant explicit line in check-hash, check-packages, and
    check-abciapp-specs — they already inherit the pin via
    {[testenv]deps} -> [deps-packages]. After this, the version lives
    only in [deps-packages] and the liccheck [Authorized Packages]
    whitelist (which is version-locked by design).

Verified locally: all 19 tox/tomte envs I can run on this machine
pass (the full Python 3.10-3.14 darwin matrix, check-dependencies,
check-hash, check-packages, check-abciapp-specs, abci-docstrings,
liccheck, and all tomte CLI checks + gitleaks). Remaining envs
(safety, check-generate-all-protocols) are blocked by pre-existing
local tooling mismatches, not my changes — both passed on CI for
63e8895.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@DavidMinarsch
Copy link
Copy Markdown
Contributor

Re-review

All 22 CI jobs pass on 9f3632b. Previous nits addressed cleanly.

Resolved

  • PR description refreshed — accurate on 0.21.18, check-doc-hashes removal with upstream follow-up, and downstream-forks migration guide.
  • README Python range → >=3.10, <3.15 (matches pyproject.toml).
  • open-autonomy[all]==0.21.18 deduped from 6 → 2 call sites ([deps-packages] + liccheck whitelist). Dead [extra-deps] block removed; check-hash, check-packages, check-abciapp-specs now inherit via {[testenv]deps}.

Remaining (non-blocking)

  1. PR title still says 0.21.17 — body is correct. Fix on squash/merge.
  2. setuptools = "<=81.0.0" placement (pyproject.toml:22). The body now explains the reason (liccheck 0.6.0 imports pkg_resources, removed in setuptools 81). Since liccheck is pulled via tomte in the dev group, the pin logically belongs under [tool.poetry.group.development.dependencies] rather than imposing the ceiling on consumers of the template's runtime deps. One-line move — pick up in a follow-up unless there's a reason the ceiling needs to apply at install time.

LGTM — ship it.

The open-autonomy plugin aea-helpers exposes a layout-agnostic
check-doc-hashes command — unlike the open-aea aea-ci variant that
hardcoded deploy-image/build.sh. aea-helpers check-doc-hashes:
  - default scan path is just Path("docs") (repeatable --doc-path)
  - handles missing docs/ gracefully (empty rglob -> no-op)
  - exits 0 cleanly on templates with no docs yet

Verified locally: tox -e check-doc-hashes passes on the empty
template with "No commands were found in the docs. Skipping."

Restores the check-doc-hashes tox env and the corresponding CI
workflow step (both deleted in 59a1336 when we thought an upstream
open-aea PR was the only path). No upstream PR required anymore —
aea-helpers is the right tool for this job.

Adds open-aea-helpers==0.21.18 to [tool.poetry.dependencies] (not a
transitive dep of open-autonomy[all]; required explicitly in main
deps for aea-ci check-dependencies compliance).

poetry.lock regenerated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@DhairyaPatel7 DhairyaPatel7 changed the title chore: bump deps to open-aea 2.2.1 / open-autonomy 0.21.17 + migrate scripts to CLIs chore: bump deps to open-aea 2.2.1 / open-autonomy 0.21.18 + migrate scripts to CLIs Apr 17, 2026
@DhairyaPatel7
Copy link
Copy Markdown
Contributor Author

Thanks for the re-review and LGTM!

PR title: fixed — now reads 0.21.18.

setuptools placement: I tested the dev-group move and can confirm the ceiling is indeed there at install time, via the aea-ci check-dependencies tool itself:

aea-ci check-dependencies only reads config["tool"]["poetry"]["dependencies"] (source). Moving setuptools under [tool.poetry.group.development.dependencies] fails with ERROR: setuptools not found in pyproject.toml because the checker enforces tox.inipyproject.toml[dependencies] parity and doesn't traverse dev groups.

I also checked the freshly-added aea-helpers check-dependencies (open-autonomy plugin) — same restriction, same line:
https://github.com/valory-xyz/open-autonomy/blob/main/plugins/aea-helpers/aea_helpers/check_dependencies.py#L411

So cleanest fix is upstream in both checker variants — teach them to also read [tool.poetry.group.development.dependencies] when resolving tox.ini deps. Happy to open that follow-up PR. Until then, I'd rather keep setuptools in main deps and keep check-dependencies green than move it and silently disable the consistency check.

Bonus: while digging into aea-helpers for this, I found it also exposes a layout-agnostic check-doc-hashes (default docs/ path, handles missing dir gracefully). Just pushed b0d3a9b which restores the check-doc-hashes tox env + workflow step using it — so no upstream open-aea PR needed for that anymore. PR body updated to reflect this.

Copy link
Copy Markdown
Contributor

@DavidMinarsch DavidMinarsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

All 22 CI jobs pass on b0d3a9b. The aea-helpers check-doc-hashes restoration is a clean solve — avoids the upstream dependency and handles the empty-docs/ case gracefully.

Non-blocking follow-ups (pick up later)

  1. PR title still says 0.21.17 — body is correct; fix on squash/merge.
  2. setuptools = "<=81.0.0" sits in main deps but is driven by a liccheck (dev-only) constraint — logically belongs under [tool.poetry.group.development.dependencies].
  3. open-aea-helpers==0.21.18 literal pinned in both pyproject.toml:21 and tox.ini:262. Only check-doc-hashes uses it, so keeping it local is defensible; lifting to [deps-packages] would be consistent with the open-autonomy dedup pattern if another env ever needs it.

Ship it.

@DavidMinarsch DavidMinarsch merged commit 31c7d85 into main Apr 17, 2026
22 checks passed
@DavidMinarsch DavidMinarsch deleted the chore/bump-deps-migrate-scripts branch April 17, 2026 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants