Skip to content

Add PHP language support - #2314

Merged
j178 merged 1 commit into
masterfrom
php-language
Jul 12, 2026
Merged

Add PHP language support#2314
j178 merged 1 commit into
masterfrom
php-language

Conversation

@j178

@j178 j178 commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Closes #1724

@j178 j178 added the enhancement New feature or request label Jul 10, 2026 — with ChatGPT Codex Connector
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.85981% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.31%. Comparing base (6a61867) to head (d891d68).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
crates/prek/src/languages/php.rs 94.81% 11 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2314      +/-   ##
==========================================
+ Coverage   93.30%   93.31%   +0.01%     
==========================================
  Files         127      128       +1     
  Lines       28132    28346     +214     
==========================================
+ Hits        26249    26452     +203     
- Misses       1883     1894      +11     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@prek-ci-bot

prek-ci-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown

📦 Cargo Bloat Comparison

Binary size change: +0.36% (27.7 MiB → 27.8 MiB)

Expand for cargo-bloat output

Head Branch Results

 File  .text     Size             Crate Name
 1.2%   2.5% 332.0KiB        aws_lc_sys aws_lc_0_41_0_aes_gcm_encrypt_avx512
 1.2%   2.5% 332.0KiB        aws_lc_sys aws_lc_0_41_0_aes_gcm_decrypt_avx512
 0.3%   0.7%  98.8KiB              prek <prek::config::Language>::run::{closure#0}::{closure#0}
 0.3%   0.7%  98.8KiB              prek <prek::config::Language>::run::{closure#0}::{closure#0}
 0.3%   0.7%  94.7KiB              prek <prek::config::Language>::install::{closure#0}
 0.2%   0.5%  65.2KiB              prek <prek::cli::Command as clap_builder::derive::Subcommand>::augment_subcommands
 0.2%   0.4%  49.4KiB annotate_snippets annotate_snippets::renderer::render::render
 0.2%   0.4%  48.5KiB              prek <<prek::config::Config as serde_core::de::Deserialize>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::<<serde_saphyr::de::deserializer::YamlDeserializer as serde_core::de::Deserializer>::deserialize_map::MA>
 0.2%   0.4%  48.0KiB              prek prek::run::{closure#0}
 0.2%   0.3%  42.7KiB              prek prek::cli::run::run::run::{closure#0}
 0.1%   0.3%  35.3KiB               std core::ptr::drop_glue::<<prek::config::Language>::install::{closure#0}>
 0.1%   0.2%  32.7KiB              prek prek::archive::unpack::<fs_err::tokio::file::File, &std::path::PathBuf>::{closure#0}
 0.1%   0.2%  31.3KiB              prek <prek::cli::RunOptions as clap_builder::derive::Args>::augment_args
 0.1%   0.2%  29.3KiB     granit_parser <granit_parser::scanner::Scanner<granit_parser::input::str::StrInput>>::fetch_more_tokens
 0.1%   0.2%  28.0KiB        aws_lc_sys aws_lc_0_41_0_edwards25519_scalarmuldouble_alt
 0.1%   0.2%  27.8KiB              prek <<prek::config::RemoteHook as serde_core::de::Deserialize>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::<<serde_saphyr::de::deserializer::YamlDeserializer as serde_core::de::Deserializer>::deserialize_map::MA>
 0.1%   0.2%  27.5KiB        aws_lc_sys aws_lc_0_41_0_edwards25519_scalarmuldouble
 0.1%   0.2%  25.3KiB              prek prek::cli::try_repo::try_repo::{closure#0}
 0.1%   0.2%  24.9KiB               xml <xml::reader::parser::PullParser>::dispatch_token
 0.1%   0.2%  24.6KiB              prek <<prek::config::LocalHook as serde_core::de::Deserialize>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::<<serde_saphyr::de::deserializer::YamlDeserializer as serde_core::de::Deserializer>::deserialize_map::MA>
40.4%  86.0%  11.2MiB                   And 24557 smaller methods. Use -n N to show more.
47.0% 100.0%  13.0MiB                   .text section size, the file size is 27.8MiB

Base Branch Results

 File  .text     Size             Crate Name
 1.2%   2.5% 332.0KiB        aws_lc_sys aws_lc_0_41_0_aes_gcm_encrypt_avx512
 1.2%   2.5% 332.0KiB        aws_lc_sys aws_lc_0_41_0_aes_gcm_decrypt_avx512
 0.3%   0.7%  95.6KiB              prek <prek::config::Language>::run::{closure#0}::{closure#0}
 0.3%   0.7%  95.2KiB              prek <prek::config::Language>::run::{closure#0}::{closure#0}
 0.3%   0.6%  86.0KiB              prek <prek::config::Language>::install::{closure#0}
 0.2%   0.5%  66.9KiB              prek <prek::cli::Command as clap_builder::derive::Subcommand>::augment_subcommands
 0.2%   0.4%  49.4KiB annotate_snippets annotate_snippets::renderer::render::render
 0.2%   0.4%  48.5KiB              prek <<prek::config::Config as serde_core::de::Deserialize>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::<<serde_saphyr::de::deserializer::YamlDeserializer as serde_core::de::Deserializer>::deserialize_map::MA>
 0.2%   0.4%  48.0KiB              prek prek::run::{closure#0}
 0.1%   0.3%  42.2KiB              prek prek::cli::run::run::run::{closure#0}
 0.1%   0.3%  34.3KiB               std core::ptr::drop_glue::<<prek::config::Language>::install::{closure#0}>
 0.1%   0.2%  32.4KiB              prek prek::archive::unpack::<fs_err::tokio::file::File, &std::path::PathBuf>::{closure#0}
 0.1%   0.2%  32.3KiB              prek <prek::cli::RunOptions as clap_builder::derive::Args>::augment_args
 0.1%   0.2%  29.3KiB     granit_parser <granit_parser::scanner::Scanner<granit_parser::input::str::StrInput>>::fetch_more_tokens
 0.1%   0.2%  28.0KiB        aws_lc_sys aws_lc_0_41_0_edwards25519_scalarmuldouble_alt
 0.1%   0.2%  27.8KiB              prek <<prek::config::RemoteHook as serde_core::de::Deserialize>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::<<serde_saphyr::de::deserializer::YamlDeserializer as serde_core::de::Deserializer>::deserialize_map::MA>
 0.1%   0.2%  27.5KiB        aws_lc_sys aws_lc_0_41_0_edwards25519_scalarmuldouble
 0.1%   0.2%  25.3KiB              prek prek::cli::try_repo::try_repo::{closure#0}
 0.1%   0.2%  24.9KiB               xml <xml::reader::parser::PullParser>::dispatch_token
 0.1%   0.2%  24.6KiB              prek <<prek::config::LocalHook as serde_core::de::Deserialize>::deserialize::__Visitor as serde_core::de::Visitor>::visit_map::<<serde_saphyr::de::deserializer::YamlDeserializer as serde_core::de::Deserializer>::deserialize_map::MA>
40.4%  86.1%  11.2MiB                   And 24480 smaller methods. Use -n N to show more.
46.9% 100.0%  13.0MiB                   .text section size, the file size is 27.7MiB

@prek-ci-bot

prek-ci-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown

⚡️ Hyperfine Benchmarks

Summary: 1 regressions, 1 improvements above the 10% threshold.

Environment
  • OS: Linux 6.17.0-1018-azure
  • CPU: 4 cores
  • prek version: prek 0.4.9+6 (e7f44be 2026-07-12)
  • Rust version: rustc 1.97.0 (2d8144b78 2026-07-07)
  • Hyperfine version: hyperfine 1.20.0
CLI Commands

Benchmarking basic commands in the main repo:

prek --version

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base --version 2.6 ± 0.1 2.4 2.8 1.06 ± 0.11
prek-head --version 2.4 ± 0.2 2.3 4.1 1.00

prek list

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base list 10.8 ± 0.6 10.3 15.4 1.06 ± 0.06
prek-head list 10.2 ± 0.2 9.9 11.2 1.00

prek validate-config .pre-commit-config.yaml

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base validate-config .pre-commit-config.yaml 3.9 ± 0.2 3.6 4.7 1.11 ± 0.05
prek-head validate-config .pre-commit-config.yaml 3.5 ± 0.1 3.3 3.7 1.00

prek sample-config

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base sample-config 2.9 ± 0.0 2.8 3.0 1.05 ± 0.05
prek-head sample-config 2.7 ± 0.1 2.6 3.5 1.00
Cold vs Warm Runs

Comparing first run (cold) vs subsequent runs (warm cache):

prek run --all-files (cold - no cache)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run --all-files 77.6 ± 1.5 75.8 79.7 1.00
prek-head run --all-files 79.7 ± 2.8 76.3 84.7 1.03 ± 0.04

prek run --all-files (warm - with cache)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run --all-files 79.9 ± 3.3 75.6 87.4 1.00
prek-head run --all-files 80.0 ± 3.1 76.1 88.7 1.00 ± 0.06
Full Hook Suite

Running the builtin hook suite on the benchmark workspace:

prek run --all-files (full builtin hook suite)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run --all-files 79.5 ± 2.3 74.8 84.9 1.00
prek-head run --all-files 80.2 ± 2.8 74.9 86.4 1.01 ± 0.05
Individual Hook Performance

Benchmarking each hook individually on the test repo:

prek run trailing-whitespace --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run trailing-whitespace --all-files 23.6 ± 4.1 21.3 43.2 1.08 ± 0.19
prek-head run trailing-whitespace --all-files 21.8 ± 0.5 21.1 23.0 1.00

prek run end-of-file-fixer --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run end-of-file-fixer --all-files 29.7 ± 2.9 25.3 35.3 1.03 ± 0.13
prek-head run end-of-file-fixer --all-files 28.8 ± 2.5 25.2 33.9 1.00

prek run check-json --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run check-json --all-files 9.5 ± 0.3 9.0 10.2 1.05 ± 0.05
prek-head run check-json --all-files 9.1 ± 0.3 8.6 9.7 1.00

prek run check-yaml --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run check-yaml --all-files 9.0 ± 0.2 8.5 9.4 1.01 ± 0.04
prek-head run check-yaml --all-files 8.9 ± 0.3 8.4 9.8 1.00

prek run check-toml --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run check-toml --all-files 9.1 ± 0.3 8.7 9.7 1.02 ± 0.05
prek-head run check-toml --all-files 9.0 ± 0.4 8.5 10.2 1.00

prek run check-xml --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run check-xml --all-files 9.0 ± 0.3 8.6 9.9 1.03 ± 0.05
prek-head run check-xml --all-files 8.7 ± 0.3 8.1 9.4 1.00

prek run detect-private-key --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run detect-private-key --all-files 15.1 ± 1.1 13.5 17.5 1.04 ± 0.11
prek-head run detect-private-key --all-files 14.6 ± 1.1 12.7 17.1 1.00

prek run fix-byte-order-marker --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run fix-byte-order-marker --all-files 20.0 ± 1.0 18.5 22.3 1.02 ± 0.06
prek-head run fix-byte-order-marker --all-files 19.6 ± 0.8 18.5 21.9 1.00
Installation Performance

Benchmarking hook installation (fast path hooks skip Python setup):

prek install-hooks (cold - no cache)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base install-hooks 5.8 ± 0.1 5.6 5.9 1.02 ± 0.03
prek-head install-hooks 5.6 ± 0.0 5.6 5.7 1.00

prek install-hooks (warm - with cache)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base install-hooks 5.8 ± 0.1 5.7 6.0 1.05 ± 0.04
prek-head install-hooks 5.5 ± 0.2 5.3 5.7 1.00
File Filtering/Scoping Performance

Testing different file selection modes:

prek run (staged files only)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run 44.0 ± 1.6 41.5 47.9 1.05 ± 0.05
prek-head run 42.1 ± 1.1 40.6 44.2 1.00

prek run --files '*.json' (specific file type)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run --files '*.json' 11.4 ± 5.8 9.2 35.4 1.00
prek-head run --files '*.json' 20.0 ± 23.6 8.9 94.1 1.75 ± 2.25

⚠️ Warning: Performance regression for prek run --files '*.json' (specific file type): 75.2300% slower

Workspace Discovery & Initialization

Benchmarking hook discovery and initialization overhead:

prek run --dry-run --all-files (measures init overhead)

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run --dry-run --all-files 8.6 ± 0.2 8.3 8.9 1.04 ± 0.03
prek-head run --dry-run --all-files 8.3 ± 0.2 8.0 8.6 1.00
Meta Hooks Performance

Benchmarking meta hooks separately:

prek run check-hooks-apply --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run check-hooks-apply --all-files 13.7 ± 0.8 12.2 14.4 1.12 ± 0.07
prek-head run check-hooks-apply --all-files 12.3 ± 0.2 11.9 12.7 1.00

✅ Performance improvement for prek run check-hooks-apply --all-files: 10.5200% faster

prek run check-useless-excludes --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run check-useless-excludes --all-files 12.5 ± 0.3 12.2 13.0 1.00
prek-head run check-useless-excludes --all-files 12.7 ± 0.3 12.2 13.1 1.02 ± 0.03

prek run identity --all-files

Command Mean [ms] Min [ms] Max [ms] Relative
prek-base run identity --all-files 12.1 ± 0.1 11.8 12.3 1.02 ± 0.03
prek-head run identity --all-files 11.8 ± 0.3 11.4 12.1 1.00

@j178
j178 marked this pull request as ready for review July 12, 2026 08:02
Copilot AI review requested due to automatic review settings July 12, 2026 08:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds first-class PHP language support to prek, enabling PHP hooks to run with a system-installed php and optionally install remote hook repos / additional dependencies via Composer. It also updates CI, schema, and documentation to recognize and validate the new php language backend.

Changes:

  • Add a new php language backend that runs hooks with system php and installs dependencies (including remote hook repos) using Composer in an isolated env.
  • Extend configuration/schema/docs/CLI language lists to include php.
  • Add PHP-focused integration tests and update CI to install PHP+Composer when PHP tests are selected.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/generate-ci-matrix.py Adds php to the CI language test selection matrix.
prek.schema.json Extends schema to support php in relevant config sections.
docs/reference/configuration.md Documents php as a common language value.
docs/reference/cli.md Lists php among supported languages in CLI docs.
docs/languages.md Adds detailed PHP backend behavior documentation.
crates/prek/tests/languages/php.rs Adds integration tests for local hooks, remote installs, additional deps, and language_version rejection.
crates/prek/tests/languages/main.rs Wires the new PHP test module into the languages test suite.
crates/prek/src/languages/version.rs Ensures PHP participates in language version request parsing behavior.
crates/prek/src/languages/php.rs Implements the PHP backend (system php + Composer-based dependency handling).
crates/prek/src/languages/mod.rs Registers the PHP backend and includes it in capability/match logic.
crates/prek/src/config.rs Adds Php to the Language enum (serde/clap/strum).
.github/workflows/ci.yml Installs PHP and Composer conditionally for PHP test runs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread crates/prek/src/languages/php.rs
Comment thread crates/prek/src/languages/php.rs Outdated
Copilot AI review requested due to automatic review settings July 12, 2026 08:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Comment thread crates/prek/src/languages/php.rs
Copilot AI review requested due to automatic review settings July 12, 2026 08:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Comment thread crates/prek/src/languages/php.rs
Copilot AI review requested due to automatic review settings July 12, 2026 08:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d891d68075

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/prek/src/languages/php.rs
@j178
j178 merged commit bb8e1d9 into master Jul 12, 2026
38 checks passed
@j178
j178 deleted the php-language branch July 12, 2026 08:57
jylenhof pushed a commit to jylenhof/gh-action-pulse that referenced this pull request Jul 17, 2026
Automated mise tool upgrades from local config.

Updated tools:
- `prek`

Command: `mise upgrade --bump --local prek`

<details>
<summary>Version changelog (prek)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `prek` | `0.4.9` → `0.4.10` | `0.4.9` → `0.4.10` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>prek: `0.4.9` → `0.4.10` (j178/prek)</summary>

### v0.4.10

## Release Notes

Released on 2026-07-16.

### Enhancements

- Add PHP language support ([#2314](j178/prek#2314))
- Add freeze option to update settings ([#2323](j178/prek#2323))
- Add tag filters to update configuration ([#2354](j178/prek#2354))
- Identify 'mts' and 'cts' as TypeScript files ([#2209](j178/prek#2209))
- Publish Alpine Docker images ([#2352](j178/prek#2352))
- Support builtin and meta in try-repo ([#2350](j178/prek#2350))

### Bug fixes

- Fix Python discovery order ([#2348](j178/prek#2348))
- Fix Windows progress rendering ([#2328](j178/prek#2328))
- Preserve configured repo values for updates ([#2324](j178/prek#2324))
- Scope synthetic `GIT_WORK_TREE` to git commands ([#2356](j178/prek#2356))

### Documentation

- Expand common workflows guide ([#2351](j178/prek#2351))

### Contributors

- @​j178

## Install prek 0.4.10

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.10

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz.sha256) |
| [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-en-place-tips that referenced this pull request Jul 20, 2026
Automated mise tool upgrades from local config.

Updated tools:
- `prek`

Command: `mise upgrade --bump --local prek`

<details>
<summary>Version changelog (prek)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `prek` | `0.4.5` → `0.4.10` | `0.4.5` → `0.4.10` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>prek: `0.4.5` → `0.4.10` (j178/prek)</summary>

### v0.4.6

## Release Notes

Released on 2026-07-01.

### Enhancements

- Verify managed toolchain downloads before installation ([#2229](j178/prek#2229))
- Add `PREK_DOCKER_NO_INIT` to opt-out Docker `--init` ([#2242](j178/prek#2242))
- Improve subprocess error messages ([#2257](j178/prek#2257))
- Split run concurrency knobs: `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` ([#2276](j178/prek#2276))

### Performance

- Avoid allocating markdown extensions per file ([#2245](j178/prek#2245))
- Avoid unchanged config tracking writes ([#2247](j178/prek#2247))
- Delay trailing whitespace output buffer ([#2244](j178/prek#2244))
- Prefilter VCS permalink lines ([#2253](j178/prek#2253))
- Skip unnecessary submodule updates during hook repo clone ([#2255](j178/prek#2255))

### Documentation

- Document `language_version` inferring for Python and Go ([#2241](j178/prek#2241))

### Other changes

- Refactor env var handling ([#2277](j178/prek#2277))
- Use `serde-saphyr` for YAML string quoting ([#2228](j178/prek#2228))

### Contributors

- @​shaanmajid
- @​j178

## Install prek 0.4.6

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.6

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.6… (truncated)

### v0.4.8

## Release Notes

Released on 2026-07-04.

### Enhancements

- Add default_env configuration ([#2288](j178/prek#2288))
- Rename `auto-update` to `update` ([#2286](j178/prek#2286))

### Bug fixes

- Fix progress collapse ordering ([#2291](j178/prek#2291))
- Fix progress insertion after collapsed rows ([#2292](j178/prek#2292))

### Contributors

- @​j178

## Install prek 0.4.8

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.8

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz.sha256) |
| [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz.sha256) |
| [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip.sha256) |
| [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip.sha2… (truncated)

### v0.4.9

## Release Notes

Released on 2026-07-11.

Note: This release changes the repository identity schema stored in cached hook environments. Existing
hook environments will be invalidated, and prek will reinstall them automatically when needed.

### Enhancements

- Preserve additional dependency order ([#2311](j178/prek#2311))
- Remove parallel Ruby gem installation ([#2307](j178/prek#2307))
- Warn for missing update repositories ([#2316](j178/prek#2316))

### Bug fixes

- Fix mixed workspace selectors ([#2306](j178/prek#2306))
- Fix try-repo local path resolution ([#2310](j178/prek#2310))
- Use resolved gem executable ([#2308](j178/prek#2308))
- Validate complete XML documents in check-xml ([#2312](j178/prek#2312))

### Contributors

- @​j178

## Install prek 0.4.9

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.9

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz.sha256) |
| [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz.sha256) |
| [prek-aarch64-pc… (truncated)

### v0.4.10

## Release Notes

Released on 2026-07-16.

### Enhancements

- Add PHP language support ([#2314](j178/prek#2314))
- Add freeze option to update settings ([#2323](j178/prek#2323))
- Add tag filters to update configuration ([#2354](j178/prek#2354))
- Identify 'mts' and 'cts' as TypeScript files ([#2209](j178/prek#2209))
- Publish Alpine Docker images ([#2352](j178/prek#2352))
- Support builtin and meta in try-repo ([#2350](j178/prek#2350))

### Bug fixes

- Fix Python discovery order ([#2348](j178/prek#2348))
- Fix Windows progress rendering ([#2328](j178/prek#2328))
- Preserve configured repo values for updates ([#2324](j178/prek#2324))
- Scope synthetic `GIT_WORK_TREE` to git commands ([#2356](j178/prek#2356))

### Documentation

- Expand common workflows guide ([#2351](j178/prek#2351))

### Contributors

- @​j178

## Install prek 0.4.10

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.10

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz.sha256) |
| [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-en-place-resources that referenced this pull request Jul 20, 2026
Automated mise tool upgrades from local config.

Updated tools:
- `action-validator`
- `actionlint`
- `editorconfig-checker`
- `ghalint`
- `lychee`
- `pinact`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator actionlint editorconfig-checker ghalint lychee pinact pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `pipx:gh-action-pulse` | `latest` → `latest` | `0.5.1` → `1.0.0` |
| `prek` | `0.4.9` → `0.4.10` | `0.4.9` → `0.4.10` |
| `rumdl` | `0.2.34` → `0.2.36` | `0.2.34` → `0.2.36` |
| `tombi` | `1.2.0` → `1.2.3` | `1.2.0` → `1.2.3` |
| `uv` | `latest` → `latest` | `0.11.28` → `0.11.29` |

</details>

<details>
<summary>Release notes (4 tools)</summary>

<details>
<summary>prek: `0.4.9` → `0.4.10` (j178/prek)</summary>

### v0.4.10

## Release Notes

Released on 2026-07-16.

### Enhancements

- Add PHP language support ([#2314](j178/prek#2314))
- Add freeze option to update settings ([#2323](j178/prek#2323))
- Add tag filters to update configuration ([#2354](j178/prek#2354))
- Identify 'mts' and 'cts' as TypeScript files ([#2209](j178/prek#2209))
- Publish Alpine Docker images ([#2352](j178/prek#2352))
- Support builtin and meta in try-repo ([#2350](j178/prek#2350))

### Bug fixes

- Fix Python discovery order ([#2348](j178/prek#2348))
- Fix Windows progress rendering ([#2328](j178/prek#2328))
- Preserve configured repo values for updates ([#2324](j178/prek#2324))
- Scope synthetic `GIT_WORK_TREE` to git commands ([#2356](j178/prek#2356))

### Documentation

- Expand common workflows guide ([#2351](j178/prek#2351))

### Contributors

- @​j178

## Install prek 0.4.10

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.10

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz.sha256) |
| [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.… (truncated)

</details>
<details>
<summary>rumdl: `0.2.34` → `0.2.36` (rvben/rumdl)</summary>

### v0.2.35

### Added

- **cli**: honor --deny-config-warnings on the stdin path ([0f93ca5](rvben/rumdl@0f93ca5))
- **cli**: make --deny-config-warnings cover inline disable-comment rule names ([96d75f5](rvben/rumdl@96d75f5))
- **cli**: add --deny-config-warnings for config-file and CLI-flag problems ([5045daf](rvben/rumdl@5045daf))
- **reflow**: support breaking within emphasis spans ([2e8bded](rvben/rumdl@2e8bded))

### Fixed

- **reflow**: preserve non-breaking spaces and the space before French double punctuation ([f66021f](rvben/rumdl@f66021f))
- **cli**: walk directory arguments even when file paths are also passed ([d058273](rvben/rumdl@d058273))
- **lsp**: honor line anchors in goto-definition ([17a21e7](rvben/rumdl@17a21e7))
- **md077**: attribute middle-level continuation lines to their own list item ([c73763b](rvben/rumdl@c73763b))

## Downloads

| File | Platform | Checksum |
|------|----------|----------|
| [rumdl-v0.2.35-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.35/rumdl-v0.2.35-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.35/rumdl-v0.2.35-x86_64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.35-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.35/rumdl-v0.2.35-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.35/rumdl-v0.2.35-x86_64-unknown-linux-musl.tar.gz.sha2… (truncated)

### v0.2.36

### Added

- **code-block-tools**: add shuck:format as a built-in shell formatter ([5b23261](rvben/rumdl@5b23261))

### Fixed

- **wasm**: stop double-converting already-character-based columns ([4178cdf](rvben/rumdl@4178cdf))
- **tests**: resolve String addition compilation errors under Rust 1.96 (#737) ([38f36cf](rvben/rumdl@38f36cf))

## Downloads

| File | Platform | Checksum |
|------|----------|----------|
| [rumdl-v0.2.36-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-x86_64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.36-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-x86_64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.36-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-aarch64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.36-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-aarch64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.36-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.36/rumdl-v0.2.36-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.co… (truncated)

</details>
<details>
<summary>tombi: `1.2.0` → `1.2.3` (tombi-toml/tombi)</summary>

### v1.2.1

<!-- Release notes generated using configuration in .github/release.yml at v1.2.1 -->

## What's Changed

In this release, we have updated the linter to issue a warning if it is unable to resolve elements such as $ref within a JSON Schema.

### 🐝 Bug Fixes
* Stabilize diagnostic collection names by @​ya7010 in tombi-toml/tombi#2000
* fix(lint): avoid false unused deprecated directive by @​ya7010 in tombi-toml/tombi#2001
* fix(vscode): make executable settings machine-scoped by @​ya7010 in tombi-toml/tombi#2002
* fix(validator): report schema resolution errors by @​ya7010 in tombi-toml/tombi#2010
* fix(glob): remove unused profile import by @​ya7010 in tombi-toml/tombi#2011
### 📦 Dependencies
* chore: resolve OSV code scanning alerts by @​ya7010 in tombi-toml/tombi#2004
### 🛠️ Other Changes
* docs: document deprecationMessage as non-standard support by @​ya7010 in tombi-toml/tombi#2003
* ci: pin OSV scanner workflow to existing action ref by @​ya7010 in tombi-toml/tombi#2005
* fix(validator): report not schema resolution errors by @​risu729 in tombi-toml/tombi#2007
* feat(diagnostic): integrate tombi-diagnostic for error reporting in validator by @​ya7010 in tombi-toml/tombi#2015
* Update error handling by @​ya7010 in tombi-toml/tombi#2016
* chore: change schemastore diagnostics level by @​ya7010 in tombi-toml/tombi#2017

## New Contributors
* @​risu729 made their first contribution in tombi-toml/tombi#2007

**Full Changelog**: tombi-toml/tombi@v1.2.0...v1.2.1

### v1.2.2

<!-- Release notes generated using configuration in .github/release.yml at v1.2.2 -->

## What's Changed
### 🐝 Bug Fixes
* ci: submit winget manifest leaf directory by @​ya7010 in tombi-toml/tombi#2018
### 📦 Dependencies
* chore: update package lock files for SunOS package by @​ya7010 in tombi-toml/tombi#2020
### 🛠️ Other Changes
* feat(dist): add x86_64-unknown-illumos binary distribution by @​sunshowers in tombi-toml/tombi#2014
* refactor(dist): infer CLI-only illumos builds by @​ya7010 in tombi-toml/tombi#2019

## New Contributors
* @​sunshowers made their first contribution in tombi-toml/tombi#2014

**Full Changelog**: tombi-toml/tombi@v1.2.1...v1.2.2

### v1.2.3

<!-- Release notes generated using configuration in .github/release.yml at v1.2.3 -->

## What's Changed
### 🦅 New Features
* Allow comment directives to suppress schema resolution warnings by @​ya7010 in tombi-toml/tombi#2023
### 🛠️ Other Changes
* ci: finalize illumos install checks by @​ya7010 in tombi-toml/tombi#2021
* fix(ci): preserve winget release metadata by @​ya7010 in tombi-toml/tombi#2022

**Full Changelog**: tombi-toml/tombi@v1.2.2...v1.2.3

</details>
<details>
<summary>uv: `0.11.28` → `0.11.29` (astral-sh/uv)</summary>

### 0.11.29

## Release Notes

Released on 2026-07-15.

### Python

- Use gzip-compressed artifacts for PyPy downloads ([#20265](astral-sh/uv#20265))

### Enhancements

- Add JSON output to `uv tree` ([#19978](astral-sh/uv#19978))
- Add CUDA 13.2 as a supported PyTorch backend ([#20267](astral-sh/uv#20267))
- Prefer local artifacts over URLs when installing from `pylock.toml` ([#20393](astral-sh/uv#20393))
- Clarify diagnostics for unsatisfiable direct requirement ranges ([#20227](astral-sh/uv#20227))
- Include the selected project name in missing-extra errors ([#20358](astral-sh/uv#20358))

### Preview features

- Preserve extras and dependency-group conflict context when selecting locked project tools ([#20078](astral-sh/uv#20078))
- Split OSV audit queries that exceed the service's 1,000-package limit ([#20398](astral-sh/uv#20398))
- Apply OSV fixed-version information only to the matching package and ecosystem ([#20399](astral-sh/uv#20399))
- Skip the virtualenv distutils monkeypatch on Python 3.10 and later ([#20222](astral-sh/uv#20222))
- Report invalid `uv audit --service-url` values instead of panicking ([#20374](astral-sh/uv#20374))
- Include preview settings in the published SchemaStore schema ([#20304](astral-sh/uv#20304))

### Performance

- Reduce resolver work by widening selected versions across ranges without other known candidates ([#20115](astral-sh/uv#20115))
- Defer client and build setup for no-op `uv sync` operations ([#20364](astral-sh/uv#20364))
- Reuse workspace discovery during frozen syncs ([#20363](astral-sh/uv#20363))
- Reuse workspace discovery after resolving settings ([#20356](http… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/github-actions-resources that referenced this pull request Jul 20, 2026
Automated mise tool upgrades from local config.

Updated tools:
- `prek`

Command: `mise upgrade --bump --local prek`

<details>
<summary>Version changelog (prek)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `prek` | `0.4.9` → `0.4.10` | `0.4.9` → `0.4.10` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>prek: `0.4.9` → `0.4.10` (j178/prek)</summary>

### v0.4.10

## Release Notes

Released on 2026-07-16.

### Enhancements

- Add PHP language support ([#2314](j178/prek#2314))
- Add freeze option to update settings ([#2323](j178/prek#2323))
- Add tag filters to update configuration ([#2354](j178/prek#2354))
- Identify 'mts' and 'cts' as TypeScript files ([#2209](j178/prek#2209))
- Publish Alpine Docker images ([#2352](j178/prek#2352))
- Support builtin and meta in try-repo ([#2350](j178/prek#2350))

### Bug fixes

- Fix Python discovery order ([#2348](j178/prek#2348))
- Fix Windows progress rendering ([#2328](j178/prek#2328))
- Preserve configured repo values for updates ([#2324](j178/prek#2324))
- Scope synthetic `GIT_WORK_TREE` to git commands ([#2356](j178/prek#2356))

### Documentation

- Expand common workflows guide ([#2351](j178/prek#2351))

### Contributors

- @​j178

## Install prek 0.4.10

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.ps1 | iex"
```

### Install prebuilt binaries via Homebrew

```sh
brew install prek
```

## Download prek 0.4.10

|  File  | Platform | Checksum |
|--------|----------|----------|
| [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz.sha256) |
| [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feat: Support PHP

2 participants