Raxx · internal docs

internal · gated ↑ index

Release-please multi-package configuration

Why two packages

TradeMasterAPI ships two independently deployable artifacts:

Package Path Tag stream Version file
trademaster-api frontend/trademaster_ui trademaster-api-vX.Y.Z frontend/trademaster_ui/package.json
console console/ console-vX.Y.Z console/app/version.py

Before this change, release-please declared a single package at repo root . with release-type: node. There is no package.json at the repo root, so release-please could not resolve the primary version file and never bumped frontend/trademaster_ui/package.json, VERSION, or backend_v2/version.txt. The post-release verify step in release.yml detected the mismatch and exited 1 on every release.

Additionally, the console had no release tags at all. The "Show build" footer link on console.raxx.app pointed to releases/tag/console-v0.10.0, which 404'd because only trademaster-api-v* tags existed. PR #775 added a SHA-commit fallback; this config change adds the actual console-v* tag stream so the preferred link resolves.

How it works

.release-please-config.json declares two packages:

"packages": {
  "frontend/trademaster_ui": {
    "release-type": "node",
    "package-name": "trademaster-api",
    ...
    "extra-files": ["VERSION", "backend_v2/version.txt"]
  },
  "console": {
    "release-type": "python",
    "package-name": "console",
    "version-file": "app/version.py"
  }
}

release-please opens a separate release PR for each package when qualifying commits land on main. The two release PRs are independent — the console can ship a patch without bumping the API, and vice versa.

Tag naming: - API releases: trademaster-api-vX.Y.Z (unchanged from before) - Console releases: console-vX.Y.Z (new)

Changelogs: - API changelog: frontend/trademaster_ui/CHANGELOG.md - Console changelog: console/CHANGELOG.md (already existed)

Extra files (updated by every API release PR): - VERSION — repo-root plaintext version used by build scripts - backend_v2/version.txt — Flask backend version endpoint

The first release after this merges

The first console-v* tag created will be console-v0.10.0 (or the next bump, depending on which commits have landed). Once that tag exists, the "Show build" link in the console footer will navigate to the actual GitHub release page instead of falling back to the SHA link.

The first trademaster-api-v* tag created after this merges will bump frontend/trademaster_ui/package.json (currently at 1.5.4) to the next version determined by the manifest (2.9.0-dev.1 baseline). The manifest seeds both packages at their current versions so release-please knows where to bump from.

Operator checklist after merging

  1. Merge the release PR for trademaster-api when it appears — verifies version files are updated by the post-release-api CI job.
  2. Merge the release PR for console when it appears — verifies console/app/version.py and creates the console-v* tag.
  3. Confirm the "Show build" footer link on console.raxx.app navigates to the release.

References