Repository navigation
Add frontend Volto distribution management to deps commands - #86
Merged
Merged
Conversation
Two companion features for projects built on a Volto distribution, keyed on the custom `volto_version` field a distribution publishes: - `deps upgrade frontend` now detects a distribution automatically and, after bumping the base package, fetches its enforced dependencies and `volto_version` from npm into `frontend/distribution.json` (consumed by `.pnpmfile.cjs`) and aligns the `@plone/volto` tag in mrs.developer.json. Plain Volto / non-distribution base packages are unaffected. - New `deps stamp-volto-version` command records the `@plone/volto` tag from mrs.developer.json into the frontend package.json `volto_version` field, for use in a distribution's release-it hook.
ericof
approved these changes
Sep 15, 2026
This was referenced Sep 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds two companion features to the
depscommand group for projects built on a Volto distribution. Both are keyed on the customvolto_versionfield that a distribution package publishes — so plain Volto and non-distribution base packages are unaffected, with no opt-in flag required.1.
deps upgrade frontend— enforce distribution dependenciesWhen the frontend base package is a distribution (detected automatically via
volto_version), upgrading it now also:dependenciesandvolto_versionfrom the npm registry for the new version;frontend/distribution.json(consumed by the project's.pnpmfile.cjshook to pin those versions across the whole pnpm workspace) — beforemake frontend-installruns;@plone/voltotag inmrs.developer.jsonto the distribution'svolto_version.This replaces a per-project
upgrade-distribution.jsscript with first-class repoplone support, fetching npm metadata directly (nopnpm viewshell-out).2.
deps stamp-volto-version— record the Volto version when releasing a distributionNew command that reads the
@plone/voltotag frommrs.developer.jsonand writes it verbatim into the frontend package'spackage.jsonvolto_versionfield. Meant to be wired into a distribution'srelease-itafter:bumphook, so the published package advertises the Volto core it targets — which is exactly what feature #1 reads on the consumer side. The two halves form a closed producer/consumer loop.The command is cwd-independent inside the repo (it locates
repository.tomlby walking up), so it works from the package directory whererelease-itruns.Tests
tests/utils/dependencies/test_utils_distribution.py(unit coverage for detection, sync, stamping, and the no-volto_versionskip path).tests/commands/deps/test_deps.pyfor both the distribution upgrade and the stamp command.in_patch_syncfixture now also stubssync_distribution, since the frontend upgrade path reaches the npm registry unconditionally).All
deps/dependenciessuites pass (124), ruff clean. Verified live (byte-identical output) against theintra.kitconcept.comandkitconcept-websiterepos.