| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: prek | Distribution: openSUSE Tumbleweed |
| Version: 0.4.11 | Vendor: openSUSE |
| Release: 1.1 | Build date: Mon Jul 27 06:58:34 2026 |
| Group: Unspecified | Build host: reproducible |
| Size: 20717926 | Source RPM: prek-0.4.11-1.1.src.rpm |
| Packager: https://bugs.opensuse.org | |
| Url: https://github.com/j178/prek | |
| Summary: Reimagined version of pre-commit, built in Rust | |
prek is a reimagined version of pre-commit, built in Rust. It is designed to be a faster, dependency-free and drop-in alternative for it, while also providing some additional long-requested features. Features - A single binary with no dependencies, does not require Python or any other runtime. - Faster than pre-commit and uses only half the disk space. - Fully compatible with the original pre-commit configurations and hooks. - Built-in support for monorepos (i.e. workspace mode). - Integration with uv for managing Python virtual environments and dependencies. - Improved toolchain installations for Python, Node.js, Go, Rust and Ruby, shared between hooks. - Built-in Rust-native implementation of some common hooks.
MIT
* Mon Jul 27 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.11:
* Highlights
- This release adds two new builtin hooks, deny-pattern and
require-pattern, as native alternatives for pygrep use cases.
deny-pattern fails when a configured pattern is found, while
require-pattern ensures every selected file contains a match.
By matching natively without spawning a Python subprocess,
they run over 4x faster than pygrep in benchmarks. Note that
they use Rust regex syntax, which does not support
look-around features such as negative lookbehind.
- prek run now supports --glob <PATTERN> to run hooks on
tracked files matching a glob. It can be repeated or combined
with --files and --directory.
- Hook priorities now support reusable aliases:
[priorities]
checks = 10
[[repos]]
repo = "builtin"
hooks = [
{ id = "check-json", priority = "checks" },
{ id = "check-yaml", priority = "checks" },
]
This makes parallel scheduling easier to read and maintain.
* Enhancements
- Add deny-pattern and require-pattern builtin hooks (#2359)
- Support --glob patterns in prek run (#2381)
- Support reusable aliases for hook priorities (#2331)
- Implement requirements-txt-fixer as a builtin hook (#2390)
- Improve user-facing warnings and errors (#2380)
- Install Node hooks through git url (#2394)
* Performance
- Reduce blocking-pool overhead in file hooks (#2384)
- Speed up mixed-line-ending scans with memchr2 (#2391)
* Bug fixes
- Honor filenames in builtin hook entry and args (#2389)
- Match identify tags across filename parts (#2399)
- Preserve hook output order with a shared pipe (#2385)
- Preserve system download policy when applying metadata (#2395)
* Thu Jul 16 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.10:
* Enhancements
- Add PHP language support (#2314)
- Add freeze option to update settings (#2323)
- Add tag filters to update configuration (#2354)
- Identify 'mts' and 'cts' as TypeScript files (#2209)
- Publish Alpine Docker images (#2352)
- Support builtin and meta in try-repo (#2350)
* Bug fixes
- Fix Python discovery order (#2348)
- Fix Windows progress rendering (#2328)
- Preserve configured repo values for updates (#2324)
- Scope synthetic GIT_WORK_TREE to git commands (#2356)
* Documentation
- Expand common workflows guide (#2351)
* Dependencies
- Update Rust crate indicatif to v0.18.6 (#2330)
- Update Rust crate fs-err to v3.3.1 (#2329)
- Update Rust crate bstr to v1.12.3 (#2335)
- Update Rust crate serde-saphyr to 0.0.29 (#2341)
- Update Rust crate rustc-hash to v2.1.3 (#2340)
- Update Rust crate clap_complete to v4.6.7 (#2336)
- Update Rust crate anyhow to v1.0.103 (#2333)
- Update Rust crate liblzma to v0.4.7 (#2339)
- Update Rust crate ignore to v0.4.27 (#2338)
- Update dependency uv to v0.11.26
- Update Rust crate console to v0.16.4
- Update Rust crate aws-lc-rs to v1.17.1 (#2334)
* Mon Jul 13 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.9:
* Enhancements
- Preserve additional dependency order (#2311)
- Remove parallel Ruby gem installation (#2307)
- Warn for missing update repositories (#2316)
* Bug fixes
- Fix mixed workspace selectors (#2306)
- Fix try-repo local path resolution (#2310)
- Use resolved gem executable (#2308)
- Validate complete XML documents in check-xml (#2312)
* Mon Jul 06 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.8 (.7 was not released):
* Enhancements
- Add default_env configuration (#2288)
- Rename auto-update to update (#2286)
* Bug fixes
- Fix progress collapse ordering (#2291)
- Fix progress insertion after collapsed rows (#2292)
* Wed Jul 01 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.6:
* Enhancements
- Verify managed toolchain downloads before installation
(#2229)
- Add PREK_DOCKER_NO_INIT to opt-out Docker --init (#2242)
- Improve subprocess error messages (#2257)
- Split run concurrency knobs: PREK_CONCURRENT_HOOKS and
PREK_CONCURRENT_BATCHES (#2276)
* Performance
- Avoid allocating markdown extensions per file (#2245)
- Avoid unchanged config tracking writes (#2247)
- Delay trailing whitespace output buffer (#2244)
- Prefilter VCS permalink lines (#2253)
- Skip unnecessary submodule updates during hook repo clone
(#2255)
* Documentation
- Document language_version inferring for Python and Go (#2241)
* Other changes
- Refactor env var handling (#2277)
- Use serde-saphyr for YAML string quoting (#2228)
* Mon Jun 15 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.5:
* Highlights
0.4.5 completes prek's pre-commit language coverage. With R,
Conda, Perl, and coursier now supported, prek supports every
language available in pre-commit, plus prek-only modern
languages such as Bun and Deno.
This is full feature parity with pre-commit. The last major
compatibility gap is closed, and prek is now on the path to
1.0.
* Enhancements
- Add Perl language support (#2201)
- Add R language support (#2206)
- Add Conda language support (#2203)
- Add coursier language support (#2194)
- Add group filters to list (#2152)
- Remove legacy repo path support (#2150)
- Skip cloning fully filtered remote repos (#2151)
* Performance
- Avoid building JSON trees in syntax hooks (#2156)
- Scan mixed line endings without line vector (#2160)
- Skip file scan for always-run no-filename hooks (#2155)
- Use fixed buffer for EOF scan (#2163)
- Use fixed buffer for private key scan (#2164)
* Bug fixes
- Fix pretty-format-json CRLF handling (#2210)
- Handle missing blobs in diff snapshots (#2211)
- Ignore coursier channel from working repo (#2202)
* Dependencies
- Update Rust crate assert_fs to v1.1.4 (#2183)
- Update Rust crate async_zip to 0.0.18 (#2217)
- Update Rust crate http to v1.4.1 (#2184)
- Update Rust crate ignore to v0.4.26 (#2218)
- Update Rust crate mea to v0.6.4 (#2185)
- Update Rust crate memchr to v2.8.1 (#2186)
- Update Rust crate reqwest to v0.13.4 (#2187)
- Update Rust crate serde-saphyr to 0.0.27 (#2188)
- Update Rust crate toml_edit to v0.25.12 (#2189)
- Update Rust crate which to v8.0.3 (#2219)
- Update dependency uv to v0.11.17 (#2182)
- Update dependency uv to v0.11.19 (#2214)
* Thu Jun 04 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.4:
* Highlights
0.4.4 makes prek run easier to watch and easier to slice.
Hook stream output now shows a small live preview under the
running hook in the progress UI. Long-running hooks no longer
look stuck while they are producing logs, and failed hooks are
easier to diagnose because recent output is already visible
before the final result.
The new group selector lets a single config support different
workflows. Tag hooks with groups, then select or exclude those
groups at run time:
repos:
- repo: local
hooks:
- id: format
name: Format Python
language: system
entry: ruff format
groups: [format, ci]
- id: lint
name: Lint Python
language: system
entry: ruff check
groups: [lint, ci]
prek run --all-files --group ci
prek run --all-files --no-group format
This is useful when local development, CI, slow validation, or
project-specific checks need different hook sets without
splitting the config.
* Enhancements
- Add hook group filters to prek run (#2141)
- Delay hook output preview rendering (#2140)
- Stream hook output in progress UI (#2136)
* Bug fixes
- Fix intent-to-add stash restore (#2143)
* Documentation
- Document hook stage file input (#2147)
* Fri May 29 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.3:
* Bug fixes
- Ignore stat-only hook rewrites (#2131)
- Update to version 0.4.2:
* Highlights
- 0.4.2 is mainly about making prek run faster in large repos.
prek now does less git diff work. After hooks run, prek uses
diff checks to detect files changed by hooks. If a hook
modifies files, prek marks that hook as failed. That is
important, but full diff snapshots can be slow in big repos,
especially when they happen after every hook group.
We skip the expensive diff path in two common cases: built-in
hooks that prek knows are read-only, and clean worktrees
where a cheap dirty check is enough unless a hook actually
changes files. In the right large-repo workload, skipping
that work can make runs up to 10x faster.
Workspace mode is faster too. Hooks have historically been
too serial. Priority-based concurrency helped, but it
required users to choose good priority values. Now sibling
projects at the same workspace depth run in parallel
automatically. Their files do not overlap, so this is safe
and needs no extra config. For multi-project workspaces, this
can dramatically reduce total hook time.
* Enhancements
- Run same-depth projects concurrently (#2110)
- Make rustup install profile configurable (#2111)
- Simplify hook progress folding (#2125)
* Performance
- Optimize diff checks for clean worktrees (#2109)
- Skip diff checks for read-only hooks (#2108)
* Wed May 20 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.1:
* Enhancements
- Fix pre-push range after rebase (#2089)
- Prefer extensions over loose filename tags (#2092)
- Skip installs for hooks that will not run (#2103)
* Performance
- Optimize meta hook file scans (#2106)
- Reduce run filtering allocations (#2090)
* Fri May 15 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.4.0:
* Breaking changes
These are narrow cleanup breaks in behavior that was either
temporary or never worked correctly. Most users should not need
to change anything.
- Generated hook scripts no longer preserve -q, -v, or
- -no-progress passed to prek install. This only affects users
who expected those global flags to be baked into installed
hooks. (#1966)
- language_version no longer accepts direct executable paths.
Use language_version: system for a system toolchain, or use a
supported version request instead. This path form did not
work reliably before, so existing working configs should be
unaffected. (#1831)
* Enhancements
- Expand tilde in --config, --cd, --log-file and --git-dir
(#2063)
- Prevent auto-update cooldown downgrades (#2055)
- Use managed npm cache for node hooks (#2075)
* Bug fixes
- Fix npm config env overrides for node hooks (#2074)
* Documentation
- Add cookbook page for enabling Git 2.54 config-based global
hooks (#2061)
* Wed May 06 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.13:
* Bug fixes
- Respect hook filters for message files (#2049)
* Documentation
- Add Godot Engine to users in README (#2047)
- Update to version 0.3.12:
* Highlights
- auto_update.cooldown_days is now available in both the
user-level global config (~/.config/prek/prek.toml on Linux
and macOS, or $XDG_CONFIG_HOME/prek/prek.toml when set;
%APPDATA%\prek\prek.toml on Windows) and project config.
Set a user default for prek auto-update, then override it per
project when a repository needs a different update cadence.
[auto_update]
cooldown_days = 7
* Enhancements
- Add global auto-update cooldown config (#2041)
- Add project auto-update cooldown config (#2044)
- Support language: dart (#1146)
* Bug fixes
- Pass commit message file to workspace hooks (#2043)
- Preserve non-UTF8 filenames from git (#2023)
- ruby: put resolved Ruby's bin dir on $PATH for gem
invocations (#2021)
* Documentation
- Update docs with the new logo and icon (#2025)
- Point schema docs to SchemaStore (#2039)
* Thu Apr 30 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.11:
* Highlights
- Hook entries now have an explicit shell option for shell
snippets. Set shell: sh, bash, pwsh, powershell, or cmd when
an entry should be evaluated by that shell; leaving it unset
keeps prek's direct argv execution.
- prek auto-update can now filter tag candidates before
choosing an update. Both options take glob patterns: use
- -include-tag to only consider matching tag names, and
- -exclude-tag to skip matching tags such as moving tags or
prereleases.
* Enhancements
- Add auto-update --exclude-repo <repo> to skip repos (#1983)
- Add auto-update --exit-code to exit with non-zero on updates
(#2002)
- Add auto-update --include-tag <pattern>/--exclude-tag
<pattern> to filter tags (#1984)
- Adds an explicit shell hook option for entries that should
run as shell source (#2004)
- Make --hook-dir optional for hook-impl (#1989)
- Skip shim warning when --script-version is missing (#1990)
* Bug fixes
- Install Ruby executable in gem bin (#2017)
- Use dedicated Android npm package (#1982)
- Use stable repo keys without breaking cached clones (#1995)
* Documentation
- Explain prek name (#1980)
- Clarify pass_filenames concurrency docs (#1999)
- Reorganize documentation references (#2005)
- Clarify hook author manifest env docs (#1991)
- docs: add Sentry to users list (#1981)
* Dependencies
- Update Rust crate rayon to v1.12.0 (#2015)
- Update Rust crate webpki-root-certs to v1.0.7 (#2014)
- Update Rust crate libc to v0.2.185 (#2013)
- Update Rust crate tokio to v1.52.1 (#2016)
- Update Rust crate clap_complete to v4.6.2 (#2012)
- Update Rust crate clap to v4.6.1 (#2011)
- Update Rust crate assert_cmd to v2.2.1 (#2010)
- Update pre-commit hook crate-ci/typos to v1.45.1 (#2009)
- Update dependency uv to v0.11.7 (#2007)
- Bump rustls-webpki from 0.103.10 to 0.103.13 (#1987)
- Bump setup-mold to 9c9c13bf4c3f1adef0cc596abc155580bcb04444
(#1986)
* Tue Apr 21 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.10:
* Enhancements
- Disallow rev for non-remote repos in schema (#1964)
- Hide up-to-date output in non-verbose mode (#1942)
- Improve merge conflict marker detection (#1937)
- Keep finished hooks visible (#1967)
- Preserve frozen comment spacing in auto-update (#1945)
- Reimplement @j178/prek npm package (#1973)
* Bug fixes
- Prefer stable Rust toolchains (#1974)
* Documentation
- Add SKILL.md for prek (#1950)
- Document gh skill install j178/prek prek to install prek
skill for agents (#1951)
- Improve compatibility and migration docs (#1940)
* Other changes
- Sync latest identify tags (#1947)
* Sat Apr 18 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.9:
* Highlight
- prek auto-update is now stricter about pinned revisions and
more useful in CI.
It now keeps rev and # frozen: comments in sync, can detect
impostor commits when validating pinned SHAs, and lets you
use prek auto-update --check to fail on both available
updates and frozen-ref mismatches without rewriting the
config.
Examples:
$ prek auto-update
[#] updates revs and repairs stale `# frozen:` comments
$ prek auto-update --freeze
[#] writes frozen SHAs with matching `# frozen: <tag>` comments
$ prek auto-update --check
[#] exits non-zero when updates are available, a `# frozen:` comment is stale,
[#] or a pinned SHA does not belong to the fetched upstream refs
* Enhancements
- Check and sync frozen comments during auto-update (#1896)
- Handle impostor commits in auto-update (#1919)
- Add experimental language: dotnet support (#1871)
- Honor repo and worktree core.hooksPath (#1892)
- Add prek run --no-fail-fast to override config file (#1859)
- Add forbid-new-submodules as builtin hook (#1853)
- Clean stale patch files in cache gc (#1877)
- Display auto-update results by config entry (#1922)
- Restrict patch directory permissions (#1876)
- Show tag names in auto-update --freeze output (#1916)
- Use a bitset for hook stages (#1860)
* Bug fixes
- Canonicalize CWD and GIT_ROOT paths (#1878)
- Ensure quotes are added for non-string revisions in
auto-update (#1936)
* Documentation
- Update docs for case of hooks modifying files with a non-zero
exit code (#1879)
* Mon Mar 23 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.8 (.7 was not released):
* Enhancements
- Add experimental language: deno support (#1516)
- Add pretty-format-json as builtin hook (#915)
- Add check-vcs-permalinks as builtin hook (#1842)
- Add check-illegal-windows-names as builtin hook (#1841)
- Add check-shebang-scripts-are-executable builtin hook (#1847)
- Add destroyed-symlinks builtin hook (#1851)
- Add file-contents-sorter as builtin hook (#1846)
- Add --all flag to prek uninstall (#1817)
- Improve file pattern parse errors (#1829)
- Validate uv binary after download (#1825)
* Bug fixes
- Fix workspace-relative added file paths (#1852)
- Relax alias-anchor ratio check for check-yaml (#1839)
* Mon Mar 16 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.6:
* Enhancements
- Allow selectors for hook ids containing colons (#1782)
- Rename prek install-hooks to prek prepare-hooks and prek
install --install-hooks to prek install --prepare-hooks
(#1766)
- Retry auth-failed repo clones with terminal prompts enabled
(#1761)
* Performance
- Optimize detect_private_key by chunked reading and using
aho-corasick (#1791)
- Optimize fix_byte_order_marker by shifting file contents in
place (#1790)
* Bug fixes
- Align stage defaulting behavior with pre-commit (#1788)
- Make sure child output is drained in the PTY subprocess
(#1768)
- fix(golang): use GOTOOLCHAIN=local when probing system go
(#1797)
* Documentation
- Disambiguate “hook” terminology by renaming "Git hooks" to
"Git shims" (#1776)
- Document compatibility with pre-commit (#1767)
- Update configuration.md with TOML 1.1 notes (#1764)
* Other changes
- Sync latest identify tags (#1798)
* Mon Mar 09 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.5:
* Enhancements
- Add automatic Ruby download support using rv binaries (#1668)
- Adjust open file limit on process startup (#1705)
- Allow parallel gem retry (#1732)
- Enable system-proxy feature on reqwest (#1738)
- Expose --git-dir to force hook installation target (#1723)
- Pass --quiet, --verbose, and --no-progress through prek
install into generated hook scripts (#1753)
- Respect core.sharedRepository for hook permissions (#1755)
- Support legacy mode hook script (#1706)
- rust: support cli: git dependency 4th segment package
disambiguation (#1747)
* Bug fixes
- Fix Python __main__.py entry (#1741)
- python: strip UV_SYSTEM_PYTHON from uv venv and pip install
commands (#1756)
* Other changes
- Sync latest identify tags (#1733)
* Mon Mar 02 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.4:
* Enhancements
- Allow pass_filenames to accept a positive integer (#1698)
- Install and compile gems in parallel (#1674)
- Sync identify file-type mappings with pre-commit identify
(#1660)
- Use --locked for Rust cargo install commands (#1661)
- Add PREK_MAX_CONCURRENCY environment variable for configuring
maximum concurrency (#1697)
- Add PREK_LOG_TRUNCATE_LIMIT environment variable for
configuring log truncation (#1679)
- Add support for python -m prek (#1686)
* Bug fixes
- Skip invalid Rust toolchains instead of failing (#1699)
* Performance
- Bitset-based TagSet refactor: precompute tag masks and speed
up hook type filtering (#1665)
* Documentation
- Document winget install j178.Prek (#1670)
* Mon Feb 16 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.3:
* Enhancements
- Read Python version specifier from hook repo pyproject.toml
(#1596)
- Add #:schema directives to generated prek.toml (#1597)
- Add prek util list-builtins command (#1600)
- Expand install source detection to mise, uv tool, pipx, and
asdf (#1605, #1607)
- Add progress bar to cache clean and show removal summary
(#1616)
- Make yaml-to-toml CONFIG argument optional (#1593)
- prek uninstall removes legacy scripts too (#1622)
* Bug fixes
- Fix underflow when formatting summary output (#1626)
- Match files/exclude filter against relative path of nested
project (#1624)
- Select musllinux wheel tag for uv on musl-based distros
(#1628)
* Documentation
- Clarify prek list description (#1604)
* Fri Feb 06 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.2:
* Highlights
- prek.toml is here!
You can now use prek.toml as an alternative to
.pre-commit-config.yaml for configuring prek. prek.toml
mirrors the structure of .pre-commit-config.yaml, but TOML is
less error-prone. Your existing .pre-commit-config.yaml will
continue to work, but for new users and new projects,
prek.toml may make more sense. If you want to switch, run
prek util yaml-to-toml to convert YAML configs to prek.toml.
See configuration docs for details.
For example, this config:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-yaml
Can be written as prek.toml like this:
[[repos]]
repo = "https://github.com/pre-commit/pre-commit-hooks"
rev = "v6.0.0"
hooks = [ { id = "check-yaml" } ]
- serde-yaml has been replaced with serde-saphyr
We replaced the long-deprecated serde-yaml crate with
serde-saphyr for YAML parsing. It is written in safe Rust and
has better error messages, performance, and security. This
lets us provide precise location information for
configuration parsing errors, which should make it easier to
fix config issues.
For example, this invalid config:
repos:
- repo: https://github.com/crate-ci/typos
hooks:
- id: typos
Before:
$ prek run
error: Failed to parse `.pre-commit-config.yaml`
caused by: Invalid remote repo: missing field `rev`
Now:
$ prek run
error: Failed to parse `.pre-commit-config.yaml`
caused by: error: line 2 column 5: missing field `rev` at line 2, column 5
- -> <input>:2:5
|
1 | repos:
2 | - repo: https://github.com/crate-ci/typos
| ^ missing field `rev` at line 2, column 5
3 | hooks:
4 | - id: typos
|
- prek util subcommands
We added a new prek util top-level command for miscellaneous
utilities that don't fit into other categories. The first two
utilities are:
- prek util identify: shows the identification tags of files
that prek uses for file filtering, which can be useful for
debugging and writing types/types_or/exclude_types filters.
- prek util yaml-to-toml: converts .pre-commit-config.yaml to
prek.toml.
We also moved prek init-template-dir under prek util for better
organization. The old prek init-template-dir command is still
available (hidden) as an alias for backward compatibility.
* Enhancements
- Add prek util identify subcommand (#1554)
- Add prek util yaml-to-toml to convert .pre-commit-config.yaml
to prek.toml (#1584)
- Detect install source for actionable upgrade hints (#1540)
- Detect prek installed by the standalone installer (#1545)
- Implement serialize_yaml_scalar using serde-saphyr (#1534)
- Improve max cli arguments length calculation (#1518)
- Move identify and init-template-dir under the prek util
top-level command (#1574)
- Replace serde-yaml with serde-saphyr (again) (#1520)
- Show precise location for config parsing error (#1530)
- Support Julia language (#1519)
- Support prek.toml (#1271)
- Added PREK_QUIET environment variable support (#1513)
- Remove upper bound constraint of uv version (#1588)
* Bug fixes
- Do not make the child a session leader (#1586)
- Fix FilePattern schema to accept plain strings (#1564)
- Use semver fallback sort when tag timestamps are equal
(#1579)
* Documentation
- Add OpenClaw to the list of users (#1517)
- Add cachix/devenv, apache/lucene, copper-project/copper-rs as
projects using prek (#1531, #1514, #1569)
- Add document about authoring remote hooks (#1571)
- Add llms.txt generation for LLM-friendly documentation
(#1553)
- Document using --refresh to pick up .prekignore changes
(#1575)
- Fix PowerShell completion instruction syntax (#1568)
- Update quick start to use prek.toml (#1576)
* Other changes
- Include prek.toml in run hint for config filename (#1578)
* Sun Feb 01 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.1:
* Enhancements
- Add language: swift support (#1463)
- Add language: haskell support (#1484)
- Extract go version constraint from go.mod (#1457)
- Warn when config file exists but fails to parse (#1487)
- Add GitHub artifact attestations to release and build-docker
workflow (#1494, #1497)
- Allow GIT_CONFIG_PARAMETERS for private repository
authentication (#1472)
- Show progress bar when running builtin hooks (#1504)
* Bug fixes
- Cap ARG_MAX at 1<<19 for safety (#1506)
- Don't check Python executable path in health check (#1496)
* Documentation
- Include CocoIndex as a project using prek (#1477)
- Add commands for artifact verification using GitHub
Attestations (#1500)
* Thu Jan 22 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.3.0:
* Highlights
- prek cache gc (also available via prek gc for pre-commit
compatibility) is finally here! You can now run prek cache gc
to clean up unused repos, hook envs and tool versions from
prek cache.
- language: bun is now supported, making it possible to write
and run hooks with Bun.
* Enhancements
- Implement prek cache gc (#1410)
- Bootstrap tracking configs from workspace cache (#1417)
- Show total size prek cache gc removed (#1418)
- Show accurate repo and hook details in prek cache gc -v
(#1420)
- prek cache gc remove specific unused tool versions (#1422)
- Fix unused tool versions not removed in prek cache gc
(#1436)
- Add language: bun support (#1411)
- Use git ls-remote --tags to list bun versions (#1439)
- Accept --stage as an alias for --hook-stage in prek run
(#1398)
- Expand ~ tilde in PREK_HOME (#1431)
- Support refs to trees (#1449)
* Bug fixes
- Avoid file lock warning for in-process contention (#1406)
- Resolve relative repo paths from config file directory
(#1443)
- fix: use split() instead of resolve(None) for builtin hook
argument parsing (#1415)
* Documentation
- Add simple-icons and ast-grep to the users of prek (#1403)
- Improve JSON schema for repo field (#1432)
- Improve JSON schema for builtin and meta hooks (#1427)
- Add pronunciation entry to FAQ (#1442)
- Add commitizen to the list of projects using prek (#1413)
- Move docs to zensical (#1421)
* Other Changes
- Refactor config layout (#1407)
* Mon Jan 19 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.30:
* Enhancements
- Build binaries using minimal-size profile (#1376)
- Check for duplicate keys in check-json5 builtin hook (#1387)
- Preserve quoting style in auto-update (#1379)
- Show warning if file lock acquiring blocks for long time
(#1353)
- Singleflight Python health checks with cached interpreter
info (#1381)
* Bug fixes
- Do not resolve entry for docker_image (#1386)
- Fix command lookup on Windows (#1383)
* Documentation
- Document language support details (#1380)
- Document that check-json5 now rejects duplicate keys (#1391)
* Fri Jan 16 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.29:
* Highlights
files / exclude now support globs (including glob lists),
making config filters much easier to read and maintain than
heavily-escaped regex.
Before (regex):
files: "^(src/.*\\.rs$|crates/[^/]+/src/.*\\.rs$)"
After (glob list):
files:
glob:
- src/**/*.rs
- crates/**/src/**/*.rs
* Enhancements
- Add check-json5 as builtin hooks (#1367)
- Add glob list support for file patterns (files and exclude)
(#1197)
* Bug fixes
- Fix missing commit hash from version info (#1352)
- Remove git env vars from uv pip install subprocess (#1355)
- Set TERM=dumb under PTY to prevent capability-probe hangs
(#1363)
* Documentation
- Add home-assistant/core to the users of prek (#1350)
- Document builtin hooks (#1370)
- Explain project configuration scope (#1373)
* Wed Jan 14 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.28:
* Enhancements
- Avoid running git diff for skipped hooks (#1335)
- More accurate command line length limit calculation (#1348)
- Raise platform command line length upper limit (#1347)
- Use /bin/sh in generated git hook scripts (#1333)
* Bug fixes
- Avoid rewriting if config is up-to-date (#1346)
* Documentation
- Add ty to the users of prek (#1342)
- Add ruff to the users of prek (#1334)
- Complete configuration document (#1338)
- Document UV environment variable inheritance in prek (#1339)
* Tue Jan 13 2026 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.27 (.26 was not released):
* Highlights
* python/cpython is now using prek. That’s the highlight of this
release!
* Enhancements
- Add hook-level env option to set environment variables for
hooks (#1279) (#1285)
- Support apple's container for docker language (#1306)
- Skip cookiecutter template directories like
{{cookiecutter.project_slug}} during project discovery
(#1316)
- Use global CONCURRENCY for repo clone (#1292)
- untar: disallow external symlinks (#1314)
* Bug fixes
- Exit with success if no hooks match the hook stage (#1317)
- Fix Go template string to detect rootless podman (#1302)
- Panic on overly long filenames instead of silently dropping
files (#1287)
* Other changes
- Add python/cpython to users (#1308)
- Add MoonshotAI/kimi-cli to users (#1286)
- Drop powerpc64 wheels (#1319)
- Update to version 0.2.25:
* Performance
- Use git cat-file -e in check if a rev exists (#1277)
* Bug fixes
- Fix priority not applied for remote hooks (#1281)
- Report config file parsing error in auto-update (#1274)
- Unset GIT_DIR for auto-update (#1269)
- Update to version 0.2.24:
* Enhancements
- Build and publish docker image to ghcr.io/j178/prek (#1253)
- Support git urls for rust dependencies (#1256)
* Bug fixes
- Ensure running uv pip install inside the remote repo path
(#1262)
- Fix check-added-large-files for traced files (#1260)
- Respect GIT_DIR set by git (#1258)
* Documentation
- Add docker integration docs (#1254)
- Clarify priority scope across repos (#1251)
- Improve documentation for configurations (#1247)
- Render changelog in document site (#1248)
* Sat Dec 20 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.23:
* Highlights
- This release introduces priority-based parallel hook
execution: prek can run multiple hooks in parallel when they
share the same priority, which can be a huge speed-up for
many configs. See configuration docs for priority.
* Enhancements
- Allow uv reading user-level or system-level configuration
files (#1227)
- Implement check-case-conflict as builtin hook (#888)
- Implement priority based parallel execution (#1232)
* Bug fixes
- Fix check-executable-have-shebangs "command line too long"
error on Windows (#1236)
* Documentation
- Add FastAPI to the list of projects using prek (#1241)
- Document hook_types flag and default_install_hook_types
behavior (#1225)
- Improve documentation for priority (#1245)
- Mention prek can be installed viataiki-e/install-action@prek
(#1234)
* Sat Dec 13 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.22:
* Highlights
In this release, prek adds support for the --cooldown-days
option in the prek auto-update command.
This option allows users to skip releases that are newer than a
specified number of days.
It is useful to mitigate open source supply chain risks by
avoiding very recent releases that may not have been widely
adopted or vetted yet.
* Enhancements
- Support--cooldown-days in prek auto-update (#1172)
- Prefer tag creation timestamp in --cooldown-days (#1221)
- Use cargo install for packages in workspace (#1207)
* Bug fixes
- Set CARGO_HOME for cargo metadata (#1209)
* Fri Dec 12 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.21:
* Bug fixes
- Fallback to use remote repo package root instead of erroring
(#1203)
- Prepend toolchain bin directory to PATH when calling cargo
(#1204)
- Use cargo from installed toolchain (#1202)
* Fri Dec 12 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.20:
* Highlights in this release:
- Rust hooks are now fully supported with automatic toolchain
management, including package discovery in virtual
workspaces. Big thanks to @lmmx for driving this.
- Added a prek cache size subcommand so you can quickly see how
much cache space prek is using. Thanks @MatthewMckee4!
- Nested workspaces are easier to reason about: set orphan:
true on a project to isolate it from parents so its files are
processed only once.
* Enhancements
- Support Rust language (#989) Refactor Rust toolchain
management (#1198) Add support for finding packages in
virtual workspaces (#1180)
- Add prek cache size command (#1183)
- Support orphan projects (#1129)
- Fallback to manual stage for hooks specified directly in
command line (#1185)
- Make go module cache read-writeable (thus deletable) (#1164)
- Provide more information when validating configs and
manifests (#1182)
- Improve error message for invalid number of arguments to
hook-impl (#1196)
* Bug fixes
- Disable git terminal prompts (#1193)
- Prevent post-checkout deadlock when cloning repos (#1192)
- Prevent color output when redirecting stdout to a file
(#1159)
* Documentation
- Add MacPorts to installation methods (#1157)
- Add a FAQ page explaining prek install --install--hooks
(#1162)
* Other changes
- Add prek: enabled repo badge (#1171)
- Add favicon for docs website (#1187)
* Thu Nov 27 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.19:
* Performance
- Simplify fix_byte_order_marker hook (#1136)
- Simplify trailing-whitespace hook to improve performance
(#1135)
* Bug fixes
- Close stdin for hook subcommands (#1155)
- Fix parsing Python interpreter info containing non-UTF8 chars
(#1141)
* Fri Nov 21 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.18:
* Highlights
In this release, prek adds a new special repo type repo:
builtin that lets you use built‑in hooks.
It basically gives you another way to use the existing built‑in
fast path for pre‑commit‑hooks, but without needing to point to
an external repo.
Since prek doesn’t have to clone anything or set up a virtual
environment, repo: builtin hooks work even in air‑gapped
environments.
For more details, see: https://prek.j178.dev/builtin/
* Enhancements
- Add support repo: builtin (#1118)
- Enable virtual terminal processing on Windows (#1123)
* Bug fixes
- Do not recurse into submodules during workspace discovery
(#1121)
- Do not dim the hook output (#1126)
- Further reduce max cli length for cmd.exe on Windows (#1131)
- Revert "Disallow hook-level minimum_prek_version (#1101)"
(#1120)
* Other changes
- docs: refer airflow as Apache Airflow (#1116)
* Wed Nov 19 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.17:
* Bug fixes
- Revert back to use serde_yaml again (#1112)
* Tue Nov 18 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.16:
* Bug fixes
- Disallow hook-level minimum_prek_version (#1101)
- Do not require a project in prek init-template-dir (#1109)
- Make sure uv pip install uses the Python from virtualenv
(#1108)
- Restore using serde_yaml in check-yaml hook (#1106)
* Mon Nov 17 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.15:
* Enhancements
- Clean up hook environments when install fails (#1085)
- Prepare for publishing prek to crates.io (#1088)
- Replace serde-yaml with serde_saphyr (#1087)
- Warn unexpected keys in repo and hook level (#1096)
* Bug fixes
- Fix prek init-template-dir fails in non-git repo (#1093)
* Mon Nov 17 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.14:
* Enhancements
- Support PREK_CONTAINER_RUNTIME=podman to override container
runtime (#1033)
- Support rootless container runtime (#1018)
- Support language: unsupported and language:
unsupported_script introduced in pre-commit v4.4 (#1073)
- Tweak to regex used for mountinfo (#1037)
* Bug fixes
- Fix --files argument - files referencing other projects
aren’t being filtered (#1064)
- Unset objectFormat in git init (#1048)
* Documentation
- Add scoop to installation (#1067)
- Document workspace file visibility constraints (#1071)
- Add iceberg-python, msgspec and humanize to "who is using
prek" (#1039, #1042, #1063)
* Other changes
- Add a hint to install when running inside a sub-project
(#1045)
- Add a hint to use --refresh when no configuration found
(#1046)
- Run uv pip install from the current directory (#1069)
* Sat Nov 08 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.13:
* Enhancements
- Add Ruby support (no download support yet) (#993)
- Implement check-executables-have-shebangs as builtin-hook
(#924)
- Improve container id detection (#1031)
* Performance
- Optimize hot paths: reduce allocations (#997)
- Refactor identify using smallvec (#982)
* Bug fixes
- Fix YAML with nested merge keys (#1020)
- Treat every file as executable on Windows to keep
compatibility with pre-commit (#980)
* Documentation
- Document that .gitignore is respected by default during
workspace discovery (#983)
- Update project stability status (#1005)
- Add FastMCP to "who is using prek" (#1034)
- Add attrs to "who is using prek" (#981)
* Sat Nov 08 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.12:
* Enhancements
- Add a warning for unimplemented hooks (#976)
- Allow using system trusted store by PREK_NATIVE_TLS (#959)
* Bug fixes
- Do not check for script subprocess status (#964)
- Fix compatibility with older luarocks (#967)
- Fix local relative path in try-repo (#975)
* Documentation
- Update language support status (#970)
* Sat Nov 08 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- Update to version 0.2.11:
* Enhancements
- Support language: lua hooks (#954)
- Support language_version: system (#949)
- Implement no-commit-to-branch as builtin hook (#930)
- Improve styling for stashing error message (#953)
- Support nix-shell style shebang (#929)
* Documentation
- Add a page about "Quick start" (#934)
- Add kreuzberg to "who is using prek" (#936)
- Clarify minimum mise version required to use mise use prek
(#931)
* Mon Oct 20 2025 Johannes Kastl <opensuse_buildservice@ojkastl.de>
- new package prek: prek is a reimagined version of pre-commit,
built in Rust. It is designed to be a faster, dependency-free and
drop-in alternative for it, while also providing some additional
long-requested features
/usr/bin/prek /usr/share/doc/packages/prek /usr/share/doc/packages/prek/README.md /usr/share/licenses/prek /usr/share/licenses/prek/LICENSE
Generated by rpm2html 1.8.1
Fabrice Bellet, Sun Aug 2 01:54:38 2026