Thank you for your interest in contributing to Blockingmachine! This document provides guidelines and instructions for contributing.
- Fork and clone the repository:
git clone https://github.com/yourusername/Blockingmachine.git
cd Blockingmachine/packages/core- Install dependencies:
npm install- Run tests:
npm test- Create a new branch:
git checkout -b feature/your-feature-name-
Make your changes and ensure:
- Tests pass (
npm test) - Code is properly formatted (
npm run format) - Linter is happy (
npm run lint)
- Tests pass (
-
Write or update tests for your changes
-
Update documentation as needed
We follow Conventional Commits. Your commit messages should be structured as follows:
feat: add new rule processing feature
^--^ ^-----------------------^
| |
| +-> Summary in present tense
|
+-------> Type: feat, fix, docs, style, refactor, test, or chore
- Update the README.md with details of changes if needed
- Add tests for any new functionality
- Ensure the test suite passes
- Update documentation
- Link any relevant issues
- Use TypeScript
- Follow existing code style
- Include JSDoc comments for public APIs
- Keep functions focused and small
- Write meaningful variable names
- Write unit tests for new features
- Maintain existing tests
- Aim for high test coverage
- Run tests before submitting PR:
npm test- Update README.md for user-facing changes
- Add JSDoc comments for new functions
- Update API documentation
- Include examples for new features
- Open an issue for discussion
- Join our discussions forum
- Check existing documentation
By contributing to @blockingmachine/core, you agree that your contributions will be licensed under the BSD 3-Clause License.
When contributing new files, include this copyright header at the top:
/**
* Copyright (c) 2025, Daniel Hipskind
* All rights reserved.
*
* This source code is licensed under the BSD-3-Clause license found in the
* LICENSE file in the root directory of this source tree.
*/Ensure your contributions:
- Do not include code from projects with incompatible licenses
- Maintain all existing copyright and license notices
- Include attribution for any third-party code or resources
- Comply with the BSD 3-Clause license terms
For more details, see the LICENSE file in the root directory.