Welcome Contributors!

BitNet is an open-source project and we welcome contributions from the community! Thank you for your interest in contributing to BitNet. This guide will help you get started with contributing to the project.

Ways to Contribute

There are many ways to contribute to BitNet:

  • Code Contributions: Submit bug fixes, new features, or improvements
  • Documentation: Improve documentation, add examples, or fix typos
  • Bug Reports: Report bugs and issues you encounter
  • Feature Requests: Suggest new features or improvements
  • Testing: Test new features and report issues
  • Community Support: Help other users in discussions and issues

Getting Started

1. Fork and Clone the Repository

First, fork the repository on GitHub, then clone your fork locally:

Clone Your Fork
git clone https://github.com/YOUR_USERNAME/BitNet.git
cd BitNet
git clone --recursive https://github.com/YOUR_USERNAME/BitNet.git

2. Set Up Your Development Environment

Follow the installation instructions in our Installation Guide to set up your development environment.

Setup Development Environment
conda create -n bitnet-dev python=3.9
conda activate bitnet-dev
pip install -r requirements.txt

3. Create a Branch

Create a new branch for your contribution:

Create Feature Branch
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix

Development Guidelines

Code Style

  • Follow existing code style and conventions
  • Write clear, readable code with appropriate comments
  • Ensure code follows Python PEP 8 style guidelines (for Python code)
  • Follow C++ style guidelines (for C++ code)

Testing

  • Test your changes thoroughly before submitting
  • Run existing tests to ensure nothing is broken
  • Add tests for new features if applicable
  • Test on multiple platforms if possible (Linux, Windows, macOS)

Documentation

  • Update documentation if your changes affect user-facing features
  • Add docstrings for new functions and classes
  • Update examples if applicable
  • Keep documentation clear and concise

Submitting Contributions

1. Commit Your Changes

Write clear, descriptive commit messages:

Commit Changes
git add .
git commit -m "Add feature: brief description of your change"

Good commit messages:

  • Use present tense ("Add feature" not "Added feature")
  • Keep the first line concise (50-72 characters)
  • Add more details in the body if needed
  • Reference issues when applicable (e.g., "Fixes #123")

2. Push to Your Fork

Push to Fork
git push origin feature/your-feature-name

3. Create a Pull Request

Go to the BitNet repository on GitHub and create a pull request from your fork. In your PR description:

  • Clearly describe what your changes do
  • Explain why the changes are needed
  • Reference any related issues
  • Include screenshots or examples if applicable

Pull Request Guidelines

  • Keep PRs focused: Each PR should address a single issue or feature
  • Write clear descriptions: Explain what, why, and how
  • Respond to feedback: Be open to feedback and make requested changes
  • Update documentation: Update docs if your changes affect user-facing features
  • Run tests: Ensure all tests pass before submitting

Reporting Bugs

If you find a bug, please report it on GitHub Issues. Include:

  • Description: Clear description of the bug
  • Steps to reproduce: Steps to reproduce the issue
  • Expected behavior: What you expected to happen
  • Actual behavior: What actually happened
  • Environment: OS, Python version, BitNet version, etc.
  • Error messages: Full error messages and stack traces

Requesting Features

Have an idea for a new feature? Open a feature request on GitHub Issues. Include:

  • Description: Clear description of the feature
  • Use case: Why this feature would be useful
  • Proposed solution: How you envision the feature working
  • Alternatives: Alternative solutions you've considered

Code of Conduct

BitNet follows a code of conduct to ensure a welcoming environment for all contributors. Please review the Code of Conduct before contributing.

Getting Help

If you need help or have questions:

License

By contributing to BitNet, you agree that your contributions will be licensed under the MIT License.

Thank You!

Thank you for contributing to BitNet! Your contributions help make BitNet better for everyone. We appreciate your time and effort.

Related Resources