# Project Housekeeping Checklist A quick checklist for maintaining the project environment, development tools, and CI/CD workflows. --- ## Adding a New Package - ✅ Add to `requirements.txt` if it's needed at runtime. - ✅ Add to `requirements-dev.txt` if it's only for development, testing, or documentation. - ✅ If CI depends on it, confirm it’s included in GitHub Actions workflows. ## Updating Dependencies - ✅ Specify minimum versions to maintain compatibility across environments. - ✅ Test the update locally and in GitHub Actions. - ✅ Optionally recreate your virtual environment for a clean state. ## Cleaning or Recreating the Environment - ✅ Delete and recreate your virtual environment after major updates. - ✅ Reinstall with `pip install -r requirements-dev.txt`. - ✅ Run `pre-commit run --all-files` to ensure formatting and linting. - ✅ Test with `pytest`. ## Pre-commit and Tests - ✅ Add new hooks to `.pre-commit-config.yaml` if needed. - ✅ Test new hooks locally with `pre-commit run --all-files`. - ✅ Confirm CI passes. ## Documentation - ✅ Ensure any new doc dependencies are in `requirements-dev.txt`. - ✅ Test docs build locally using `make clean html` in the `docs/` directory. - ✅ Confirm the GitHub Actions documentation build workflow passes. ## Before Merging a Branch - ✅ Run `pytest` locally. - ✅ Run `pre-commit run --all-files`. - ✅ Confirm GitHub Actions CI passes. - ✅ Optional: squash commits for a clean history. - When merging a pull request, select “Squash and merge” in the GitHub interface. This will combine all commits from the branch into a single, clean commit on main. You can (and should) edit the final commit message to describe the overall change clearly. Use squash for branches with multiple small commits or work-in-progress history. Skip squashing if you have meaningful, separated commits that you want to preserve in history. --- *This checklist was drafted with the help of ChatGPT, in collaboration with the project developer.*