Thanks for helping improve async-pool! This document explains how to get started, what quality gates we expect, and how releases are coordinated.
- Source lives in
src/index.ts - Tests live in
test/pool.test.tsand use Vitest - Docs live under
docs/and are rendered via VitePress - Tooling scripts live in
scripts/(including git hooks)
- Node.js 20+ and pnpm 10.20+
- Clone this repository and run
pnpm installfrom its root directory - Optionally run
pnpm hooks:installto enable commit-message validation locally
- Create a branch from
main. - Develop with safety nets:
pnpm devfor watch mode with coveragepnpm testfor the full Vitest suite
- Update docs alongside code:
- Page content in
docs/*.md - API reference via
pnpm docs:api
- Page content in
- Validate the docs site:
pnpm docs:devandpnpm docs:build && pnpm docs:preview - Commit and create PR;
scripts/hooks/commit-msg.mjsenforces commitlint with tags given inchangelog.config.ts
Before pushing, run:
pnpm lint
pnpm test- Keep changes focused; separate refactors from features/fixes.
- Add tests for regressions or new behavior.
- Update docs and changelog entries when user-facing changes occur.
- Reference related issues (e.g.,
Fixes #123).
Releases are handled by maintainers in this repository. The release script runs the tests, builds the package, updates the changelog, and creates the release commit and tag. After the initial manual npm publication, later releases are published through the repository's trusted-publishing workflow.
To cut a release as a maintainer:
pnpm releaseUse the GitHub issue templates (Bug report / Feature request). Provide reproducible steps, environment details, and failing tests where possible.
Please follow the steps in SECURITY.md for reporting vulnerabilities privately.
By contributing, you agree that your contributions are licensed under the MIT License.