SDKs
Publishing
Publishing puts the generated SDK where your users already look: npm install, pip install, go get. Connect each registry account once and Octri publishes on every release.
Registries
| Registry | Languages |
|---|---|
| npm | TypeScript |
| PyPI | Python |
| Maven Central | Java, Kotlin |
| crates.io | Rust |
| RubyGems | Ruby |
| Packagist | PHP |
| pub.dev | Dart |
Connect an account under SDK settings. Octri stores the credential against the registry and reuses it for every release.
Go and Swift publish by git tag
Go modules and Swift Package Manager resolve straight from a git repository. There is no registry account to connect, so there's nothing to link: Octri publishes by pushing a tagged commit.
- Connect the GitHub App
Required so Octri can push to the repository.
- Set the repository per language
Each language's SDK usually lives in its own repo (
acme-node,acme-python,acme-go). Set Repository per language. - Release
Octri pushes the generated code and a version tag.
go getand SPM resolve it from there.
Go derives the module path from the repo URL and writes it into go.mod. github.com/acme/acme-go means users write import "github.com/acme/acme-go". Changing the repo later changes every import statement your users have written, which is a breaking change with no deprecation path.
Pick the Go repo name once, deliberately. See Go.
Package names
Package name can be set once for the project, or per language. Per language is usually what you want, because naming conventions differ: @acme/api on npm, acme-api on PyPI, com.acme:api on Maven.
Registries do not let you rename a package after publishing, and most block reusing a version number even after a delete. npm and PyPI both refuse to re-publish a deleted version.
Confirm the name is the one you want before the first release. This is the least reversible thing in the whole pipeline.
Repository metadata
Repository is written into the generated package manifest, so the registry page links back to the source. Stored as the repo picker writes it (github.com/owner/repo); a bare slug, an https URL, or an SSH remote all work.
Leave it empty and the manifests carry no repository metadata, which makes your package look abandoned on npm.
README
The README setting is shipped as the package's README.md and is what people see on the registry page. Leave it empty and the generator emits a default.
When a GitHub repo is linked for a language, the README is kept in sync with the repo's own README, so you write it once.