Delivery and branches¶
One repository, two branches¶
The source lives in one private repository with two long-lived branches. The packages built from them are what is published; the source is not.
| Branch | Holds | Tag | Package |
|---|---|---|---|
main |
The free edition | vMAJOR.MINOR.PATCH |
rup-flow-free-<version>.zip |
pro |
main plus the pro/ folder: overlay, build, tests, license |
pro-vMAJOR.MINOR.PATCH |
rup-flow-pro-<version>.zip |
main is complete and never contains anything from Pro. After a change lands in main it is
merged into pro, so the Pro build always contains a known free version, and the Pro package
states it. Both branches only take changes through pull requests with CI complete.
From change to package¶
| Job | Checks |
|---|---|
| Validate | Skill format, links, no sensitive-looking names, no Pro templates in the free tree |
| Test | The CLI suite on Linux and Windows with Node.js 18 and 22 |
| Render | init, new use-case, render and check against a real PlantUML server |
| Pro tests | The built Pro skill: every command, the explorer, the example project and the package |
The release workflow checks that the tag equals the version in the files, runs the tests, builds the package and attaches it to the GitHub release with the changelog section as its notes. A release is never overwritten.
Version identity¶
A package names its version in three places that must agree: the file name, SKILL.md
metadata and the output of RUP version. Pro also names the free version it contains. See
Versioning and URLs.
This documentation¶
The site is built with MkDocs Material and published with Mike, from the public
rup-flow-docs repository. The version selector uses the free edition's MAJOR.MINOR, and
Pro is documented on the line of the free version it contains. Each approved publication gets
an immutable tag and a GitHub release.