Releases: kdeldycke/meta-package-manager
Releases Β· kdeldycke/meta-package-manager
v7.0.1
Immutable
release. Only release title and notes can be modified.
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
meta-package-manager-7.0.1-linux-arm64.bin |
0 / 62 | View scan |
meta-package-manager-7.0.1-linux-x64.bin |
0 / 64 | View scan |
meta-package-manager-7.0.1-macos-arm64.bin |
1 / 62 | View scan |
meta-package-manager-7.0.1-macos-x64.bin |
0 / 62 | View scan |
meta-package-manager-7.0.1-windows-arm64.exe |
2 / 68 | View scan |
meta-package-manager-7.0.1-windows-x64.exe |
12 / 70 | View scan |
v7.0.0
Immutable
release. Only release title and notes can be modified.
- Breaking: [mpm] Rename the
--allow-no-cooldownflag to the--require-cooldown-support/--allow-unsupported-managerspair, and itsallow_no_cooldownconfig torequire_cooldown_support(defaulttrue). - Breaking: [mpm] The
sort_byconfiguration option is now a list of fields, matching the repeatable--sort-by. Wrap an existing scalar value in brackets:sort_by = "package_id"becomessort_by = ["package_id"]. - [pnpm] Add the pnpm package manager (
installed,outdated,search,install,upgrade,remove,cleanup), enforcing--cooldownvia pnpm's nativeminimumReleaseAgegate. - [mpm] Filter the package listing by a query:
installedandoutdatedtake an optionalQUERYargument anddump/backup/sboma--queryoption, fuzzy by default with--exact/--fuzzyto control it. - [mpm]
--sort-by/-sis now repeatable, ordering result tables by several fields in priority order (like--sort-by package_id --sort-by manager_id). - [mpm] Run managers in parallel via a new
--jobs/-joption (default: CPU count minus one), covering the read-only queries, the maintenance commands, the inventory exporters, and the state changers;DEBUGverbosity forces sequential runs. Closes {issue}529. - [mpm] Show a progress spinner with elapsed time on
<stderr>while manager CLI calls run, toggled with click-extra's--progress/--no-progress. - [mpm]
install,remove,upgrade,restore,sync, andcleanupnow print a per-attemptβ/βtrail and a finisher on an interactive terminal: per-package for the package commands, per-manager forsync/cleanup/upgrade --all. - [mpm] The standalone binary now reads configuration in all six formats (
toml,yaml,json5,jsonc,hjson,xml), matching the source distribution. - [mpm] Lower the default verbosity from
INFOtoWARNING, leaving only theβ/βtrail, finishers, and genuine warnings on screen; per-operation narration moves toINFOand raw technical detail toDEBUG. - [mpm]
--timeoutnow defaults per-operation (120s for read-only queries, 500s for state-changing operations) instead of a flat 500s; an explicit--timeoutstill overrides. - [mpm]
install,remove,upgrade <packages>, andrestorenow exit non-zero when a target fails or no manager can fulfill the request, instead of always reporting0. - [mpm] Fix
install/remove/upgradedropping all but one target when the same package is given with several explicit managers;installnow acts on every requested package instead of stopping at the first success. - [mpm] Fix
install,remove, andupgradereporting success when a manager's CLI fails with a non-zero exit code but empty error output, like steamcmd's anonymous-login failure on Windows. - [eopkg] Fix
installed,outdated, andsearchreturning no packages. - [mpm] Compare a leading version epoch (
1:2.0,1!2.0) as a dominant component, so epoch bumps order correctly across Debian, RPM, pacman, and PEP 440 schemes. - [mpm] Resolve
pkg:apkpurls to theapkmanager andpkg:npmpurls topnpm; both were missing from the purl-to-manager map.
Full changelog: v6.6.0...v7.0.0
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
meta-package-manager-7.0.0-linux-arm64.bin |
0 / 62 | View scan |
meta-package-manager-7.0.0-linux-x64.bin |
0 / 61 | View scan |
meta-package-manager-7.0.0-macos-arm64.bin |
1 / 61 | View scan |
meta-package-manager-7.0.0-macos-x64.bin |
0 / 60 | View scan |
meta-package-manager-7.0.0-windows-arm64.exe |
3 / 68 | View scan |
meta-package-manager-7.0.0-windows-x64.exe |
12 / 70 | View scan |
v6.6.0
Immutable
release. Only release title and notes can be modified.
- Breaking: [mpm] Rename the global
--stats / --no-statsflag to--summary / --no-summary. Scripts passing the old flag must update. - Breaking: [mpm] Move
cyclonedx-python-libandspdx-toolsinto a new[sbom]extra:mpm sbomnow requirespip install meta-package-manager[sbom].packageurl-pythonstays in the runtime install. The standalone binary distribution keeps shipping SBOM support:[tool.repomatic] nuitka.extras = ["sbom"]syncs the extra into the build venv and[tool.nuitka] include-package = ["cyclonedx", "spdx_tools"]forces Nuitka to bundle thetry/except-guarded imports. - [asdf] Add asdf package manager (
installed,outdated,search,install,upgrade,upgrade_all,remove,sync) on Linux and macOS; requiresasdf>=0.16.0. - [mise] Add mise package manager (
installed,outdated,search,install,upgrade,upgrade_all,remove,sync,cleanup), cross-platform; requiresmise>=2025.5.10. - [mpm] Add the
--man(roff man page) and--accessible(no ANSI or Unicode, for screen readers) global options fromclick-extra, and attach anmpm-manpages.tar.gzasset to each release. - [mpm] Add a
--cooldown DURATIONoption and[mpm] cooldownconfig to refuse installing or upgrading package versions newer than a given release age, as a supply-chain mitigation; unsupported managers are skipped unless--allow-no-cooldown. - [brew] Adapt to Homebrew
6.0.0: pass--yestobrew upgradeto suppress the new interactive prompt, and trust tap-qualified installs before installing to avoidtap trust is requiredaborts. Bumps minimumbrewfrom2.7.0to6.0.0. - [zerobrew] Add
upgradeandupgrade_allsupport viazb upgrade, and bump minimumzbfrom0.2.0to0.3.0. - [mpm] Make
mpm sbommaximalist by default, collecting rich per-package metadata (license, supplier, homepage, checksums, dependency graph) into SPDX and CycloneDX exports, with--minimalfor the bare inventory. - [mpm] Attach canonical SPDX URLs to each identifier inside compound license expressions in CycloneDX 1.7 output (
licenses[].expressionDetails[]). - [mpm] Reduce default-verbosity noise on operational subcommands: captured stderr and implicit-selection
Skipmessages drop to DEBUG, with a one-line error summary at the end of any subcommand whose CLIs accumulated errors. - [mpm] Fix
pkg:cpan/β¦,pkg:guix/β¦, andpkg:nix/β¦pURL specifiers raisingUnrecognized pURL typeeven though those managers are implemented.
Full changelog: v6.5.1...v6.6.0
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
mpm-6.6.0-linux-arm64.bin |
0 / 61 | View scan |
mpm-6.6.0-linux-x64.bin |
0 / 60 | View scan |
mpm-6.6.0-macos-arm64.bin |
2 / 61 | View scan |
mpm-6.6.0-macos-x64.bin |
1 / 54 | View scan |
mpm-6.6.0-windows-arm64.exe |
2 / 67 | View scan |
mpm-6.6.0-windows-x64.exe |
18 / 68 | View scan |
v6.5.1
Immutable
release. Only release title and notes can be modified.
- [mpm] Define
mpm's ownOK_GLYPH(β) andKO_GLYPH(β) constants inmeta_package_manager.outputinstead of importing them fromclick-extra.
Full changelog: v6.5.0...v6.5.1
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
mpm-6.5.1-linux-arm64.bin |
0 / 63 | View scan |
mpm-6.5.1-linux-x64.bin |
1 / 60 | View scan |
mpm-6.5.1-macos-arm64.bin |
1 / 62 | View scan |
mpm-6.5.1-macos-x64.bin |
1 / 62 | View scan |
mpm-6.5.1-windows-arm64.exe |
2 / 69 | View scan |
mpm-6.5.1-windows-x64.exe |
5 / 71 | View scan |
v6.5.0
Immutable
release. Only release title and notes can be modified.
- [pwsh-gallery] Add PowerShell Gallery package manager with
installed,outdated,search,install,upgrade, andremovesupport. DrivesMicrosoft.PowerShell.PSResourceGet(bundled with PowerShell 7.4+) throughpwsh -NoProfile -NonInteractive -Command, parses JSON viaConvertTo-Json -AsArray, and targets-Scope CurrentUserfor installs so no elevation is required. Cross-platform on Linux, macOS, and Windows. Non-zeropwshexits raiseCLIErrorimmediately viamust_succeed=Trueon allrun_cli()calls;json.loads()is guarded with aJSONDecodeErrorcatch as a second layer, so mpm logs a warning and skips the manager instead of crashing. Closes {issue}1760. - [topgrade] Add
topgradeitself as a supported package manager, in the spirit of XKCD #927. Onlyupgrade --allis implemented (the only operationtopgradeexposes);mpm upgrade --topgraderunstopgrade --yesnon-interactively. Requirestopgrade>=17.0.0. Selecting bothtopgradeand a managertopgradealready drives (brew,apt,pacman, etc.) in the samempm upgrade --allwill run that manager twice. - [mpm] Add
[mpm.managers.<id>]configuration sections for per-manager attribute overrides. Closes {issue}945. Recognized fields:cli_names,cli_search_path,deprecated,dry_run,extra_env,ignore_auto_updates,post_args,pre_args,pre_cmds,requirement,stop_on_error,timeout,version_cli_options,version_regexes. List-valued overrides use replace semantics, and per-manager values take precedence over the matching global[mpm]settings or--<flag>command-line values. Unknown manager IDs and field names log a warning and are skipped; type mismatches raise an error. - [mpm] Print an upstream contribution invitation on
<stderr>when a user override targets a detection-related field (cli_names,cli_search_path,requirement,version_cli_options,version_regexes). The invitation includes a pre-filled GitHub new-issue URL targetingbug-report.ymlwith the manager ID, override value, and pre-overridecli_pathalready populated. Silence via--no-suggest-contribs,MPM_SUGGEST_CONTRIBS=false, or[mpm] suggest_contribs = falsein the config file. - [mpm] Add
mpm dump-toml [manager-ids...]subcommand that prints every overridable attribute of each requested manager as a ready-to-paste[mpm.managers.<id>]TOML block. With no positional argument, every maintained manager is dumped. Doubles as the canonical reference for what each manager exposes: users can pipe the output into a config file and prune the rows that don't apply. - [bar-plugin] Swap the default and alternate actions on package-upgrade entries: a regular click now opens a visible terminal that shows the upgrade output, and holding the
Optionkey runs the upgrade silently. Reverses the previous behavior introduced in3.3.0. - [mpm] Remove automated publishing of the Chocolatey package: the
π« Chocolateyjob is gone fromrelease.yaml, and thechocojob that installed from the community repository is gone fromtests-install.yaml. Submission6.4.2was rejected because the Windows x64 binary is flagged by more than 10 antivirus engines on VirusTotal, the cutoff for community-repository approval. The in-treepackaging/choco/meta-package-manager/nuspec and thechoco-sourcebuild-from-source job intests-install.yamlare kept; install instructions indocs/install.mdnow point only at the local build path. - [mas] Bump minimum required
masversion from1.8.7to7.0.0, switchinstalled,outdated, andsearchto parse the new--jsonoutput instead of regex-matching the tabular format (avoids column-alignment ambiguities from app names with parentheses or extra whitespace), updatehomepage_urltohttps://github.com/mas-cli/mas(the project moved fromargon/mas), and drop the explicitsudowrapper aroundmas uninstall(mas4.1.0+ requests root privileges itself when not already running as root). - [mpm] Fix Windows subprocess handling: spawn subprocesses with
CREATE_NO_WINDOW | SW_HIDEto prevent console signal broadcasts; catchKeyboardInterruptinrun()to absorbCTRL_C_EVENTsignals from winget's finalizer processes; onTimeoutExpired, runtaskkill /F /Tagainst the PID and named cleanup processes likeWindowsPackageManagerServer.exebefore callingproc.communicate(), since grandchild installer processes inherit pipe write handles and keep them open afterproc.kill(); extend theOSErrorhandler to catchFileNotFoundError(WinError 2 / ENOENT), treating a missing executable as the manager being unavailable rather than a fatal crash; passstdin=subprocess.DEVNULLto prevent interactive prompts from hanging indefinitely; and decode subprocess output witherrors="replace"to avoidUnicodeDecodeErrorfrom Windows cp1252 package descriptions. - [yarn] Fix
searchto parse NDJSON output line by line. Newer versions of Yarn with--jsonemit multiple JSON objects on separate lines rather than a single JSON blob; the previousjson.loads()raisedJSONDecodeErrorwhen Yarn appended a trailing status line after theinspectobject. Lines are now parsed individually and onlyinspect-type entries are collected, matching the pattern already used inoutdated(). - [mpm] Fix Nuitka onefile builds: remove the invalid
nuitka = "False"entry from[tool.uv] exclude-newer-package(uv rejected it as an invalidexclude-newervalue, printing a TOML parse error on every invocation), and configure the binary through the standard[tool.nuitka]section. repomatic6.20.0'srepomatic run nuitkareads that section and translates it to CLI flags at build time (Nuitka itself reads it only for setuptools build-backend builds), so the binary now bundlesclick_extra'sthemes.toml(loaded viaimportlib.resources) so it can start, and carries product metadata and native per-platform icons (docs/assets/icon.png/icon.icns/icon.icofor Linux/macOS/Windows, all rendered fromicon.svg). Native formats are required: Nuitka would otherwise need theimageiopackage to convert a non-native image and fail the build.file-version/product-versionare kept numeric, since Nuitka rejects PEP 440.devNsuffixes, and are kept in sync by[tool.bumpversion]. - [xbps] Add Void Linux build-from-source installation instructions to
docs/install.md. The package is pending upstream review at void-linux/void-packages#60532; until that merges, users can build from thempmbranch of the fork.
Full changelog: v6.4.3...v6.5.0
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
mpm-6.5.0-linux-arm64.bin |
0 / 58 | View scan |
mpm-6.5.0-linux-x64.bin |
0 / 63 | View scan |
mpm-6.5.0-macos-arm64.bin |
0 / 60 | View scan |
mpm-6.5.0-macos-x64.bin |
1 / 58 | View scan |
mpm-6.5.0-windows-arm64.exe |
1 / 66 | View scan |
mpm-6.5.0-windows-x64.exe |
3 / 62 | View scan |
v6.4.3
Immutable
release. Only release title and notes can be modified.
- [mpm] Re-release to fix PyPI upload issues.
Full changelog: v6.4.2...v6.4.3
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
mpm-6.4.3-linux-arm64.bin |
0 / 63 | View scan |
mpm-6.4.3-linux-x64.bin |
0 / 63 | View scan |
mpm-6.4.3-macos-arm64.bin |
5 / 62 | View scan |
mpm-6.4.3-macos-x64.bin |
0 / 63 | View scan |
mpm-6.4.3-windows-arm64.exe |
2 / 69 | View scan |
mpm-6.4.3-windows-x64.exe |
23 / 70 | View scan |
v6.4.2
Immutable
release. Only release title and notes can be modified.
- [mpm] Compile
version_regexeswithre.MULTILINEonly, droppingre.VERBOSE. Underre.VERBOSE, unescaped whitespace in the pattern is silently ignored, so patterns liker"guix \(GNU Guix\) (?P<version>...)"would never matchguix --versionoutput and the manager was reported as unavailable withcould not parse version from <path> output. Affectedguix,nix, andstew, all of which now correctly detect their installed version.steamcmd, which used\escapes to work around the same flag, is unaffected.
Full changelog: v6.4.1...v6.4.2
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
mpm-6.4.2-linux-arm64.bin |
0 / 63 | View scan |
mpm-6.4.2-linux-x64.bin |
0 / 62 | View scan |
mpm-6.4.2-macos-x64.bin |
1 / 63 | View scan |
mpm-6.4.2-windows-arm64.exe |
2 / 69 | View scan |
mpm-6.4.2-windows-x64.exe |
23 / 71 | View scan |
v6.4.1
Immutable
release. Only release title and notes can be modified.
Note
6.4.1 is available on π PyPI and π GitHub.
- [guix] Drop the
>=1.0.0version requirement and add a hex-hash regex variant. Guix is a rolling-release distribution:guix pull-managed installs and in-tree dev wrappers (./pre-inst-env guix,./scripts/guix) report a git commit hash as the "version", which the previous>=1.0.0specifier rejected as not satisfying the requirement and madempmskip the manager. The newversion_regexeschain accepts stable releases (1.4.0),git describe-style versions (1.4.0-7-gabc1234), and bare 7β40-char lowercase hex hashes, so any workingguixregisters as available. - [mpm] Add
PackageManager.unavailable_reasonand use it in the pool's "Skip" log line. Whenmpmdrops a manager from selection, the message now spells out why it was dropped:not supported on '<sysname>',no executable named '<names>' found in PATH,'<path>' is not executable,could not parse version from '<path>' output, orversion <X> does not satisfy '<spec>' requirement. Replaces the previous opaqueSkip unavailable <id> manager.line. - [mpm] Move
--covand--cov-report=termfrompyproject.toml[tool.pytest].addoptsinto the CI workflow. Removespytest-covas an unconditional test-time dependency for downstream packagers. - [mpm] Move
--numprocesses=auto,--dist=loadgroup, and--maxschedchunk=1frompyproject.toml[tool.pytest].addoptsinto the CI workflow. Removespytest-xdistas an unconditional test-time dependency for downstream packagers. - [zypper] Loosen
xmltodictfloor from>=1to>=0.12. Theparse()API I rely on inmanagers/zypper.pyhas been stable since 0.12, so the bump to 1.0 was cosmetic and forced downstream packagers to ship a newer release than necessary. - [mpm] Drop
more-itertoolsdependency. The singlepeekableuse site inpool.pyis replaced with anext(iterator, None)empty-check using stdlib only. Removes one transitive dependency for downstream packagers. - [choco] Move Chocolatey package files from
packaging/choco/intopackaging/choco/meta-package-manager/so the directory name matches the nuspec basename, as required by Chocolatey-AU'sUpdate-Package. Fixes theπ« Chocolateyrelease job that was failing withNo nuspec file found in the package directory. - [mpm] Add
choco-source,nix-source, andguix-sourcejobs totests-install.yamlthat build and install from the in-repo packaging specs (packaging/choco/meta-package-manager/,packaging/nix/,packaging/guix/). The workflow now also triggers on pushes and pull requests touchingpackaging/{choco,nix,guix}/**, so changes to in-repo specs are validated before merge. - [mpm] Render the
chocolatey,guix, andnixrelease-PR bodies throughrepomatic pr-body --template-file .github/pr-templates/update-package-spec.md.noformat. PRs now include the standard<details>workflow-metadata block (trigger, actor, ref, commit, job, workflow, run links), the refresh-tip admonition pointing at the workflow's dispatch URL, and the attribution footer, matching every other PR opened by repomatic-driven jobs acrosskdeldycke/*repositories.
Full changelog: v6.4.0...v6.4.1
π‘οΈ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
mpm-6.4.1-linux-arm64.bin |
0 / 62 | View scan |
mpm-6.4.1-linux-x64.bin |
0 / 62 | View scan |
mpm-6.4.1-macos-arm64.bin |
4 / 61 | View scan |
mpm-6.4.1-macos-x64.bin |
1 / 62 | View scan |
mpm-6.4.1-windows-arm64.exe |
2 / 68 | View scan |
mpm-6.4.1-windows-x64.exe |
23 / 69 | View scan |
v6.4.0
Immutable
release. Only release title and notes can be modified.
Note
6.4.0 is available on π PyPI and π GitHub.
- [apk] Add Alpine Linux's
apkpackage manager withinstalled,outdated,search,install,upgrade,remove,sync, andcleanupsupport. - [guix] Add GNU Guix package manager with
installed,outdated,search,install,upgrade,remove,sync, andcleanupsupport. - [macports] Add MacPorts package manager with
installed,outdated,search,install,upgrade,remove,sync, andcleanupsupport. - [ports] Add FreeBSD ports tree manager with
installed,outdated,install,upgrade,upgrade_all,remove,sync, andcleanupsupport. Drivesmake-based source builds out of/usr/ports, delegates registry queries topkg, and usesgitfor tree updates. - [sfsu] Add sfsu (Scoop alternative) package manager with
installed,outdated,search,install,upgrade,remove,sync, andcleanupsupport. Mutating operations delegate to Scoop. - [xbps] Add XBPS (Void Linux) package manager with
installed,outdated,search,install,upgrade,remove,sync, andcleanupsupport. - [apm,apt,choco,composer,emerge,flatpak,opkg,sdkman,snap,zypper] Add
removeoperation. Closes {issue}1775. - [composer] Fix
installoperation: usecomposer global requireinstead ofcomposer global install. - [apm,npm,pip] Add
cleanupoperation. - [gem,winget] Add
syncoperation. - [mpm] Add
Delegatedescriptor tocapabilities.pyfor declarative cross-manager method delegation. - [mpm] Add Python version and platform to
--versionoutput. - [mpm] Add typed
config_schemato the CLI group for configuration file validation. - [mpm] Document
pyproject.tomlauto-discovery for per-project[tool.mpm]configuration. - [mpm] Extend
--table-formatstructured output to TOML, YAML, XML, JSON5, JSONC, and HJSON for all subcommands that produce machine-readable data (managers,installed,outdated,search,locate). - [mpm] Change JSON output indentation from 4 to 2 spaces and stop sorting keys, aligning with click-extra defaults.
- [mpm] Rename
--output-format/-oback to--table-format, aligning with the upstream click-extra default. - [mpm] Make Chocolatey release job idempotent: check if version already exists on Chocolatey before pushing, and open a PR to update the nuspec after a successful publish.
- [mpm] Add Guix and Nix package definitions with automated update jobs on release; reorganize
packaging/directory intopackaging/choco/,packaging/guix/, andpackaging/nix/subdirectories. - [pip] Filter mpm's own dependency tree from
outdatedresults to fix false positives in Homebrew-installed environments. Closes {issue}1767. - [scoop] Fix CLI invocation in
outdatedoperation. - [winget] Fix
searchcrash when no results are returned. - [zypper] Skip install and remove tests on Linux CI runners: the RPM database at
/var/lib/rpmis inaccessible on Ubuntu-based runners.
Full changelog: v6.3.0...v6.4.0
v6.3.0
Immutable
release. Only release title and notes can be modified.
Note
6.3.0 is available on π PyPI and π GitHub.
- [cpan] Add CPAN package manager for Perl modules with
installed,outdated,install, andupgradesupport. Closes {issue}602. - [deb-get] Add deb-get package manager with
installed,outdated,search,install,upgrade,remove,sync, andcleanupsupport. Closes {issue}1609. - [nix] Add Nix package manager with
installed,outdated,search,install,upgrade,remove,sync, andcleanupsupport. - [pacstall] Add Pacstall package manager with
installed,outdated,search,install,upgrade,remove, andsyncsupport. Closes {issue}1610. - [sdkman] Add SDKMAN! package manager with
installed,outdated,install,upgrade,sync, andcleanupsupport. Closes {issue}729. - [stew] Add Stew package manager for installing pre-compiled binaries from GitHub Releases. Closes {issue}
1680. - [zerobrew] Add ZeroBrew manager with
installed,outdated,install, andremovesupport. Closes {issue}1681. - [uvx] Implement
outdatedoperation. Bump minimal requirement to0.10.10. Closes {pr}1704. - [yarn] Split into Yarn Classic and Yarn Berry managers. Restrict Classic to
<2.0.0. Closes {issue}1548. - [yarn-berry] Add Yarn Berry (2.x+) manager with
searchandcleanupsupport. - [winget] Switch
installedandoutdatedtowinget list --detailsstructured output; filter toOrigin Source: wingetpackages only, excluding sideloaded and portable entries. Bump minimum required version to>=1.28.190. - [pip] Only report top-level packages as outdated, skipping transitive dependencies. Closes {issue}
1214. - [mpm] Support version range specifiers (e.g.
>=1.20.0,<2.0.0) in managerrequirementfield. Refs {issue}1548. - [mpm] Add
must_succeedparameter torun_clifor structured-output calls, preventing silent data loss on CLI failures. Refs {issue}1703. - [mpm] Add Chocolatey as a supported Windows installation method; automate package publishing on release.
- [mpm] Overhaul version tokenization: preserve original separators and case, keep hex hashes as single tokens, normalize pre-release aliases (
alpha/a,beta/b,c/rc), and recognizepost/patchas post-release tags. - [mpm] Fix version comparison accuracy: integer tokens now rank above string tokens (e.g.,
3.12.0 > 3.12.0a4), trailing.0segments are treated as padding, the cosmeticvprefix is stripped, and false-positive outdated entries where parsed versions compare equal are filtered. - [mpm] Snap version diff highlighting to separator boundaries so the full diverging token and its preceding separator are colored.
- [mpm] Detect Windows App Execution Aliases (reparse points) when resolving CLI paths, fixing detection of
wingetand similar tools installed via the Microsoft Store. - [gem] Remove
--user-installflag frominstall,upgrade, andupdatecommands so all operations target the same gem scope aslistandoutdated. Closes {issue}389. - [pip] Remove
--userflag fromupgradecommand so upgrades target the same scope aslistandoutdated. - [pip] Prepend the current Python executable to the list of candidates when searching for pip binaries, so the active environment is always checked first.
- [mpm] Cache installed package IDs before the spec loop in
upgradeandremovecommands, avoiding redundant CLI calls per package specifier. - [mpm] Reduce CI matrix on pull requests: skip release builds, experimental Python versions, redundant architecture variants, and install tests. Declare
windows-11-armexclusion in[tool.repomatic.test-matrix]config instead of hardcoding it.
Full changelog: v6.2.1...v6.3.0
π‘οΈ VirusTotal scans
| Binary | Analysis |
|---|---|
meta-package-manager-6.3.0-linux-arm64.bin |
View scan |
meta-package-manager-6.3.0-linux-x64.bin |
View scan |
meta-package-manager-6.3.0-macos-arm64.bin |
View scan |
meta-package-manager-6.3.0-macos-x64.bin |
View scan |
meta-package-manager-6.3.0-windows-arm64.exe |
View scan |
meta-package-manager-6.3.0-windows-x64.exe |
View scan |
mpm-6.3.0-linux-arm64.bin |
View scan |
mpm-6.3.0-linux-x64.bin |
View scan |
mpm-6.3.0-macos-arm64.bin |
View scan |
mpm-6.3.0-macos-x64.bin |
View scan |
mpm-6.3.0-windows-arm64.exe |
View scan |
mpm-6.3.0-windows-x64.exe |
View scan |