Thank you for your interest in contributing! This guide will help you get set up for development.
Corepack manages package manager versions. Enable it if you haven't already:
corepack enableThis allows the project to use the exact pnpm version specified in package.json.
git clone https://github.com/stenciljs/test-utils.git
cd test-utilspnpm installThis installs all dependencies for the main package and workspaces.
pnpm build
pnpm test:unit
pnpm test:e2e# Run all quality checks
pnpm qualitygit add .
git commit -m "feat: add new feature"We follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changeschore:- Maintenance tasksrefactor:- Code refactoringtest:- Test updates
This project uses automated release workflows with semantic versioning.
Production releases are automated using semantic-release and follow Conventional Commits for version bumping.
To trigger a production release:
- Go to Actions → Release workflow
- Click Run workflow
- Select
mainbranch - Select release type: production
- Optionally enable Dry run to preview changes without publishing
- Click Run workflow
What happens:
- Analyzes commits since last release
- Determines version bump (major/minor/patch) based on commit types
- Updates
CHANGELOG.mdwith release notes - Creates a git tag (e.g.,
v1.2.3) - Publishes to npm with
latesttag - Creates a GitHub release
For testing unreleased features, you can publish development versions with custom npm tags.
To trigger a dev release:
- Go to Actions → Release workflow
- Click Run workflow
- Select the branch to publish from using the "Use workflow from" dropdown
- Select release type: dev
- Configure inputs:
- NPM tag - Distribution tag (dev, next, alpha, beta, nightly, canary) - also used as version suffix
- Custom NPM tag - Optional custom tag like
v4.1.x(overrides selection above)
- Click Run workflow
What happens:
- Builds from the selected branch
- Generates a version like
0.0.1-dev.20260109123456.abc1234 - Publishes to npm with the specified tag
- Creates a git tag for reference
Example installations:
# Install latest dev version
npm install @stencil/vitest@dev
# Install latest nightly version
npm install @stencil/vitest@nightly
# Install specific version tag
npm install @stencil/vitest@v4.1.x- Production:
1.2.3(semantic versioning) - Dev:
1.2.3-dev.20260109123456.abc1234 - Nightly:
1.2.3-nightly.20260109123456 - Alpha/Beta:
1.2.3-alpha.20260109123456.abc1234
This project uses npm's provenance feature for supply chain security. All releases must originate from the .github/workflows/release.yml trusted workflow.
This project follows the Contributor Covenant Code of Conduct.
By contributing, you agree that your contributions will be licensed under the MIT License.