Skip to content

Latest commit

 

History

History
124 lines (86 loc) · 2.68 KB

File metadata and controls

124 lines (86 loc) · 2.68 KB

Contributing to @blockingmachine/core

Thank you for your interest in contributing to Blockingmachine! This document provides guidelines and instructions for contributing.

Development Setup

  1. Fork and clone the repository:
git clone https://github.com/yourusername/Blockingmachine.git
cd Blockingmachine/packages/core
  1. Install dependencies:
npm install
  1. Run tests:
npm test

Development Workflow

  1. Create a new branch:
git checkout -b feature/your-feature-name
  1. Make your changes and ensure:

    • Tests pass (npm test)
    • Code is properly formatted (npm run format)
    • Linter is happy (npm run lint)
  2. Write or update tests for your changes

  3. Update documentation as needed

Commit Guidelines

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

Pull Request Process

  1. Update the README.md with details of changes if needed
  2. Add tests for any new functionality
  3. Ensure the test suite passes
  4. Update documentation
  5. Link any relevant issues

Code Style

  • Use TypeScript
  • Follow existing code style
  • Include JSDoc comments for public APIs
  • Keep functions focused and small
  • Write meaningful variable names

Testing

  • Write unit tests for new features
  • Maintain existing tests
  • Aim for high test coverage
  • Run tests before submitting PR:
npm test

Documentation

  • Update README.md for user-facing changes
  • Add JSDoc comments for new functions
  • Update API documentation
  • Include examples for new features

Questions?

  • Open an issue for discussion
  • Join our discussions forum
  • Check existing documentation

License and Copyright

By contributing to @blockingmachine/core, you agree that your contributions will be licensed under the BSD 3-Clause License.

Copyright Notice Requirements

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.
 */

License Compliance

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.