Contributing
We welcome contributions to Neural-Scope! This document provides guidelines and instructions for contributing.
Setting Up Development Environment
Fork the repository on GitHub.
Clone your fork locally:
git clone https://github.com/your-username/neural-scope.git cd neural-scope
Install development dependencies:
pip install -e ".[all]" pip install -r docs/requirements.txt
Set up pre-commit hooks:
pip install pre-commit pre-commit install
Code Style
We follow PEP 8 style guidelines for Python code. We use flake8 and black for code linting and formatting.
To check your code style:
flake8 .
To format your code:
black .
Testing
We use pytest for testing. To run the tests:
pytest
Make sure to write tests for any new features or bug fixes.
Documentation
We use Sphinx for documentation. To build the documentation:
cd docs
make html
The documentation will be built in docs/_build/html.
Pull Request Process
Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
Make your changes and commit them with descriptive commit messages.
Push your branch to your fork:
git push origin feature/your-feature-name
Create a pull request from your branch to the main repository.
Ensure that all tests pass and the documentation builds successfully.
Update the README.md and documentation with details of changes if applicable.
The pull request will be merged once it receives approval from maintainers.
Reporting Issues
If you find a bug or have a feature request, please create an issue on GitHub. Please include:
A clear and descriptive title
A detailed description of the issue or feature request
Steps to reproduce the issue (for bugs)
Expected behavior
Actual behavior
Screenshots or code snippets if applicable
Environment information (OS, Python version, package versions)
Code of Conduct
We expect all contributors to follow our Code of Conduct. Please be respectful and considerate of others when contributing to the project.
License
By contributing to Neural-Scope, you agree that your contributions will be licensed under the project’s MIT License.