Thank you for your interest in Whisq! Here's how you can help.
Found a bug? Open an issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your environment (browser, Node.js version, OS)
Have an idea? Open a feature request. We'd love to hear what you need.
Typos, unclear explanations, broken links — PRs for docs fixes are always welcome. Just fork, fix, and open a PR.
Whisq is in early alpha. The core architecture is still evolving, so we're not accepting unsolicited code PRs at this time. This helps us:
- Keep the API surface intentional
- Avoid breaking contributors' work during refactors
- Move fast without PR review bottleneck
If you'd like to contribute code, open an issue first to discuss the approach. We'll invite PRs for specific issues when ready.
git clone https://github.com/whisqjs/whisq.git
cd whisq
pnpm install
pnpm build
pnpm testRequirements: Node.js >= 20, pnpm 9.15.0
Key commands:
| Command | Description |
|---|---|
pnpm build |
Build all packages |
pnpm test |
Run all tests |
pnpm format |
Format with Prettier |
pnpm format --check |
Check formatting (CI uses this) |
- TypeScript strict mode
- Prettier defaults (no config file)
- ESM only
- No runtime dependencies in
@whisq/core - Functional style — no classes, no
this
WHISQ-<issue#>: <short description>
Whisq uses Changesets to automate versioning and publishing. Every PR that changes shipped code must include a changeset.
From the repo root:
pnpm changesetThe CLI asks which packages changed and whether each change is a patch, minor, or major (we're currently in alpha pre-mode, so all bumps are prerelease bumps of 0.1.0-alpha.N). It writes a small Markdown file in .changeset/ — commit it alongside your code.
If your PR genuinely doesn't need a version bump (docs-only, repo tooling, internal dependency tweaks with no API impact), add the skip-changeset label to the PR and the check will pass.
The branch flow is strict: feature → develop → release/v<version> → main → back-merge → develop. No package.json editing by hand; two workflows do all the mechanical work.
- Your PR merges to
developwith its changeset attached. - When enough changesets have accumulated, a maintainer opens Actions → Release — prepare → Run workflow. That creates a
release/v<version>branch, bumps everypackage.json, writes CHANGELOGs, and opens a PR tomain. - A maintainer reviews the release PR and squash-merges it into
main. - The merge triggers
release.yml, which publishes all bumped packages to npm with provenance, creates per-package git tags and GitHub Releases, and opens a back-merge PR. - A maintainer squash-merges the back-merge PR into
develop.
Full details in docs/RELEASING.md.
By contributing, you agree that your contributions will be licensed under the MIT License.