ShellShop uses a simple master / dev flow:
master: stable Python/Textual baselinedev: integration branch for upcoming workfeat/<name>andfix/<name>: short-lived branches created fromdev
If you open a pull request, target dev unless the change is a release-only fix that maintainers explicitly want on master.
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
python -m shellshop
python -m unittestUse clear conventional prefixes:
feat:new functionalityfix:bug fixesdocs:documentation changesrefactor:structural changes without a user-facing featuretest:test-only changeschore:tooling or maintenance
Example: feat: add YAML catalog loader
- keep PRs focused on one problem
- add or update tests when changing behavior
- update docs when changing workflows or commands
- avoid drive-by refactors in unrelated files
Good issues are small enough to finish, but complete enough to start without guessing:
Title: short and descriptiveType:[Feature],[Bug],[Docs], or[Chore]Problem: what is missing or broken todayProposed change: the concrete scope of workAcceptance criteria: how reviewers know the issue is done
The starter backlog for open-source contributors lives in docs/oss-contribution-plan.md.