ChangeGuard
| Status | Stable | Unstable | ||
|---|---|---|---|---|
| Master | ||||
| Develop |
CLI to check if your repository/directory files have changed over the span of a script.
What
Like hashdeep, but customized to check if any of the original files in a repository/directory change over the course of a precommit script.
Features
- Can use any sha256sum-like command (uses xxhash by default).
- Use
.changeguard-ignoreto ignore files that should not be checked for changes.
Getting Started
Install
Tested on
- 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/changeguard.git@v0.3.1
Use
Contributions
Development environment: Linux-like
- 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
Commit Process
- (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).
Release Process
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.
Release files for changeguard 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| changeguard-0.3.1.tar.gz | 15.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| changeguard-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.2 kB
Release files / changeguard-0.3.1.tar.gz
| Download URL | changeguard-0.3.1.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa380adfe51ecd052f82603b3193e6319a2911d87a37aded93e8108d7e3920a4
|
|
BLAKE2b-256 checksum How to use checksums |
59c2fa772bf416615260b85ce5d870c8eae5b7d90c5c015346167a19bd98b0eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.0
|
Release files / changeguard-0.3.1-py3-none-any.whl
| Download URL | changeguard-0.3.1-py3-none-any.whl |
|---|---|
| Size | 12.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e8fb3f4d9fe89fa81017cdbe18f9f83479cb50dccd2b899db43d6a0a500fdec
|
|
BLAKE2b-256 checksum How to use checksums |
47f32fa8facf0ff7c68da2f4d08f3f348f8d5797941602cb8eae68c6a2d14d56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.0
|