Skip to content

chore: migrate to Yarn workspace monorepo with Changesets #308

@ioncache

Description

@ioncache

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"

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: choreMaintenance, build, or tooling

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions