Thank you for your interest in contributing to meg2bids! We welcome contributions from the community.
- 🐛 Report bugs
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Submit code fixes or enhancements
- ✅ Add tests
git clone https://github.com/ln2t/meg2bids.git
cd meg2bids# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode
pip install -e ".[dev]"git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix# Run all tests
pytest
# Run with coverage
pytest --cov=meg2bids --cov-report=html
# Run specific test file
pytest tests/test_meg2bids.pyWe follow PEP 8 style guidelines with some modifications:
# Format code with black
black meg2bids.py
# Check with flake8
flake8 meg2bids.py
# Check with pylint
pylint meg2bids.pyStyle guidelines:
- Line length: 100 characters (black default)
- Use type hints where possible
- Document functions with docstrings
- Keep functions focused and modular
- Update docstrings for any changed functions
- Update README.md if adding new features
- Add examples for new functionality
- Update docs/ if necessary
git add .
git commit -m "Brief description of changes"Commit message guidelines:
- Use present tense ("Add feature" not "Added feature")
- Be descriptive but concise
- Reference issues when applicable (#123)
git push origin feature/your-feature-name- Go to the original repository on GitHub
- Click "New Pull Request"
- Select your fork and branch
- Provide a clear description of changes
- Reference any related issues
Pull request checklist:
- Tests pass locally
- Code follows style guidelines
- Documentation updated
- Commit messages are clear
- No merge conflicts
When reporting bugs, please include:
- Description: Clear description of the bug
- Environment:
- OS (Linux, macOS, Windows)
- Python version
- meg2bids version
- MNE version
- Steps to reproduce:
- Minimal example to reproduce
- Input files (if possible)
- Configuration used
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Error messages: Full traceback if applicable
When suggesting features, please include:
- Use case: Why this feature is needed
- Proposed solution: How it might work
- Alternatives: Other approaches considered
- Examples: Similar features in other tools
- Maintainers will review your pull request
- They may request changes or clarifications
- Once approved, your PR will be merged
- Your contribution will be acknowledged in release notes
- Be respectful and constructive
- Welcome newcomers and help them get started
- Focus on what is best for the community
- Show empathy towards other contributors
- Usage questions: Post on Neurostars with
meg2bidstag - Development questions: Open a GitHub issue with
questionlabel - General discussion: Start a GitHub Discussion
By contributing to meg2bids, you agree that your contributions will be licensed under the GNU General Public License v3.0.
Thank you for contributing to meg2bids! Every contribution, no matter how small, helps improve the tool for the entire community.