Skip to content

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.

Mirroring the Staging layout, each Target gets its own Production Repository:

myorg/acme-sdk-typescript
myorg/acme-sdk-python
myorg/acme-sdk-java

These 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.

Just two things:

  • The main branch, 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.

Production Repositories are updated through a two-step release flow that starts in the Staging Repository:

  1. When next in Staging is ready to ship, Soxom opens a Staging Release PR (nextmain) in the Staging Repository. The PR title contains the proposed semver bump and the body contains an auto-generated changelog.
  2. Merging the Staging Release PR makes main in Staging the new released code.
  3. Soxom then opens a Production Release PR in the Production Repository whose contents are a copy of main from Staging.
  4. Merging the Production Release PR creates the semver tag (e.g., v1.2.0) on the new main commit 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:

Terminal window
# Go
go 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.0

For 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.