Summary
Adding a companion package (data-sanitization-log-providers, see separate issue) requires the repository to support multiple independently-versioned npm packages in the same repo. This issue covers the structural migration needed before that package can be added.
Proposed changes
Repository structure
/
├── packages/
│ ├── data-sanitization/ ← existing package, moved here
│ └── data-sanitization-log-providers/ ← new companion package
├── package.json ← workspace root (scripts + shared devDeps)
├── .changeset/
│ └── config.json
└── ...shared config (tsconfig, oxlint, vitest, husky)
Package manager
Stay on Yarn 4. Add "workspaces": ["packages/*"] to the root package.json. No migration to pnpm needed.
Release tooling
Replace the current conventional-changelog-based scripts/release.mjs with Changesets. Changesets handles independent per-package versioning: each package gets its own CHANGELOG.md and can be released on its own version without bumping the other.
Commitlint and the commit-msg hook enforcement of conventional commit format remain unchanged — these are orthogonal to Changesets and serve developer/git-log discipline independently.
CI/CD
Update GitHub Actions workflows to publish each package independently via changeset publish.
Notes
- This is a prerequisite for the
data-sanitization-log-providers issue
- The existing
data-sanitization public API is unaffected
- Tracked in
docs/ROADMAP.md under "Ecosystem Expansion"
Summary
Adding a companion package (
data-sanitization-log-providers, see separate issue) requires the repository to support multiple independently-versioned npm packages in the same repo. This issue covers the structural migration needed before that package can be added.Proposed changes
Repository structure
Package manager
Stay on Yarn 4. Add
"workspaces": ["packages/*"]to the rootpackage.json. No migration to pnpm needed.Release tooling
Replace the current
conventional-changelog-basedscripts/release.mjswith Changesets. Changesets handles independent per-package versioning: each package gets its ownCHANGELOG.mdand can be released on its own version without bumping the other.Commitlint and the
commit-msghook enforcement of conventional commit format remain unchanged — these are orthogonal to Changesets and serve developer/git-log discipline independently.CI/CD
Update GitHub Actions workflows to publish each package independently via
changeset publish.Notes
data-sanitization-log-providersissuedata-sanitizationpublic API is unaffecteddocs/ROADMAP.mdunder "Ecosystem Expansion"