Utils Monorepo
Releases
Releases are fully automated with Nx Release and Conventional Commits: every commit to main is a potential release, no release PRs or changeset files.
fix(scope): ...— patch release of every package the commit touchesfeat(scope): ...— minor releasefeat(scope)!: ...or aBREAKING CHANGE:footer — major release- other types (
chore,docs,refactor,test, ...) — no release
A package is released when a feat/fix commit touches its files — the scope in the message is for humans and changelogs only. Package versions in source are always 0.0.0: real versions live in git tags (@kirill.konshin/<pkg>@x.y.z) and are written into package.json only at publish time on CI. Changelogs are published as GitHub Releases.
Commit messages are validated locally by a commit-msg hook (commitlint) and on CI. PRs are squash-merged with the PR title as the commit message, so the title must also be a valid conventional commit (validated by the PR workflow).
Commands
yarn build/yarn test/yarn start/yarn serve— run tasks for everything (packages + demos); no suffix means allyarn build:packages/yarn test/ ... — scoped to publishable packages (@kirill.konshin/*)yarn build:affected/yarn test:affected— only projects affected vsmain, demos excluded (used by PR CI)yarn lint— lint everything (eslint + prettier)yarn release --dry-run— preview what the next release would do- Coordinated release of all packages at once (or force an exact version): GitHub → Actions → Release → Run workflow, with a specifier (
patch,minor,major, or an exact version like1.0.0)
AI Commands
/normalize-extensions — checks all usual places where Prettier / ESLint extensions are defined and normalizes the lists for consistency
/lint-repo — sets up/updates the ESLint·Prettier·Husky tooling, and/or audits the repo against the agent rules (@kirill.konshin/lint)