Thanks for your interest in improving ShieldPrompt. This guide covers how to propose changes and how maintainers cut releases.
All changes land through pull requests — direct pushes to main are blocked
by branch protection. Every PR must be approved by a maintainer before it can
be merged.
- Fork the repo (or create a branch if you have write access).
- Create a branch off
main:git checkout -b feat/short-description
- Install dev dependencies in a virtualenv:
python3 -m venv .venv source .venv/bin/activate pip install -e '.[dev]'
- Make your changes. Add or update tests under
tests/for anything user-visible. Keep changes focused — smaller PRs get reviewed faster. - Run the test suite and make sure it passes:
pytest -q
- Commit with a clear message describing the why, not just the what.
- Push and open a PR against
main. Fill in the PR description with what changed and how to verify it. - Wait for review. A maintainer must approve before the PR can be merged.
- Python 3.9+ compatible.
- New entity types go in
src/shieldprompt/entities.pyplus the matching detector (regex or NER-based). - No unscoped secrets, PII, or customer data in tests or fixtures.
- Keep third-party dependencies minimal. New runtime deps need justification in the PR description.
- Bugs — open a GitHub issue with a minimal reproduction.
- Security issues — please email the maintainer privately first instead of opening a public issue.
Only the project owner (Chandan Kumar) can publish to PyPI. The PyPI API token is held by the owner and is not shared. Contributors and other maintainers cannot cut releases — if a new release is needed, open an issue requesting one.