| Status | Stable | Unstable | ||
|---|---|---|---|---|
| Master | ||||
| Develop |
CLI to check if your repository/directory files have changed over the span of a script.
Like hashdeep, but customized to check if any of the original files in a repository/directory change over the course of a precommit script.
- Can use any sha256sum-like command (uses xxhash by default).
- Use
.changeguard-ignoreto ignore files that should not be checked for changes.
- WSL2 Ubuntu 20.04, Python 3.8.0
- Ubuntu 20.04, Python 3.8.0, 3.9.0, 3.10.0, 3.11.0, 3.12.0, tested in GitHub Actions workflow (build-and-test.yml).
Requirements:
- Linux-like environment
- Why: Uses pexpect.spawn().
- Python 3.8+
- Why: Some dev dependencies require Python 3.8+.
# Install from pypi (https://pypi.org/project/changeguard/)
pip install changeguard
# Install from git (https://github.com/realazthat/changeguard)
pip install git+https://github.com/realazthat/[email protected]- For running
pre.sh(Linux-like environment).- Requires
pyenv, or an exact matching version of python as in.python-version. nvmfor prettier (markdown formatting).bash,grep,xxd,git,xxhash(for scripts/workflows/tests).jq, (installation) required for yq, which is itself required for ourREADME.mdgeneration, which usestomlq(from the yq package) to include version strings frompyproject.toml.- Requires
nodejs(for act). - Requires
go(to run act). docker(for act).
- Requires
- (Optionally) Fork the
developbranch. - Stage your files:
git add path/to/file.py. bash scripts/pre.sh, this will format, lint, and test the code.git statuscheck if anything changed (generatedREADME.mdfor example), if so,git addthe changes, and go back to the previous step.git commit -m "...".- Make a PR to
develop(or push to develop if you have the rights).
These instructions are for maintainers of the project.
developbranch: Runbash scripts/pre.shto ensure everything is in order.developbranch: Bump the version inpyproject.toml, following semantic versioning principles. Also modify thelast_unstable_releaseandlast_stable_releasein the[tool.changeguard-project-metadata]table as appropriate.developbranch: Commit these changes with a message like "Prepare release X.Y.Z". (See the contributions section above).masterbranch: Merge thedevelopbranch into themasterbranch:git checkout master && git merge develop --no-ff.masterbranch: Tag the release: Create a git tag for the release withgit tag -a vX.Y.Z -m "Version X.Y.Z".- Publish to PyPI: Publish the release to PyPI with
bash scripts/deploy-to-pypi.sh. - Push to GitHub: Push the commit and tags to GitHub with
git pushandgit push --tags. git checkout develop && git merge masterThe--no-ffoption adds a commit to the master branch for the merge, so refork the develop branch from the master branch.git push origin developPush the develop branch to GitHub.