feat(registry): add .perl-version support for perl#9102
Conversation
Add `.perl-version` to the perl registry entry as both `detect` and `idiomatic_files`, so that mise can auto-detect Perl usage and read the version from `.perl-version` files.
There was a problem hiding this comment.
Code Review
This pull request adds support for .perl-version as an idiomatic version file for Perl, updating both the documentation and the registry configuration. A suggestion was made to improve project auto-detection by including additional standard Perl markers such as cpanfile, Makefile.PL, and Build.PL in the detection list.
| @@ -1,2 +1,4 @@ | |||
| backends = ["aqua:skaji/relocatable-perl", "asdf:ouest/asdf-perl"] | |||
| description = "self-contained, portable perl binaries" | |||
| detect = [".perl-version"] | |||
There was a problem hiding this comment.
To improve the auto-detection of Perl projects (e.g., for mise use or mise edit), consider adding other common Perl project markers to the detect list. Files like cpanfile, Makefile.PL, and Build.PL are standard indicators of a Perl project and would allow mise to proactively suggest Perl when entering such a project directory.
| detect = [".perl-version"] | |
| detect = [".perl-version", "cpanfile", "Makefile.PL", "Build.PL"] |
Greptile SummaryThis PR adds Confidence Score: 5/5Safe to merge — minimal, additive change following established registry patterns. Both changes are small and correct: the registry TOML matches the pattern used by other external-backend tools (atmos, terraform, packer), and the docs table entry is alphabetically ordered. No logic changes, no breaking changes, and the feature was manually verified by the author. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Project directory] -->|contains `.perl-version`| B{mise processing}
B -->|detect| C[Auto-detect Perl tool usage\ne.g. mise edit]
B -->|idiomatic_files\n+ setting enabled| D[Read version from `.perl-version`]
D --> E[Set active Perl version]
C --> F[Suggest Perl in mise config]
style A fill:#f5f5f5
style E fill:#d4edda
style F fill:#d4edda
Reviews (2): Last reviewed commit: "Merge branch 'main' into feat/perl-idiom..." | Re-trigger Greptile |
### 🚀 Features - **(registry)** add .perl-version support for perl by @ergofriend in [#9102](#9102) - **(task)** add Tera template support for inline table run tasks by @iamkroot in [#9079](#9079) ### 🐛 Bug Fixes - **(env)** use runtime symlink paths for fuzzy versions by @jdx in [#9143](#9143) - **(github)** use full token resolution chain for attestation verification by @jdx in [#9154](#9154) - **(go)** Remove install-time version override for subpath packages by @c22 in [#9135](#9135) - **(npm)** respect install_before when resolving dist-tag versions by @webkaz in [#9145](#9145) - **(self-update)** ensure subcommand exists by @salim-b in [#9144](#9144) - **(task)** show available tasks when run target missing by @jdx in [#9141](#9141) - **(task)** forward task help args and add raw_args by @jdx in [#9118](#9118) - **(task)** remove red/yellow from task prefix colors by @lechuckcaptain in [#8782](#8782) - **(task)** merge TOML task block into same-named file task and surface resolved dir by @jdx in [#9147](#9147) - **(toolset)** round-trip serialized tool options by @atharvasingh7007 in [#9124](#9124) - **(vfox)** fallback to absolute bin path if env_keys not set by @80avin in [#9151](#9151) ### 📚 Documentation - make agent guide wording generic by @jdx in [#9142](#9142) ### 📦️ Dependency Updates - update ghcr.io/jdx/mise:deb docker digest to e019cb9 by @renovate[bot] in [#9160](#9160) - update ghcr.io/jdx/mise:copr docker digest to 8d25608 by @renovate[bot] in [#9159](#9159) - update ghcr.io/jdx/mise:rpm docker digest to 22e52da by @renovate[bot] in [#9161](#9161) - update ghcr.io/jdx/mise:alpine docker digest to a3da97c by @renovate[bot] in [#9158](#9158) - update rust docker digest to 4a2ef38 by @renovate[bot] in [#9162](#9162) - update ubuntu:24.04 docker digest to c4a8d55 by @renovate[bot] in [#9164](#9164) - update rust crate aws-lc-rs to v1.16.3 by @renovate[bot] in [#9165](#9165) - update ubuntu docker tag to resolute-20260413 by @renovate[bot] in [#9169](#9169) - update rust crate clap to v4.6.1 by @renovate[bot] in [#9166](#9166) - update taiki-e/install-action digest to a2352fc by @renovate[bot] in [#9163](#9163) - update rust crate ctor to 0.10 by @renovate[bot] in [#9170](#9170) - update rust crate tokio to v1.52.1 by @renovate[bot] in [#9167](#9167) - update rust crate rmcp-macros to 0.17 by @renovate[bot] in [#9173](#9173) - update rust crate signal-hook to 0.4 by @renovate[bot] in [#9177](#9177) - update rust crate zipsign-api to 0.2 by @renovate[bot] in [#9180](#9180) - update rust crate toml_edit to 0.25 by @renovate[bot] in [#9179](#9179) - update rust crate strum to 0.28 by @renovate[bot] in [#9178](#9178) ### 📦 Registry - add ibmcloud by @dnwe in [#9139](#9139) - add rush by @jdx in [#9146](#9146) ### New Contributors - @80avin made their first contribution in [#9151](#9151) - @atharvasingh7007 made their first contribution in [#9124](#9124) - @lechuckcaptain made their first contribution in [#8782](#8782) - @ergofriend made their first contribution in [#9102](#9102) - @dnwe made their first contribution in [#9139](#9139) ## 📦 Aqua Registry Updates #### New Packages (3) - [`controlplaneio-fluxcd/flux-operator`](https://github.com/controlplaneio-fluxcd/flux-operator) - [`dependency-check/DependencyCheck`](https://github.com/dependency-check/DependencyCheck) - [`kiro.dev/kiro-cli`](https://github.com/kiro.dev/kiro-cli) #### Updated Packages (2) - [`jreleaser/jreleaser/standalone`](https://github.com/jreleaser/jreleaser/standalone) - [`sigstore/cosign`](https://github.com/sigstore/cosign)
Add
.perl-versionto the perl registry entry as bothdetectandidiomatic_files, so that:detect: mise can auto-detect Perl usage in a project (e.g.,mise edit)idiomatic_files: mise reads the version from.perl-versionwhenidiomatic_version_file_enable_toolsincludes"perl"Motivation
Many Perl projects use
.perl-versionfiles (created by plenv) to pin the Perl version, similar to how Node.js projects use.node-version. Currently, mise does not recognize.perl-version, so users must duplicate the version in.mise.toml.Change
Testing
Verified locally in a clean tempdir:
1.
mise configlists.perl-versionas a config source2.
mise ls --currentshows the version read from.perl-version3. Changing the version in
.perl-versionswitches the active PerlRequires
idiomatic_version_file_enable_tools = ["perl"]in settings (same pattern as node, python, ruby).