2.2 KiB
GovOPlaN Release Dependencies
Release installs must not depend on sibling checkout paths. Local development can keep editable installs and file: WebUI links, but release packaging should resolve modules from tagged git refs or from a package registry.
Backend
Local development:
cd /mnt/DATA/git/govoplan-core
./.venv/bin/python -m pip install -r requirements-dev.txt
Release install from tagged module repositories:
cd /mnt/DATA/git/govoplan-core
./.venv/bin/python -m pip install -r requirements-release.txt
requirements-release.txt pins the module repositories to the release tag. Update those refs when cutting a release:
govoplan-files git@git.add-ideas.de:add-ideas/govoplan-files.git v0.1.0
govoplan-mail git@git.add-ideas.de:add-ideas/govoplan-mail.git v0.1.0
govoplan-campaign git@git.add-ideas.de:add-ideas/govoplan-campaign.git v0.1.0
WebUI
Local development uses webui/package.json, which may point at sibling module checkouts while active development is happening.
Release WebUI installs should use webui/package.release.json. It points module dependencies at the same tagged git repositories. To generate a release lockfile, copy it over package.json in a release branch or build workspace and then run npm install there:
cd /mnt/DATA/git/govoplan-core/webui
cp package.release.json package.json
PATH=/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm install
PATH=/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run build
The module repositories include root-level npm package manifests so git installs can resolve @govoplan/files-webui, @govoplan/mail-webui, and @govoplan/campaign-webui from repository roots even though their source lives below webui/src.
Release Checklist
- Keep Python package versions, WebUI package versions, and git tags aligned.
- Tag core, files, mail, and campaign repositories together.
- Update
requirements-release.txtandwebui/package.release.jsonwhen the release tag changes. - Generate release lockfiles from release manifests in a clean build workspace.
- Do not commit local sibling paths into release manifests.