Thank you for your interest in contributing to vlurp! This document provides guidelines and instructions for contributors.
# Clone the repository
git clone git@github.com:indexzero/vlurp.git
# Install dependencies
cd indexzero/vlurp
pnpm install
# Run tests
pnpm test
# Run locally
node bin/vlurp <user>/<repo>Tests are run using Node.js's built-in test runner:
pnpm testThe project uses XO for linting:
# Check for linting errors
pnpm lint
# Auto-fix linting errors
pnpm lint:fix- Fork the repository and create your branch from
main - Make your changes and ensure tests pass
- Run the linter and fix any issues
- Create a changeset for your changes (see below)
- Submit a pull request
This project uses changesets to manage versions and changelogs.
When you make changes that should be included in the changelog:
pnpm changesetThis will prompt you to:
- Select which packages are affected (for this single-package repo, just select
vlurp) - Choose the type of change (major, minor, or patch)
- Write a description of the change for the changelog
The changeset will be created in the .changeset directory. Commit this file along with your changes.
Version updates are handled automatically by the GitHub Actions workflow. When changesets are merged to main, a PR will be automatically created to:
- Update the version in
package.json - Update the CHANGELOG.md
- Remove the changeset files
Publishing to npm happens automatically when the version PR is merged. This requires the NPM_TOKEN secret to be configured in the repository settings.
The project uses GitHub Actions for continuous integration:
Runs on:
- All pull requests to
main - All pushes to
main
The workflow:
- Tests against Node.js 20.x and 22.x
- Runs the linter
- Runs the test suite
Runs on pushes to main and handles:
- Creating version update PRs via changesets
- Publishing to npm when version PRs are merged
- The project uses tabs for indentation
- Follow the existing code style (enforced by XO)
- No spaces inside object curly braces
- Use trailing commas in multi-line arrays and objects
- Keep imports organized and use default imports where appropriate
- Write tests for new features
- Ensure all tests pass before submitting a PR
- Tests are located in the
test/directory - Use Node.js's built-in test runner and assertion library
- Use clear, descriptive commit messages
- Start with a verb in the present tense (e.g., "Add", "Fix", "Update")
- Keep the first line under 72 characters
- Reference issues when applicable
If you have questions about contributing, feel free to open an issue for discussion.