Contributing¶
Welcome to the Annotation Garden Initiative! We appreciate your interest in contributing to open neuroscience annotation infrastructure.
Ways to Contribute¶
-
Add Annotations
Contribute annotations to existing stimulus repositories.
-
Report Issues
Report bugs or suggest improvements to our tools.
-
Code Contributions
Contribute to HEDit, Image Annotation, or other projects.
-
Documentation
Improve documentation, tutorials, and examples.
Contributing Annotations¶
1. Choose a Stimulus Repository¶
Browse available repositories in the Annotation-Garden organization:
- Natural Scenes Dataset annotations
- StudyForrest temporal annotations
- HBN Movies annotations (pointer-based)
2. Fork and Clone¶
3. Create Annotation Branch¶
4. Add Your Annotations¶
Follow the annotation format:
5. Validate Annotations¶
# Validate HED strings
hedit validate "$(cat annotations/hed-tags/events.tsv | tail -1 | cut -f4)"
# Or validate all
python scripts/validate_annotations.py
6. Submit Pull Request¶
git add .
git commit -m "Add HED annotations for stimuli 001-100"
git push origin add-annotations-your-name
Then create a Pull Request on GitHub.
Reporting Issues¶
Bug Reports¶
For bug reports, please include:
- Environment: OS, Python version, package versions
- Steps to reproduce: Minimal example that reproduces the issue
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Error messages: Full traceback if available
Example:
## Bug Report
**Environment:**
- OS: macOS 14.1
- Python: 3.12.0
- hedit: 0.6.1-alpha2
**Steps to Reproduce:**
1. Run `hedit annotate "test"`
2. Observe error
**Expected:** HED annotation output
**Actual:** `ConnectionError: ...`
**Full Error:**
Feature Requests¶
For feature requests:
- Use case: Describe why you need this feature
- Proposed solution: How you envision it working
- Alternatives: Other approaches you've considered
Code Contributions¶
Development Workflow¶
- Fork the repository
- Clone your fork
- Create branch from
develop(notmain) - Make changes with atomic commits
- Test your changes
- Submit PR to
develop
Branching Strategy¶
| Branch | Purpose |
|---|---|
main | Production releases |
develop | Active development |
feature/* | New features |
fix/* | Bug fixes |
Commit Messages¶
Write clear, concise commit messages:
Add HED validation caching for improved performance
- Cache schema loads to avoid repeated file reads
- Add TTL-based cache invalidation
- Improve validation speed by 3x for batch operations
Don't:
- Use emojis
- Mention AI/Claude co-authorship
- Write vague messages like "fix bug"
Code Style¶
See Code Style Guide for details:
- Python: Ruff for linting and formatting
- TypeScript: ESLint + Prettier
- Tests: pytest with coverage, no mocks
Documentation¶
Building Docs Locally¶
Visit http://localhost:8000 to preview.
Documentation Style¶
- Use clear, concise language
- Include code examples
- Add screenshots for UI features
- Link to related documentation
Community¶
Communication¶
- GitHub Issues: Bug reports, feature requests
- GitHub Discussions: General questions, ideas
- Pull Requests: Code and documentation contributions
Code of Conduct¶
We follow the Contributor Covenant. Be respectful, inclusive, and constructive.
Recognition¶
Contributors are recognized in:
- Repository CONTRIBUTORS files
- Release notes
- Project documentation
Thank you for contributing to open neuroscience!