Pre-Deployment Checklist
Before you kick off the build pipeline, confirm that every item below is complete. Skipping any of these steps risks shipping broken or incomplete code.- All tests passing (
pnpm test) - No TypeScript errors (
pnpm typecheck) - Lint clean (
pnpm lint) - Changelog updated
- Version bumped
Build Steps
1
Pull latest from main
Sync your local branch with the latest changes before building anything.
2
Install dependencies
Use the frozen lockfile flag to guarantee that your installed packages exactly match
pnpm-lock.yaml.3
Build all packages
Run the top-level build script. Turborepo automatically resolves the dependency graph and builds packages in the correct order.
4
Run the full test suite
Confirm that nothing regressed during the build phase before publishing anything to the registry.
5
Publish packages
Publish all changed packages recursively and mark them as publicly accessible.
6
Tag the release
Create a Git tag that maps to the published version, then push it to the remote so the release is traceable in your repository history.
Versioning Strategy
Figentra follows semantic versioning (semver) across the entire monorepo:- All packages are released together at the same version. A single version number represents the state of the full monorepo at any given release.
- Use Changesets to manage version bumps and generate changelogs automatically. Run
pnpm changesetto record a change, andpnpm changeset versionto apply pending bumps before publishing.
Rollback Procedure
If a release introduces a regression, follow these steps to minimise user impact.1
Identify the last good version
Check npm or your Git tags to find the most recent stable release.
2
Deprecate the bad version
Mark the problematic version as deprecated so new installs avoid it automatically.
3
Re-publish the previous version as latest
Promote the last known good version back to the
latest dist-tag.4
Communicate to affected teams
Post an update in your incident channel and notify any downstream consumers. Reference the deprecated version and the safe version to pin.