Skip to content

Commit 655d8c9

Browse files
authored
Merge pull request #75 from UBC-MDS/yonas.discussion
Updated contribution.md with discussion about tools
2 parents 7392a6f + abe2980 commit 655d8c9

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

CONTRIBUTING.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ You can contribute in many ways, for example:
1616
- [Submit Feedback](#submit-feedback)
1717
- [Get Started!](#get-started)
1818
- [Pull Request Guidelines](#pull-request-guidelines)
19+
- [Development Tools, Infrastructure, and Practices](#development-tools-infrastructure-and-practices)
20+
- [Development Tools](#development-tools)
21+
- [GitHub Infrastructure](#github-infrastructure)
22+
- [Organizational and Collaboration Practices](#organizational-and-collaboration-practices)
23+
- [Scaling Considerations](#scaling-considerations)
1924

2025
### Report Bugs
2126

@@ -114,3 +119,44 @@ Before you submit a pull request, check that it meets these guidelines:
114119
new functionality into a function with a docstring.
115120
3. Your pull request will automatically be checked by the full test suite.
116121
It needs to pass all of them before it can be considered for merging.
122+
123+
---
124+
125+
## Development Tools, Infrastructure, and Practices
126+
127+
This project applies modern Python development workflows and collaborative practices learned in DSCI 524, with a strong emphasis on reproducibility, automation, and code quality.
128+
129+
### Development Tools
130+
131+
* **Hatch** is used for environment management, testing, and task execution. This ensures consistent developer environments and simplifies common workflows such as running tests and checks.
132+
* **Ruff** is used for formatting and linting to enforce PEP 8–compliant, readable code and to provide fast feedback during development.
133+
* **Pytest** is used for automated testing to validate correctness and prevent regressions as the codebase evolves.
134+
* **Quartodoc + Quarto** are used to generate API documentation directly from docstrings, ensuring documentation stays closely aligned with the code.
135+
136+
### GitHub Infrastructure
137+
138+
* **GitHub Issues** are used to track bugs, feature requests, and documentation improvements, with labels (`bug`, `enhancement`, `help wanted`) to organize work and encourage contributions.
139+
* **Pull Requests** are the primary mechanism for code review, discussion, and integration. All changes are reviewed before merging.
140+
* **GitHub Actions (CI)** automatically run tests, formatting checks, and build steps on every pull request to `main`, ensuring consistent quality standards and preventing broken code from being merged.
141+
* **Branch-based development** is used, with feature and fix branches (`feat/*`, `fix/*`) to keep the main branch stable.
142+
143+
### Organizational and Collaboration Practices
144+
145+
* **Semantic commit messages** (Conventional Commits) improve readability of the project history and support changelog generation.
146+
* **Consistent docstring standards** ensure functions are easy to understand and maintain, especially for new contributors.
147+
* **Clear contribution guidelines** lower the barrier to entry for contributors and help standardize collaboration across the team.
148+
149+
---
150+
151+
## Scaling Considerations
152+
153+
If this project (or a similar one) were to scale to a larger user base or contributor community, the following tools and practices would be adopted or expanded:
154+
155+
* **Stricter CI gates**, such as required test coverage thresholds and branch protection rules, to maintain code quality at scale.
156+
* **Dependency monitoring** tools (e.g., Dependabot) to keep dependencies secure and up to date.
157+
* **Pre-commit hooks** to catch formatting, linting, and documentation issues earlier in the development cycle.
158+
* **Expanded documentation and examples**, including tutorials and usage guides, to support a broader audience.
159+
* **Issue and PR templates refinement**, ensuring high-quality reports and consistent reviews as contribution volume grows.
160+
161+
These tools and practices help ensure that the project remains maintainable, reliable, and welcoming as it scales in complexity and community size.
162+

0 commit comments

Comments
 (0)