Tools & Practices Reflection
Overview
This page describes the tools and practices we used to build the textutils package in DSCI 524.
Tools We Used
Testing
- pytest - Run tests to check if code works
- pytest-cov - Check how much code is tested
- Ruff - Check code style
Building
- hatch - Build the Python package
- hatch-vcs - Get version from Git tags
Documentation
- Quartodoc - Create documentation from code
- Quarto - Build the website
GitHub Features
GitHub Actions
We use GitHub Actions to automate tasks:
- Testing - Run tests on every pull request
- Linting - Check code style with Ruff
- Release - Publish to TestPyPI when we create a tag
- Docs - Build and publish documentation
GitHub Issues
- Track tasks and bugs
- Organize work with milestones
- Use project board to see progress
Development Practices
Branching
main- Final codedevelopment- Work in progress- Feature branches - Individual tasks
Workflow
- Create a branch
- Make changes
- Open a pull request
- Team member reviews
- Merge when approved
Versioning
- Use semantic versioning (v1.0.0)
- Create Git tag to release
- Version is set automatically
For Larger Projects
For bigger projects, we would add:
- Docker - Same environment for everyone
- Pre-commit hooks - Check code before commit
- More tests - Integration and performance tests
- Type checking - Use mypy for type safety
Conclusion
This project taught us how to build a Python package with modern tools. We learned GitHub workflows, testing, and team collaboration.