CLI to check if any of the original files in a repository/directory change over the course of a precommit script.
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file changeguard-0.3.1.tar.gz.
File metadata
- Download URL: changeguard-0.3.1.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa380adfe51ecd052f82603b3193e6319a2911d87a37aded93e8108d7e3920a4
|
|
| MD5 |
86e891e5b24936783eb2b315c368e87a
|
|
| BLAKE2b-256 |
59c2fa772bf416615260b85ce5d870c8eae5b7d90c5c015346167a19bd98b0eb
|
File details
Details for the file changeguard-0.3.1-py3-none-any.whl.
File metadata
- Download URL: changeguard-0.3.1-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e8fb3f4d9fe89fa81017cdbe18f9f83479cb50dccd2b899db43d6a0a500fdec
|
|
| MD5 |
22690548ef715130c849fa70fdaa3fbf
|
|
| BLAKE2b-256 |
47f32fa8facf0ff7c68da2f4d08f3f348f8d5797941602cb8eae68c6a2d14d56
|