Thanks for your interest in the project! This document describes the basic contribution rules.
- Node.js
>= 22(CI runs on Node22and24). - Yarn
1.22.x(Classic). Use this specific version — the lockfile is only compatible with Yarn Classic.
yarn installpackages/granularity— the published package.apps/showcase— the showcase (deployed to GitHub Pages, not published to npm).apps/playground*— local sandboxes.
- Create a feature branch from
main. - Make your changes and cover them with tests in
packages/granularity/src/**/__tests__. - Before opening a PR, run locally:
yarn workspace @feugene/granularity lint yarn test:granularity yarn build:granularity
- Open a Pull Request against
main. CI will runlint,test, andbuildfor the package and the showcase.
- ESLint:
@antfu/eslint-config. Auto-fix:yarn workspace @feugene/granularity lint:fix. - TypeScript: types are emitted by
vue-tscduring the build; no type errors are allowed. - Commits: Conventional Commits are recommended — this simplifies changelog generation.
- The version is bumped in
packages/granularity/package.json, and avX.Y.Ztag is created onmain. - Pushing the tag triggers the
publishjob in GitHub Actions: publishing to npm (with--provenance) and GitHub Packages. - Update
CHANGELOG.mdas part of the release PR.
By contributing code, you agree that it is released under the Apache-2.0 license.