Releases: secondfry/pmls
Releases · secondfry/pmls
Release list
v1.2.2
Changes since v1.2.1: - Add ARM64 Linux cross-compilation target (aarch64-unknown-linux-gnu) using gcc-aarch64-linux-gnu linker on ubuntu-latest runner - Add ARM64 Windows cross-compilation target (aarch64-pc-windows-msvc) on windows-latest runner (MSVC supports ARM64 natively, no extra setup needed) - Update README platform table with windows_arm64.exe and linux_arm64 assets
v1.2.1
v1.2.1 — Performance: single-pass parallel detection
Since v1.2.0:
Detection speed improvements
- Replace per-group detect() calls with a single detect_grouped() pass
that flattens all 77+ managers into one rayon par_iter. The thread
pool now sees the full workload at once instead of 19 sequential
bursts of ~4 managers each, keeping all CPU cores busy throughout.
- Replace where/which subprocess existence checks with an in-process
PATH lookup via the 'which' crate, eliminating one extra process
spawn per manager.
Code quality
- Introduce labeled_groups() in main.rs as a single source of truth
for the ordered group definitions, eliminating the duplication that
previously existed between print_human and print_json.
- detect_grouped() preserves group order and intra-group ordering
via stable sort on group index.
v1.2.0
v1.2.0 — Add 37 new package and toolchain managers Since v1.1.0: Toolchain / version managers - rustup — Rust toolchain manager - mise — modern polyglot version manager (asdf replacement) - asdf — polyglot version manager - volta — JavaScript toolchain manager - pyenv — Python version manager - rbenv — Ruby version manager - rvm — Ruby Version Manager - sdkman — JVM / SDK toolchain manager (sdk) - jenv — Java version manager - goenv — Go version manager - nodenv — Node.js version manager Python ecosystem - poetry — dependency and project manager - pdm — PEP-compliant project manager - hatch — official PyPA project manager - pixi — modern conda-based manager - mamba — fast conda replacement Java / JVM - sbt — Scala Build Tool - leiningen — Clojure build tool (lein) - coursier — JVM artifact resolver / Scala toolchain (cs) - mill — Scala/Java build tool C / C++ - vcpkg — Microsoft C/C++ package manager - conan — C/C++ package manager System - pkg — FreeBSD / Termux package manager - nala — modern apt frontend - guix — GNU Guix package manager - pkgin — pkgsrc binary package manager JavaScript - deno — Deno runtime and package manager - corepack — Node.js tool manager for yarn/pnpm versions Other language ecosystems - mix — Elixir / Mix + Hex - stack — Haskell Stack - cabal — Haskell Cabal - opam — OCaml package manager - nimble — Nim package manager - luarocks — Lua package manager - cpanm — Perl cpanminus - flutter — Dart / Flutter pub - mint — Swift Mint
v1.1.0
Release 1.1.0 New features: - Go tool installer now lists installed binaries via 'go version -m' Iterates all files (including symlinks) in GOBIN / GOPATH/bin / ~/go/bin and reads embedded build metadata to show the binary name, module path, and version. Validated against gobin-info implementation. - Correct GOPATH handling: when GOPATH contains multiple paths (os.PathListSeparator-separated) only the first is used, matching Go toolchain behavior. - Added list_fn field to PackageManager for managers that need runtime logic beyond a static argument list. Infrastructure: - Fixed release asset naming so bin install works correctly (1.0.1). - Workflow no longer uses generate_release_notes; tag annotation body is used as the release description.
v1.0.1
Release 1.0.1 Fix release asset naming so bin installs the binary as 'pmls' / 'pmls.exe'. v1.0.0 assets used the Rust target triple format (pmls-x86_64-pc-windows-msvc.exe) which bin's asset resolver did not recognise, causing it to install the binary under the mangled name 'pmls-pc-msvc.exe' instead of 'pmls.exe'. Assets are now named using bin's own convention: pmls_1.0.1_windows_amd64.exe pmls_1.0.1_linux_amd64 pmls_1.0.1_darwin_amd64 pmls_1.0.1_darwin_arm64 No functional changes to the tool itself.
v1.0.0
Initial stable release of pmls.
Detects 38 package managers across Windows, Linux, and macOS. For each
installed manager reports:
- version (extracted from the manager's own --version output)
- packages/install directory
- provenance of that directory: which env var, which config file, or
whether it is the hardcoded OS default
Supported ecosystems: System (apt, pacman, scoop, winget, choco, ...),
JavaScript (npm, yarn, pnpm, bun, nvm, fnm), Python (pip, pip3, pipenv,
conda, uv), Ruby (gem, bundle), PHP (composer), .NET (dotnet, nuget),
Rust (cargo), Java (gradle, maven), Go, and Universal (nix, helm).
Binaries for Windows (x86_64), Linux (x86_64), and macOS (x86_64 +
arm64) are built and attached to the GitHub release automatically.
Install via bin: bin install github.com/secondfry/pmls