Thanks for your interest in WebGPU Sorting.
Keep the change directly connected to the shipped project: the library in src/, the tests in test/, and the docs and Pages surface in docs/.
Good contributions usually fall into one of these buckets:
- bug fixes
- documentation corrections or consolidation
- workflow / tooling improvements with clear payoff
- small maintainability improvements around the existing sorting implementations
Large feature expansions should come with a clear problem statement, matching tests, and updated docs.
npm installUseful commands:
npm run lint
npm run typecheck
npm run test
npm run build
npm run dev- prefer small serial changes over long-lived branches
- avoid mixing unrelated cleanup into one PR or change
- remove or rewrite stale material instead of stacking new generic docs on top
If your change affects behavior, workflow, or public positioning, update the matching authority files:
src/andtest/for implementation and correctnessREADME.md,README.zh.md,PROJECT_OVERVIEW.md, anddocs/for public explanationCHANGELOG.mdfor meaningful repository changes.github/workflows/andpackage.jsonwhen commands or automation change
Before considering a meaningful slice complete, run:
npm run lint
npm run typecheck
npm run test
npm run buildEnglish is the default language for shared docs. Add a .zh.md companion only if you will keep it aligned.
- explain the user-visible or maintainer-visible impact
- call out doc/workflow/config changes explicitly
- mention any GitHub-side changes made through
gh - avoid noisy “drive-by” edits outside the task scope
The project is configured for npm publishing via GitHub Actions but is currently disabled by default.
The npm publish workflow in .github/workflows/release.yml has if: false set, meaning it won't run automatically. This is intentional:
- The project may not be ready for public npm distribution
- Publishing requires an
NPM_TOKENsecret to be configured - Manual control over when to publish is preferred
- Create an npm access token with “Automation” type
- Add the token as a repository secret named
NPM_TOKENin GitHub Settings → Secrets and variables → Actions - Edit
.github/workflows/release.ymland changeif: falsetoif: true - Create a new version tag to trigger the release workflow:
npm version patch # or minor, or major
git push --tagsBefore enabling npm publishing:
- Update
package.jsonwith correct package name (check npm registry availability) - Ensure
filesfield includes all necessary distribution files - Verify
README.mdhas installation and usage instructions - Run full test suite:
npm run test - Build successfully:
npm run build - Consider adding npm provenance for supply chain security
When filing a bug, include:
- browser and version
- OS
- GPU model when relevant
- WebGPU availability details
- reproduction steps
- expected vs actual behavior
This project follows CODE_OF_CONDUCT.md.