Repository navigation
Releases: jgstew/pre-commit-jgstew
Release list
v2.3.0
v2.3.0
Deprecation release: validate-bes follows check-bes-conventions out to jgstew/pre-commit-bigfix. All BigFix-specific hooks are now on their way out of this repo.
⚠️ Deprecated: validate-bes moved to jgstew/pre-commit-bigfix
validate-besnow lives at jgstew/pre-commit-bigfix alongsidecheck-bes-conventions.- It still works in this release, but prints a deprecation banner on stderr on every run (
verbose: true, so pre-commit shows it even on success), and will be removed in the next release. - Update your
.pre-commit-config.yaml— both BigFix hooks in one repo entry:
repos:
- repo: https://github.com/jgstew/pre-commit-bigfix
rev: v0.3.1
hooks:
# validate-bes is now bes-schema-validate
- id: bes-schema-validate
# check-bes-conventions is now bes-conventions-check
- id: bes-conventions-check- The
check-bes-conventionsbanner now points atrev: v0.2.0(wasv0.1.0). - Validation logic is unchanged; only the banner, hook metadata, and README wording changed.
- Removed the
check-bes-conventionsself-reference from this repo's own.pre-commit-config.yaml.
CI
- Bumped
actions/setup-pythonfromv6.3.0tov7.0.0across all workflows. - Bumped
lewagon/wait-on-check-actionfromv0.2tov1.8.1.
Full Changelog: v2.2.0...v2.3.0
v2.2.0
v2.2.0
Deprecation release: check-bes-conventions has moved to its own repo. Plus CI speedups and a new dev-time git hygiene hook.
⚠️ Deprecated: check-bes-conventions moved to jgstew/pre-commit-bigfix
- The hook now lives at jgstew/pre-commit-bigfix.
- It still works in this release, but prints a loud deprecation banner on stderr on every run (the hook entry sets
verbose: trueso pre-commit shows it even when the hook passes), and it will be removed in the release after this one. - Update your
.pre-commit-config.yaml:
repos:
- repo: https://github.com/jgstew/pre-commit-bigfix
rev: v0.3.1
hooks:
# check-bes-conventions is now bes-conventions-check
- id: bes-conventions-check- The hook
name/descriptionin.pre-commit-hooks.yamland the README table are marked DEPRECATED accordingly. No check logic changed.
Repo & tooling
- Added
.gitattributes:*.besis nowtext eol=CRLF, tagged as XML for linguist, withblank-at-eolwhitespace checks disabled;*.reggetsworking-tree-encoding=UTF-16LE+eol=CRLF. - Added the
git-checkhook (jumanjihouse/pre-commit-hooks) to this repo's own config, configured via the new.gitattributes, andcheck-mailmapas a manual-stage hook. - Enabled
fix-files-to-asciion this repo's own config, and bumped its self-reference tov2.1.1. .gitignore: ignore.DS_Store.
CI
- Cache
~/.cache/pre-commit(keyed on the.pre-commit-config.yamlhash) in the pre-commit and tag-and-release workflows. - Pinned
actions/setup-pythontov6.3.0; bumpedactions/cachefrom v4 to v6. - Standardized workflow Python on 3.11 (pre-commit workflow was 3.12, yamllint was 3.8).
Full Changelog: v2.1.1...v2.2.0
v2.1.1
v2.1.1
Major release: the project has been renamed from pre-commit-hooks to pre-commit-jgstew. No config changes needed for pre-commit users! This is a breaking change for anyone who installs or imports the package directly, which is why the version jumps to 2.x. It also substantially expands the BigFix BES convention checker.
⚠️ Breaking: project rename
- The distribution/PyPI name is now
pre-commit-jgstew(waspre-commit-hooks), and the import package is nowpre_commit_jgstew(waspre_commit_hooks). - Update any direct installs (
pip install pre-commit-jgstew) and anyimport pre_commit_hooks/from pre_commit_hooks import ...to the new name. - The wheel is now published as
pre_commit_jgstew-2.1.1-py3-none-any.whl. - No config changes needed for pre-commit users: the hook
ids and console-script entry-point names are unchanged, so.pre-commit-config.yamlfiles that reference this repo by URL keep working as-is.
Hook refinements
check-bes-conventions(BigFix.besfiles): significantly expanded the content checks and in-place auto-fixes (bigfix_bes_check_conventions.pygrew by ~450 lines), with matching new test coverage.
Tests & tooling
- Added packaging-metadata tests that cross-validate
setup.cfgconsole scripts,.pre-commit-hooks.yaml, and the package modules, plus guard tests for the rename and forsetup.py --versionemitting a valid version.
Full Changelog: v1.6.3...v2.1.1
v1.6.3
v1.6.3
Maintenance release: CI security hardening and refinements to the existing convention-check hooks. No new hooks and no breaking changes.
CI / security
- Added zizmor GitHub Actions security scanning (
.github/zizmor.yaml) and applied its fixes across the workflows. - Scoped least-privilege
permissions:blocks on every workflow (contents: read, pluschecks: writefor misspell andcontents: writefor tag-and-release). - Set
persist-credentials: falseon checkout steps and passed the version through anenv:var in tag-and-release to avoid template injection in the shell step. - Removed the standalone flake8 workflow (flake8 now runs via pre-commit) and dropped
--hook-stage manualfrom the PR pre-commit run. - Bumped
actions/checkoutfrom v6 to v7 (dependabot).
Hook refinements
check-processor-conventions,check-recipe-conventions, andcheck-bes-conventions(AutoPkg processor.py, AutoPkg recipe.recipe/.recipe.yaml, and BigFix.besfiles respectively): internal cleanups and fixes surfaced by ruff/slyp, with no change to the rule set.
Tooling
- Enabled ruff, bandit, slyp, and zizmor in the repo's own
.pre-commit-config.yaml; codespell config moved topyproject.toml.
Full Changelog: v1.6.2...v1.6.3
v1.6.2
New hook
fix-files-to-ascii-- the auto-fixing companion toverify-files-are-ascii: transliterates non-ASCII content to ASCII in place viaanyascii, with a pre-substitution table so directional arrows become->/<-(and<->). Preserves line endings.
check-bes-conventions greatly expanded
- New checks:
DownloadSizevalue (auto-fix ->0),Descriptionboilerplate-placeholder, CPE-2.3 value,action-ui-metadatashape, entity-escaped</>/&that should be<![CDATA[...]]>(auto-fix unescapes + wraps), prefetch-line shape,ActionScriptblank-line spacing, and CRLF line endings (auto-fix normalizes the whole file to CRLF). - Missing
SourceReleaseDate/x-fixlet-modification-timeare now auto-fixable. - Each content object (
Task/Fixlet/...) in a<BES>is validated independently, with opt-out markers scoped per object.
regex-search-filter-replace hardened
- Preserves line endings (no more CRLF -> LF).
- Adds
--encoding(defaultutf-8). - Reports non-UTF-8 reads and un-encodable writes as failures instead of silently skipping or crashing (and never truncates a file on a failed write).
Other
- Line-ending-preserving fixers across the board.
- CI: fold standalone black/isort/etc. GitHub Actions into pre-commit; rework workflow triggers.
- Add
pyproject.tomlconfig:[tool.pytest.ini_options](pythonpath/testpaths) and[tool.codespell]. - Spelling fixes and assorted hook tweaks.
Full Changelog: v1.6.1...v1.6.2
v1.6.1
New hook
-
check-bes-conventions-- the content-level companion tovalidate-bes(which only checks XSD validity). Opinionated checks the schema cannot express:ActionScriptMIMETypemust be one of the allowed set;SourceReleaseDatemust beYYYY-MM-DD;x-fixlet-modification-timemust be in the expected format;Task/Fixletcontent must carry a release date and a modification time.
Unparsable files are skipped (validate-bes stays the authority on validity). Ships with a test suite.
Full Changelog: v1.5.1...v1.6.1
v1.5.1
New hook
check-recipe-conventions-- picky, opinionated cross-field checks and auto-fixes for AutoPkg recipe files (YAML or plist) that a JSON schema cannot express:Identifier<-> InputNAME,ParentReciperesolvability/cycles, duplicateIdentifier/Description, filename <-> identifier type,MinimumVersionfloor,Process-step blank-line spacing, http/https, regex validity, and shared-processor references. Auto-fixes the fixable ones;--strictalso fails on remaining warnings. Ships with a test suite and README updates.
Maintenance
- Bump
actions/checkout(6 -> 7).
Full Changelog: v1.4.1...v1.5.1
v1.4.1
Testing / CI
- Add a full
pytestsuite covering the hooks (tests/), a sharedconftest.py, and a pre-commit GitHub Action. - Move example fixtures from
test/totests/examples/.
Improvements
check-processor-conventionsimprovements and fixes.- Small fixes to
revert-missing-change,verify-files-contain-entry,verify-files-contain-pattern, and local-hook wiring.
Full Changelog: v1.4.0...v1.4.1
v1.4.0
New hook
check-processor-conventions-- picky, opinionated checks and auto-fixes for AutoPkg processor.pyfiles (boilerplate, docstrings,input/output_variables,__main__guard, naming, ...). Highlights:- auto-fixes the fixable issues in place;
- can generate a new-processor / test-recipe stub;
--disableto skip specific checks;- defaults to checking all processor-like Python scripts.
Minor version bump (new feature).
Full Changelog: v1.3.2...v1.4.0
v1.3.2
Improvements
regex-search-filter-replace-- reworked search/filter/replace logic and reporting.
Maintenance
- CI workflow updates; bump
actions/checkout(4 -> 6) andreviewdog/action-misspell(1.26.3 -> 1.27.0).
Full Changelog: v1.3.1...v1.3.2