Thank you for your interest in contributing to Nooxy! This document provides guidelines and instructions for contributing to this project.
By participating in this project, you agree to uphold our Code of Conduct, which expects all contributors to be respectful and create a harassment-free experience for everyone.
We follow a structured workflow for all contributions. Here's the process:
- Before making any changes, start by creating an issue in the GitHub issue tracker
- Clearly describe the bug, feature, or improvement you want to address
- Wait for a DRO issue number to be assigned in the comments
Create a branch with the following naming format:
username/dro-<issue-number>-<issue-title>
Example:
johndoe/dro-123-fix-url-rewriting
- Fork the repository to your GitHub account
- Clone your fork to your local machine
- Add the upstream repository as a remote
git clone https://github.com/yourusername/nooxy.git
cd nooxy
git remote add upstream https://github.com/draphy/nooxy.git# Install dependencies
pnpm install
# Build packages
pnpm build
# Type check and lint
pnpm type:check
pnpm biome:check- Create a new branch with the proper naming convention
- Make your changes following the coding conventions
- Write or update tests as needed
- Update documentation if necessary
We use Conventional Commits for clear and meaningful commit messages.
Format:
<type>: [DRO-<issue-number>] <description>
Where type is one of:
feat: A new featurefix: A bug fixbug: A bug fix (alternative to fix)docs: Documentation changestest: Adding or updating testsci: CI configuration changesrefactor: Code refactoringperf: Performance improvementschore: Maintenance tasksrevert: Reverting changesrelease: Release-related changes
Example:
feat: [DRO-123] Add multi-instance config support
-
Before pushing, run the full local check to ensure CI will pass:
pnpm commit:check
-
Push your changes to your fork
-
Create a pull request against the main repository
-
Use this format for the PR title:
<type>: [DRO-<issue-number>] <Title starting with capital letter>Example:
feat: [DRO-123] Add multi-instance config support -
Provide a detailed description in the PR
-
Link the PR to the relevant issue
-
Ensure all status checks pass
-
Request a review from at least one maintainer
Pull requests require approval from at least one reviewer before they can be merged.
Before submitting your PR, ensure your code passes all checks by running:
# Format and lint with Biome
pnpm biome:format
pnpm biome:lint
# Run type checking
pnpm type:check
# Run all checks and build (recommended before commit)
pnpm commit:checkWe use Biome for linting and formatting. Our code style is enforced by the configuration in the repository.
- Write tests for new features and bug fixes
- Maintain or improve test coverage
- Run tests locally before submitting a PR
- Update documentation to reflect any changes
- Use clear and concise language
- Follow the existing documentation style
Cloudflare Workers example:
cd examples/cloudflare
pnpm install
pnpm run devAfter editing any files under nooxy/ (head.js, body.js, head.css, header.html), run:
npx nooxy generate [--path=/custom/path]If you need help with the contribution process or have questions, feel free to:
- Comment on the relevant issue
- Ask questions in pull requests
- Reach out to the maintainers
Thank you for contributing to Nooxy! Your efforts help make this project better for everyone.