Thank you for your interest in contributing to Shiny TreeView! This guide will help you get started with local development and submitting contributions.
- Python 3.10+
- Node.js 16+ (only needed for JavaScript development)
- Git
-
Fork and clone the repository:
git clone https://github.com/yourusername/shiny-treeview.git cd shiny-treeview -
Create a virtual environment:
python3.10 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install the package in development mode:
pip install -e ".[dev]" -
Install JavaScript dependencies (if working on the React component):
npm install
-
Make your changes to the Python code in
shiny_treeview/ -
Run tests:
pytest
-
Format code:
black . isort .
-
Make changes to TypeScript code in
srcts/ -
Build the JavaScript bundle:
npm run build
-
For continuous development (auto-rebuild on changes):
npm run watch
-
Test the example app:
cd example-app python -m shiny run app.py --reload
-
Install Quarto:
- Download from quarto.org
- Or on macOS:
brew install quarto
-
Build API documentation:
cd docs quartodoc build -
Render the documentation site:
quarto render
-
Preview locally:
quarto preview
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes following the development workflow above
-
Add tests for any new functionality
-
Update documentation if you're changing APIs
-
Commit your changes with descriptive commit messages:
git commit -m "Add support for custom tree icons" -
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub with:
- Clear description of what the PR does
- Link to any related issues
- Screenshots/examples if relevant
- Notes about breaking changes (if any)
(For maintainers)
- Update version in
package.json - Update
CHANGELOG.md - Create a git tag:
git tag v0.1.1 - Push tag:
git push origin v0.1.1 - GitHub Actions will automatically build and publish to PyPI
- Issues: Open an issue on GitHub for bugs or feature requests
- Discussions: Use GitHub Discussions for questions
- Documentation: Check the online documentation
This project follows the Contributor Covenant Code of Conduct. Please be respectful and inclusive in all interactions.
By contributing to Shiny TreeView, you agree that your contributions will be licensed under the MIT License.