Public Access
3.0 KiB
3.0 KiB
deployment-coordination
How devx releases propagate to downstream repos. devx is the base package — all other repos pin it. A devx release must complete before consumers can bump.
When to Invoke
Invoke this skill when:
- Changes to devx affect downstream repos (grm, sso-bridge, infra)
- Preparing a devx release that other repos depend on
- Verifying downstream repos have bumped to the latest devx version
- Coordinating a multi-repo change that starts in devx
Prerequisites
- devx repo at
/home/emo/dev/ideas/oblachno/devx .envwithDEVELOPER_GITEA_API_TOKEN- See
dependency-graphskill for the full ecosystem map
What devx Produces
devx publishes a Python package to the Gitea PyPI registry. Downstream repos pin it:
"devx @ git+https://git.oblachno.oblachno.fyi/oblachno-oss/devx.git@vX.Y.Z"
Release Flow
- PR merged to master
- Post-merge workflow runs
devx.ci.release— classifies changes - If user-facing changes: git-cliff bumps version, creates tag, pushes
devx.ci.publishbuilds and publishes to Gitea PyPI registry- Downstream repos must bump their pinned devx version
Downstream Consumers
| Repo | Pin location | Auto-bump? |
|---|---|---|
| grm | pyproject.toml |
No — manual |
| sso-bridge | pyproject.toml |
No — manual |
| infra | pyproject.toml |
No — manual |
devx does NOT auto-create dependency PRs in downstream repos. Bumping is manual: create a PR in each downstream repo to update the pinned version.
Coordinating a devx Change
When a change to devx affects downstream repos:
- Merge devx PR — wait for post-merge publish to complete
- Verify publish — check the new tag exists:
curl -sS -H "Authorization: token $DEVELOPER_GITEA_API_TOKEN" \ https://git.oblachno.oblachno.fyi/api/v1/repos/oblachno-oss/devx/releases/latest \ | python3 -c "import json,sys; print(json.load(sys.stdin).get('tag_name','?'))" - Bump downstream repos — for each repo (grm, sso-bridge, infra):
- Update
devx @ ...@vX.Y.Zinpyproject.toml - Run
make setupto install the new version - Run
make pytest-covto verify compatibility - Create and merge a PR
- Update
- Verify infra deploys — after infra bumps, verify staging deploy picks up the new devx version
State Verification
Before starting a devx change, verify current state:
# Current devx version
grep '__version__' /home/emo/dev/ideas/oblachno/devx/src/devx/__init__.py
# What each repo pins
for repo in grm sso-bridge infra; do
echo -n "$repo pins: "
grep 'devx @' /home/emo/dev/ideas/oblachno/$repo/pyproject.toml | grep -oP 'v[\d.]+'
done
If pins are inconsistent across repos, bump them to the latest published version before starting new work.
Common Mistakes
- Merging a devx PR and immediately merging downstream PRs without waiting for the publish job to complete
- Forgetting to bump infra (it has the most complex deploy pipeline)
- Bumping only one downstream repo when the change affects all three