We welcome contributions.
- Code of Conduct
- How to Report Bugs
- Feature Requests
- Development Setup
- Submitting a Pull Request
- Branching & Commit Guidelines
- Testing & Benchmarks
- Coding Style
- License & Attribution
Let's be friendly. By participating you agree to:
- Be kind and courteous. Respect differing opinions.
- Use constructive language and focus on ideas, not individuals.
- Avoid demeaning or harassing language.
- Search existing issues to see if it’s already reported.
- If not, open a new issue with:
- A clear title and description of the problem
- Steps to reproduce or a minimal code snippet
- Your environment (Node version, OS, proxable version)
- Label the issue appropriately (bug, question, help wanted).
Please open a new issue and include:
- What you want to achieve
- A brief motivation or use-case
- Any API sketch or examples
Discussion is encouraged before implementation.
-
Clone the repo:
git clone https://github.com/your-org/proxable.git cd proxable -
Install dependencies:
npm install
-
Make sure tests pass:
npm run test:unit
-
(Optional) Run benchmarks:
npm run test:bench
- Fork the repository.
- Create a branch with a descriptive name:
git checkout -b feature/my-new-feature
- Make your changes & add tests.
- Ensure all tests pass locally:
npm run test:unit
- Commit your changes following the conventions below.
- Push to your fork and open a PR against
main. - Fill in the PR template—describe your changes and link to any related issues.
-
Work off of the
mainbranch. -
Use feature branches (
feature/…,bugfix/…,docs/…). -
Commit messages should follow Conventional Commits:
<type>(<scope>): <short summary> [optional body] [optional footer]- type:
feat,fix,docs,perf,refactor,test,chore - scope: optional area of the code (e.g.
proxable,subscription-index) - summary: brief description (< 72 chars)
- type:
- Unit tests: use Node’s built-in test runner with
test/unit/**/*.test.tsnpm run test:unit
- Benchmarks: located in
test/benchmark, run withnpm run test:bench
- Please add new tests for any bug you fix or feature you add.
- TypeScript with strict mode enabled.
- Tabs for indentation (see
.editorconfig). - Use three-backtick fenced code blocks in docs.
- Write clear JSDoc comments on public APIs.
- Keep external dependencies to a minimum.
This project is licensed under the LGPL-3.0. See LICENSE for details.
By contributing, you also agree that your contributions will be licensed under the same license as the project.