Audience: monorepo contributors and maintainers.
This page documents contributor workflows for this repository.
For app-level dependency installation and upgrades, use the CLI section: CLI.
Goals
- Keep package structure modular without increasing maintenance cost.
- Enforce lockedstep versioning for publishable packages.
- Prevent dependency and metadata drift with deterministic scripts.
Create a New Package
- Run
pnpm package:new --name <kebab-name>. - Optionally include deps and app linking:
pnpm package:new --name slider --deps core,focus --app-link playground - Implement code in
packages/<name>/src. - Verify policy with
pnpm workspace:check.
Note: pnpm package:new is a contributor script for this monorepo and is separate from the public lattice create/add/upgrade/doctor CLI workflows.
Dependency Rules
- Internal workspace dependencies must always use
workspace:*. - Publishable packages must include peer deps:
@rbxts/react: ^17@rbxts/react-roblox: ^17
- Canonical metadata and typecheck paths are auto-fixed by
pnpm workspace:sync. - Tooling packages listed in
workspace.policy.json.toolingPackagesare exempt from Roblox defaults (main,types, rbxtsc scripts, canonicaltsconfig.typecheck.json) while remaining in lockedstep versioning and changeset fixed groups.
Changeset Rules
- Public package changes require a changeset (
pnpm changeset:add). apps/*workspaces are ignored from publish versioning.- Publishable
packages/*are locked in one fixed version group.
Manual Release Steps
- Ensure there is at least one pending changeset.
- Run
pnpm release:prepare. - Review changed package versions and changelog entries.
- Publish with
pnpm release:publish. - Inspect
pnpm-publish-summary.jsonif needed.
Local Release Checklist (No CI)
Run this sequence from the repository root before a release:
pnpm run verify:workspacepnpm testpnpm run test:rbxpnpm run changeset:statuspnpm run release:preparepnpm run release:publish:dry-runpnpm run publish:summary
Optional/manual RBX execution (not part of the official release chain):
pnpm run test:rbx:headless(requires environment write access to~/Documents/Roblox/Plugins)- If headless fails with
Operation not permitted (os error 1), runpnpm run test:rbx:runand execute in Roblox Studio manually.
Recommended commit split:
- Commit test infrastructure and documentation changes first.
- Commit
release:prepareoutputs (version/changelog/lockfile updates) separately.
v1.0.0 Upgrade Plan
- Stay on lockedstep
0.xuntil the v1 milestone is ready. - Add one coordinated major changeset.
- Run
pnpm release:prepareand publish all packages together.