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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| changeguard-0.3.1.tar.gz | 15.4 kB | Without provenance | Details for changeguard-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| changeguard-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for changeguard-0.3.1-py3-none-any.whl |
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
|
Security for changeguard 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.