-
Notifications
You must be signed in to change notification settings - Fork 0
Package Tag Release Process
This repository contains the OpenCapTable DAML package and npm bindings. Releases use package-scoped tags, for example:
OpenCapTable-v34-v0.0.2
The last -v<semver> segment must match OpenCapTable-v34/daml.yaml. The package prefix must be a configured package from scripts/packages.ts; today that is ocp / OpenCapTable-v34.
Pushing a matching tag runs .github/workflows/release.yml.
The workflow:
- Parses the tag with
scripts/parse-release-tag.ts. - Fails early if the release tag is not the current
origin/maincommit. - Fails early if the current root
package.jsonversion is already published to npm. - Builds the package, backs up the current DAR, and runs the same lint, codegen, package, and DAML test checks used by CI.
- Uploads the DAR to devnet and mainnet with
npm run upload-dar. - Detects which networks (devnet/mainnet) already have factories for the current DAR package ID.
- Creates factories on networks where they are missing with
scripts/create-ocp-factory.ts. - Verifies
dars/dars.lock. - Prepares npm package artifacts and publishes the npm package.
- Commits changed release artifacts back to
mainwhen the tag still points at the currentorigin/main.
The tag version is the DAML package version from OpenCapTable-v34/daml.yaml. The npm version is the root package.json version and must be bumped before tagging when a new npm publication is expected.
The workflow uses the committed public Canton topology in scripts/config/cantonPublic.ts. Secrets only need to provide OAuth client secrets for the providers:
CANTON_DEVNET_INTELLECT_LEDGER_JSON_API_CLIENT_SECRET
CANTON_DEVNET_5N_LEDGER_JSON_API_CLIENT_SECRET
CANTON_MAINNET_INTELLECT_LEDGER_JSON_API_CLIENT_SECRET
CANTON_MAINNET_5N_LEDGER_JSON_API_CLIENT_SECRET
NPM_TOKEN
The older generic names DEVNET_AUTH_TOKEN and MAINNET_AUTH_TOKEN are not enough for this repo's current client configuration because the upload script targets both Intellect and 5n provider clients.
Before pushing a release tag, use Node.js 20, matching .github/workflows/release.yml, when running these checks locally.
node --version
npx tsx scripts/parse-release-tag.ts OpenCapTable-v34-v0.0.2
npm run build
npm run testAfter a workflow run, confirm that dars/dars.lock, any new dars/ artifact, and generated/ocp-factory-contract-id.json were committed when they changed.
Develop
Decisions
Releases
- Releases (index)
- Package tag release process
- 2026-06-22 — OCP v35 conversion mechanism validation
- 2026-06-22 — OCP v35 SDK scaffold
- 2026-05-04 — OCP v34 major upgrade
- 2026-05-04 — DAML extraction / fairmint-daml
- 2026-03-05 — OCP v32 PPS-based conversion rename
- 2026-02-17 — OCP v31 ArchiveCapTable
- 2026-02-12 — OCP v31 vesting zero portion
Other Fairmint DAML
Documentation for CantonPayments, NFT, Reports, CouponMinter, equity certificate, proof-of-ownership, and related deployment playbooks lives with fairmint/daml and @fairmint/daml-js — not in this wiki.