Welcome to the Annotation Garden Initiative! We appreciate your interest in contributing to open neuroscience annotation infrastructure.
-
:material-tag-plus:{ .lg .middle } Add Annotations
Contribute annotations to existing stimulus repositories.
-
:material-bug:{ .lg .middle } Report Issues
Report bugs or suggest improvements to our tools.
-
:material-source-pull:{ .lg .middle } Code Contributions
Contribute to HEDit, Image Annotation, or other projects.
-
:material-file-document-edit:{ .lg .middle } Documentation
Improve documentation, tutorials, and examples.
Browse available repositories in the Annotation-Garden organization:
- Natural Scenes Dataset annotations
- StudyForrest temporal annotations
- HBN Movies annotations (pointer-based)
git clone https://github.com/YOUR_USERNAME/stimulus-repo
cd stimulus-repogit checkout -b add-annotations-your-nameFollow the annotation format:
annotations/
└── your-annotation-type/
├── events.tsv
└── events.json
# Validate HED strings
hedit validate "$(cat annotations/hed-tags/events.tsv | tail -1 | cut -f4)"
# Or validate all
python scripts/validate_annotations.pygit add .
git commit -m "Add HED annotations for stimuli 001-100"
git push origin add-annotations-your-nameThen create a Pull Request on GitHub.
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:**[paste traceback]
For feature requests:
- Use case: Describe why you need this feature
- Proposed solution: How you envision it working
- Alternatives: Other approaches you've considered
- Fork the repository
- Clone your fork
- Create branch from
develop(notmain) - Make changes with atomic commits
- Test your changes
- Submit PR to
develop
| Branch | Purpose |
|---|---|
main |
Production releases |
develop |
Active development |
feature/* |
New features |
fix/* |
Bug fixes |
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"
See Code Style Guide for details:
- Python: Ruff for linting and formatting
- TypeScript: ESLint + Prettier
- Tests: pytest with coverage, no mocks
cd documentation
pip install -e .
mkdocs serveVisit http://localhost:8000 to preview.
- Use clear, concise language
- Include code examples
- Add screenshots for UI features
- Link to related documentation
- GitHub Issues: Bug reports, feature requests
- GitHub Discussions: General questions, ideas
- Pull Requests: Code and documentation contributions
We follow the Contributor Covenant. Be respectful, inclusive, and constructive.
Contributors are recognized in:
- Repository CONTRIBUTORS files
- Release notes
- Project documentation
Thank you for contributing to open neuroscience!