Contributing
Thanks for your interest. Contributions of all sizes are welcome â a typo fix is just as useful as a feature. This document describes how to get from âI want to helpâ to âmy change is mergedâ.
Filing issues
Section titled âFiling issuesâ- Search open issues before opening a new one.
- Use the bug-report or feature-request template.
- For security vulnerabilities, do not open a public issue â see
SECURITY.md.
Setting up locally
Section titled âSetting up locallyâRequires Python 3.12+ and (for bash tests) bats-core + shellcheck.
git clone https://github.com/paulnsorensen/easy-cheese.gitcd easy-cheesepip install pyyaml==6.0.2 pytest==9.0.3 # validation + Python testsbrew install bats-core shellcheck # macOS â bash testspython3 scripts/vendor_deps.py # unpack vendor/ (or: just vendor)vendor/ holds the attrs/cattrs trees the Python suite imports and the .pyz
bundles ship. It is generated from the hash-pinned requirements-vendor.txt
rather than committed, so a fresh clone needs that last command once; re-run it
whenever the pins change.
Running tests
Section titled âRunning testsâ# Skill YAML/frontmatter validationpython3 .github/scripts/test_validate_skills.py -vpython3 .github/scripts/validate_skills.py
# Python unit testspython3 -m pytest tests/python -q
# Bash tests (requires bats + shellcheck)shellcheck scripts/install.shbats tests/bash/test_install.batsPlease run the full test suite before opening a PR.
Submitting a pull request
Section titled âSubmitting a pull requestâ- Fork the repo and create a topic branch from
main. - Make your change. Keep commits focused; one concern per commit is easier to review than a kitchen-sink commit.
- Use Conventional Commits
for the PR title (e.g.
feat: add X,fix: handle Y,docs: explain Z). Squash-merge will use the PR title as the commit subject. - Fill out the PR template â the âwhyâ matters more than the âwhatâ.
- Wait for CI to go green and address review feedback.
Code of Conduct
Section titled âCode of ConductâParticipation in this project is governed by the Contributor Covenant. By contributing you agree to abide by it.
Licensing
Section titled âLicensingâBy submitting a contribution you agree that it will be licensed under
the same terms as the project itself (see LICENSE).