Upstream

mpm sits on a large ecosystem: the package managers it wraps, the menu-bar frontends hosting its plugin, the libraries it imports, and the toolchain compiling its binaries. This page records what the project sends back to those upstreams: merged fixes, bug reports, and the workarounds it carries where an upstream declined or has not moved yet.

Two neighboring inventories live elsewhere:

Code contributed upstream

Nuitka

Every release ships standalone binaries compiled by Nuitka, and that lane keeps returning fixes for the packages mpm bundles:

xbar plugin repository

The bar plugin started its life inside the central plugin repository of BitBar, the project since reborn as Xbar:

boltons

mpm strips ANSI sequences out of manager output before parsing it, through boltons.strutils.strip_ansi:

Poetry

Poetry was the project’s build backend before uv:

Project listings

Upstreamed from meta-package-manager

Problems this project hit first and reported upstream, since fixed there.

SwiftBar

  • swiftbar/SwiftBar#445: environment variable defaults were mangled by escaping. The plugin still quotes its defaults, so it keeps working on the SwiftBar releases from before the fix.

  • swiftbar/SwiftBar#308: shell parameters were over-escaped.

  • swiftbar/SwiftBar#306: a font= parameter blocked execution of the menu entry carrying it.

mas

  • mas-cli/mas#1248: --json output contained unescaped control characters. The permissive decoding in mas’s wrapper stays, for the releases still in the wild.

uv

Nuitka

  • Nuitka/Nuitka#3909: --project ignored the [tool.nuitka] section of pyproject.toml.

  • Nuitka/Nuitka#3750: --project did not recognize the uv_build build backend.

  • Nuitka/Nuitka#3173: the nuitka CLI was not found on Windows when installed with uv.

  • Nuitka/Nuitka#2020: compiled binaries missed charset_normalizer data files, fixed by the matching pull request above.

Addressed by meta-package-manager

The user-facing inventory of what mpm backfills on top of native tools is the augmentations page. The entries below link each backfill to the upstream decision or gap behind it.

Full upgrade

pip never grew an upgrade-all command (pypa/pip#59). mpm synthesizes it by upgrading each outdated package one by one.

Outdated queries

dotnet never implemented dotnet tool list --outdated: an SDK maintainer wrote the spec in dotnet/sdk#22853, which was then closed as not planned. mpm checks the installed tools against NuGet itself, without mutating them.

brew rejects --formula next to --greedy ever since Homebrew/brew#8229 added the selector to brew upgrade, and tolerating the pair as a no-op was declined in Homebrew/brew#16135. mpm shapes its formula and cask outdated queries around the conflict.

Version detection

scoop does not always report a clean version of itself (ScoopInstaller/Scoop#6457, still open). mpm recovers the version from a tag: vX.Y.Z ref or a Bump to version commit subject.

Concurrency

Parallel conda transactions corrupt packages and caches rather than block on a lock, and upstream closed the report as not planned (conda/conda#13037). mpm folds conda, mamba and micromamba into one serial lane instead: see the concurrency page.

Cooldown

yay exposes no hook for a release-age gate, so mpm injects one through an init.lua hook. The request for a less invasive injection point is open at Jguer/yay#2883. The full per-manager inventory of cooldown support is on the cooldown page.

Privilege escalation

Microsoft’s Windows sudo caches no credentials, so each escalation raises its own UAC dialog: the cache request is open at microsoft/sudo#7, and gsudo has the same gap at gerardog/gsudo#378 for its password path. mpm ranks gsudo first and warms whichever escalator can be primed: see the privilege elevation page.

Bar plugin

Xbar mangles quoted version specifiers in dependency metadata (matryer/xbar#831) and truncates a variable default at its first = character (matryer/xbar#832). The plugin therefore pins no version in its metadata and declares its font variables SwiftBar-only. SwiftBar closed the request for plugin input parameters as not planned (swiftbar/SwiftBar#160), so configuration goes through plugin variables instead.

Declined by upstream

Homebrew

The SPDX documents brew generates point their documentNamespace at https://formulae.brew.sh/spdx/... URLs that 404, and publishing the missing files was declined (Homebrew/brew#22741). mpm’s SPDX aggregation copies the value through verbatim, keeping the merged document consistent with its sources.

Open upstream

Nuitka

uv

packageurl-python

  • package-url/packageurl-python#188: add PURL_TYPES and enforce validation of purl types. Until it lands, mpm ships its own purl-type mapping in meta_package_manager/specifier.py.

license-expression

SwiftBar

  • swiftbar/SwiftBar#555: nothing shows that plugin settings continue below the window edge, and the preferences window cannot be resized.

Candidate managers

Reports filed while vetting tools for the benchmark’s queue:

CI infrastructure

Project listings