Production repository
The Production Repository is the public face of your SDK. It contains only release-ready source code on main and carries the semver tags that downstream consumers depend on. There is exactly one Production Repository per SDK Target.
One per SDK Target
Section titled “One per SDK Target”Mirroring the Staging layout, each Target gets its own Production Repository:
myorg/acme-sdk-typescriptmyorg/acme-sdk-pythonmyorg/acme-sdk-javaThese are Soxom-managed but visible to your organization. They’re the repos you point users at when they ask “where’s the source?” — and the ones consumers can go get or install directly from if you don’t publish to a registry.
What’s in it
Section titled “What’s in it”Just two things:
- The
mainbranch, which always reflects the latest released code. - Semver tags (
v0.3.1,v1.0.0,v1.2.0, …) that point at the commits cut from each release.
No codegen/*, no extended/*, no work-in-progress branches. The Production Repository is intentionally minimal so that anyone browsing it sees exactly what’s shipping.
How it gets updated
Section titled “How it gets updated”Production Repositories are updated through a two-step release flow that starts in the Staging Repository:
- When
nextin Staging is ready to ship, Soxom opens a Staging Release PR (next→main) in the Staging Repository. The PR title contains the proposed semver bump and the body contains an auto-generated changelog. - Merging the Staging Release PR makes
mainin Staging the new released code. - Soxom then opens a Production Release PR in the Production Repository whose contents are a copy of
mainfrom Staging. - Merging the Production Release PR creates the semver tag (e.g.,
v1.2.0) on the newmaincommit and, if configured, kicks off registry publishing.
Consuming directly from the Production Repository
Section titled “Consuming directly from the Production Repository”If you don’t publish to a registry, downstream consumers can still depend on the Production Repository directly via Git URLs and tags. This is the default story for Go and is supported for every language:
# Gogo get github.com/myorg/acme-sdk-go@v1.2.0
# Python (pip)pip install git+https://github.com/myorg/acme-sdk-python@v1.2.0
# TypeScript (npm)npm install github:myorg/acme-sdk-typescript#v1.2.0For the polished install story most users expect, opt into registry publishing and Soxom will push tagged releases to npm, PyPI, or Maven Central on each tag.
Next steps
Section titled “Next steps”- Versioning & releases — how the next tag is chosen
- Publishing to registries — npm, PyPI, Maven Central
- Staging repository — the upstream of every release