Changelog¶
5.21.1 (unreleased)¶
[!IMPORTANT] This version is not released yet and is under active development.
[scoop] Fix parsing of
scoopversion to support raw Git output.[gem] Remove hard-coded
gemCLI search path.[mpm] Remap pURL types to managers. Closes #1460.
[mpm] Allow multiple regular expressions to be used for version matching.
5.21.0 (2025-05-28)¶
[mpm] Drop support for Python 3.10.
[mpm] Fix parsing of package specifiers with multiple version separators.
[npm] Fix retrieval of installed packages.
[fwupd] Remove
--offlineparameter which has been silently disabled and has now been remove in v2.0.0 offwupd. Refs #1511.[bar-plugin] Bump minimal Python version to 3.9 to aligns it with macOS default.
[bar-plugin] Check minimal version of SwiftBar is 2.1.2.
[bar-plugin] Reduce size of error messages from 12 to 10.
[mpm] Remove reference to
python3command in documentation to reduce confusion.[mpm] Build
arm64binary for Linux.[mpm] Try to build
arm64binary for Windows but mark it as unstable.[mpm] Use post-build binary test plans to check CLI behavior.
[mpm] Run tests on
windows-2025instead ofwindows-2022.[mpm] Reactivates concurrency limits on tests.
[mpm] Uploads codecov test results.
5.20.0 (2024-11-23)¶
[eopkg] Add support for new
eopkgmanager. Closes #1093.[fwupd] Add support for new
fwupdmanager. Closes #1289.[dnf5] Add support for new
dnf5manager. Refs #1423.[mpm] Hide
--managerand--excludeoptions from help output and silence deprecation warnings. Closes #1358.[mpm] Add detailed documentation on manager selection with configuration file.
[mpm] Fix mixing of manager selector lists and flags.
5.19.0 (2024-11-13)¶
[vscodium] Add support for VSCodium plugins.
[dnf,mas,vscode,yum] Implement
removeoperation.[dnf,yum] Use query template instead of regex parsing to retrieve package data.
[flatpak] Fix parsing of descriptions with spaces.
[uv] Implement
outdatedandcleanupoperation.[uv] Bump minimal requirement to
0.5.0.[uv] Always invoke
uvwith--no-progressparameter.[mas] Bump minimal requirement to
1.8.7.[mas] Reactivate
mastests.[mpm] Add official support for Python 3.13.
[mpm] Drop support for Python 3.9.
[mpm] Replace local platform utilities by
extra-platformsdependency.[mpm] Run tests on Python 3.14-dev.
[mpm] Run tests and actions on
ubuntu-24.04instead ofubuntu-22.04.[mpm] Run tests on
macos-15instead ofmacos-14.[mpm] Add a Sankey diagram of all supported package managers.
5.18.0 (2024-08-02)¶
[mpm] Add new command to export installed packages to a SBOM file in SPDX or CycloneDX standard. Closes #936.
[mpm] Add new dependencies on
spdx-toolsandcyclonedex-python-lib.[mpm] Update list of recognized pURL scheme types.
[apt] Add architecture in package metadata.
5.17.0 (2024-07-07)¶
[uv] Add support for
uvpackage manager for Python.[mpm] Add
--no-<manager-id>negative selection flags for each single manager. Closes #882.[mpm] Deprecate
-m/--managerand-e/--excludeoptions in favor of single--<manager-id>/--no-<manager-id>selectors.[bar-plugin] Identify
uv-based virtual envs to runmpmexecutable.[mpm] Stop CLI execution if manager selection parameters ends up with no managers being retained.
[mpm] Switch from Poetry to
uv.[mpm] Drop support for Python 3.8.
[mpm] Add dependency on
more-itertools.[mpm] Add metadata and icon to binaries produced by Nuitka.
[mpm] Mark Python 3.13-dev tests as stable.
[bar-plugin] Reactivate login shells invocation tests.
[bar-plugin] Skip rendering tests on GitHub.
[mpm] Remove
sys.pathcleaning hack in__main__invocation.[mpm] Reactivate config file test for
restoresubcommand.
5.16.0 (2024-05-24)¶
[winget] Add support for WinGet on Windows. Closes #500 and #1241.
[scoop] Add
mpminstallation instructions withscoop.[bar-plugin] Dynamiccaly search for Python, virtual envs and
mpmexecutable instead of relying on hard-codedPATHenvironment variable.[bar-plugin] Replace
--check-mpmparameter by--search-mpmwith complete results reporting.[mpm] Slim down package by moving unit tests out of the main package.
[mpm] Split
devdependency groups into optionaltest,typinganddocsgroups.[mpm] Remove direct dependency on
clickandmypy.[mpm] Make
typing-extensionsdependency optional.
5.15.0 (2024-02-25)¶
[pkg] Add support for
pkgon FreeBSD.[choco] Bump minimal
chocorequirement to2.0.0.[bar-plugin] Keep original indention of Python traceback.
[mpm] Build
arm64binaries onmacos-14.[mpm] Run tests on
macos-14instead ofmacos-13.[mpm] Run tests on Python 3.13-dev branch.
[mas] Deactivate integration tests for
mason macOS, which always timeout.[mpm] Reintroduce coloring of version. Refs #1152.
[mpm] Use external workflow to manage issues and PRs content-based labelling.
5.14.2 (2024-01-17)¶
[mpm] Fix installation from
pipx. Closes #1154.
5.14.1 (2024-01-16)¶
[bar-plugin] Always call
mpm --versionwithout color.[bar-plugin] Increase robustness of
mpmversion parsing, whether its colored or not.[mpm] Temporary disable version output in color to fix already installed plugin/binary pairs. Closes #1152.
5.14.0 (2024-01-12)¶
[mpm] Add a
-t/--timeoutoption to set the maximum duration of each CLI call. Defaults to 10 minutes.[mpm] Drop support of Python 3.7.
[scoop] Fix parsing of Scoop version.
[mpm] Group platforms by family in the
managerssubcommand.[mpm] Run tests and actions on released Python 3.12 version.
[mpm] Run tests on
macos-13. Remove tests onmacos-12,macos-11,ubuntu-20.04andwindows-2019.[mpm] Run bar plugin unittests in their independent, non-parallel step.
[mpm] Skip testing on intermediate Python versions to speed up CI. Only the oldest and latest supported.
[mpm] Skip configuration-related tests while we investigate test isolation.
[mpm] Fix fetching of full local copy of cask tap in tests to allow for checkout of past formula.
[mpm] Replace unmaintained
bump2versionbybump-my-version.
5.13.1 (2023-05-04)¶
[apt] Fix omission of the final result in an
apt(non-mint) search.[mpm] Defaults to case-insensitive, lexicographical sort of package IDs in
backupsubcommand.[mpm] Update
brewinstallation instructions now thatmpmis available in official Homebrew repository.
5.13.0 (2023-03-31)¶
[mpm] Add new
which/locatesubcommand to search for CLIs in user’s environment.[mpm] Allow usage of
sudofor CLI invocation on all UNIXes, not Linux only. Closes #976.[apt] Fix parsing of search results for
aptandapt-mint. Closes #881 and #966.[mpm] Adds
--run-destructive,--skip-destructive,--run-non-destructiveand--skip-non-destructivecustom options to Pytest.[mpm] Run non-destructive tests in parallel and destructive ones in sequential order.
[mpm] Move all documentation assets to
assetssubfolder.
5.12.0 (2023-02-25)¶
[mpm] Refactor CLI search to allow all matching to be reported. This will open the way to future support of multiple versions of the same package manager. Refs #629.
[mpm] Exclude empty files for our CLI search results to skip Microsoft’s dummy placeholders on Windows. Closes #927.
[mpm] Fix composition of CLI search path on Windows.
[mpm] Deduplicate entries in the list of composed CLI search path.
[mpm] Do not search for CLI in current directory on Windows.
[mpm] Fix case-insensitive highlighting of CLI names in path on Windows.
[yarn] Do not test
yarnon Linux and Windows.[mpm] Do not force test order on Windows.
5.11.7 (2023-02-20)¶
[mpm] Fix overlapping detection of
linuxandwsl2platforms. Closes #944.[pip] Print Python’s own version in debug logs before checking for Pip’s version.
[mpm] Code, comments and documentation style change to conform to new QA workflows based on
ruff.[mpm] Produce dependency graph in Mermaid instead of Graphviz. Add new dev dependency on
sphinxcontrib-mermaid.
5.11.6 (2023-02-12)¶
[mpm] Fix collection of artifact files from their folder.
5.11.5 (2023-02-12)¶
[mpm] Fix collection of artifact files from their folder.
5.11.4 (2023-02-12)¶
[mpm] Fix attachment of binaries to GitHub release.
5.11.3 (2023-02-12)¶
[mpm] Fix attachment of binaries to GitHub release.
5.11.2 (2023-02-11)¶
[mpm] Refine bug report template.
[mpm] Fix attachment of binaries to GitHub release.
5.11.1 (2023-02-10)¶
[mpm] Remove temporary direct dependency on
charset-normalizer, fix has been pushed upstream to Nuitka.[mpm] Rename artifacts attached to releases to benefits from stable URLs pointing to latest downloads.
[mpm] Fix some Windows unittests.
5.11.0 (2023-01-29)¶
[mpm] Unlock run on any Unix-like platform. Closes #872.
[brew] Activate
brewon Windows Subsystem for Linux v2.[choco] Bump minimal
chocorequirement to0.10.4.[mpm] Depends on
charset-normalizer < 3to fix Nuitka compilation.[mpm] Run tests on Python
3.12-dev.[mpm] Reduce verbosity of pre-install steps in GitHub actions.
[mpm] Test
mpmbinaries.[mpm] Force upgrade of Ruby on Windows test runners.
[mpm] Fix installation of old formulae in brew unittests.
[mpm] Force re-detection of
npmCLI location on macOS subcommand unittests.[mpm] Add new GitHub labels for newly supported platforms.
[mpm] Generates dependency graph in Graphviz format.
5.10.2 (2022-12-19)¶
[mpm] Fix uploading of artifacts to GitHub release.
5.10.1 (2022-12-19)¶
[mpm] Fix uploading of Nuitka binaries to GitHub release.
5.10.0 (2022-12-19)¶
[mpm] Build standalone executable for macOS, Linux and Windows. Closes #725.
[mpm] Force default output encoding of Windows executable to fix issue on Windows CI agents.
[bar-plugin] Disable
--bar-plugin-pathoption if CLI not installed from sources.[bar-plugin] Rename and move
meta_package_manager.7h.pybar plugin script to eliminate dynamic module loading.[mpm] Replace dynamic loading of package manager definition by static code.
[mpm] Highlight package manager’s executable name when printing their path in logs.
[mpm] Hint at deprecation of manager in the support matrix.
[mpm] Execute all workflows with Python 3.11.
5.9.0 (2022-11-17)¶
[pacaur] Implement
pacaursupport. Closes #816.[mpm] Allow managers to be flagged as deprecated.
[apm] Flag
apmas deprecated.[mpm] Remove Atom integration tests.
[mpm] Fix propagation of user selection of managers in
upgradeandremovesubcommands.[mpm] Fix production of specifiers in
restoresubcommand.[mpm] Fix installation of Scoop on Windows in unittests.
[mpm] Fix installation of brew on Ubuntu in unittests.
[mpm] Use form-based issue templates for bug reports and new package manager support requests.
[mpm] Remove use of deprecated
::set-outputdirectives and replace them by environment files.
5.8.0 (2022-10-05)¶
[gem] Implement
removeoperation.[mpm] Allow multiple packages to be fed to
install,upgradeandremovesubcommands.[mpm] Allow for a mix of plain,
@-based andpkg:-prefixed purl specifiers oninstall,upgradeandremovesubcommands. Closes #669.[mpm] Pass version specifier to
installoperation inrestoresubcommand.[mpm] Output warning for
installandupgrade_one_clioperations not implementing version parameter.[mpm] Remove GitHub edit link workaround in documentation.
5.7.0 (2022-09-27)¶
5.6.2 (2022-09-27)¶
[mpm] Fix imports from
click.extra.
5.6.1 (2022-09-26)¶
[mpm] Fix import from private
click.extrasubmodule.
5.6.0 (2022-09-26)¶
[brew,cask] Add support for
removeoperation in homebrew.[pacman] Fix
pacmaninstall operation. Closes #766.[bar-plugin] Check for minimal Python version.
[mpm] Run tests on
ubuntu-22.04andmacos-12.[mpm] Remove tests on
macos-10.15andubuntu-18.04, they’re deprecated by GitHub.[mpm] Fix plugin rendering tests.
[mpm] Always run plugin rendering tests in Poetry venv.
[bar-plugin] Add a
--check-mpmoption to tests the mpm binary search phase without running a full outdated package listing.[mpm] Tests Python and plugin invocation in lots of shell configuration.
[mpm] Deactivate login shell tests.
[mpm] Force Homebrew tap repair in tests.
[mpm] Dynamiccaly get location of Homebrew Cask formulas in tests.
[mpm] Install
dnfin tests as ofubuntu-22.04. Closes #563.[mpm] Add
upgrade_alloperation in support matrix.[mpm] Rely on external workflow to set Python version parameters for
mypy,blackandpyupgradejobs.
5.5.1 (2022-07-08)¶
[mpm] Eliminate rendering of
Nonecells to<null>in tables.[mpm] Add a
--refilter/--no-refilteroption tosearchto allow bypassing ofmpmdefault refiltering.[npm] Implements
removeoperation.[npm] Use canonical commands for operations.
[npm] Reduce output verbosity with
--no-fundand--no-auditoptions.[yarn] Implements
removeoperation.[yarn] Fix, document and cleanup all global commands.
[yarn] Set minimal
yarnversion to1.20.0, as it should have been.[bar-plugin] Silence all errors but critical ones on
outdatedinvocation to prevent a failing manager to block rendering of the plugin output.
5.5.0 (2022-07-08)¶
[mpm] Restore behavior of having
upgradeassuming--alloption on a bare call. Closes #715.[cask] Fix parsing of multiple reported installed versions.
[emerge] Locate and validate
qlistandecleanCLI availability.[snap] Fix parsing of empty search results.
[mpm] Allow package name to be empty instead of duplicating it to package ID.
[mpm] Keep the operation matrix on the
readme.mdin sync with current code by inspecting implementation.[mpm] Add type hints. Closes #655.
[mpm] Auto-check type hinting in CI.
[mpm] Render type hints in documentation.
[mpm] Add metadata for easy citation in academic content.
[mpm] Deactivate Atom install in macOS tests as it seems broken.
5.4.0 (2022-06-28)¶
[mpm] Allow global
upgradeof a subset of packages from the command line if no ambiguity is identified.[mpm] Add a
-A/--alloption toupgradeoperation.[mpm] Add a
-d/--duplicatesoption toinstalledoperation to only show packages sharing the same ID across multiple managers.[mpm] Add a global
--descriptionoption but only implement it forsearchoperation.[mpm] Always show description for
--extendedsearch. Closes #503.[mpm] Rename
--package-namesearch option to--id-name-only.[mpm] Add operation aliases:
list→installeduninstall→removeupdate→upgradelock/freeze/snapshot→backup
[mpm] Add a
--mergeoption onbackupoperation to update target TOML file with new installed packages.[mpm] Add an
--update-versionoption onbackupoperation to only update version in the target TOML file.[mpm] Add a
--overwrite/--force/--replaceoption onbackupoperation to force TOML overwrite if destination file exists.[pipx] Implement
outdatedoperation.[pip] Do not wait for user confirmation on
removeoperation.[mpm] Switch package ID and name columns in table rendering.
[mpm] Rename all
*-likelabels to*-basedto help finer identification of families.
5.3.0 (2022-06-25)¶
[paru] Add
parusupport.[pacman,paru,yay] Run
install,upgrade,removeandcleanupoperations withsudo.[brew,cask] Implement extended search on description.
[cargo] Implement
removeoperation.[mas] Fix parsing of variable-length output in
installedandoutdatedoperations.[npm] Apply global variables to all operations.
[bar-plugin] Fix rendering of package managers without outdated packages. Closes #631.
[mpm] Colorize version differences in
outdatedoperation output.[mpm] Add manager homepage URL metadata.
[mpm] Keep results matching description in
--extendedsearch mode.[mpm] Simplify
installed,outdatedandsearchoperation by relying on generators and apackagedataclass.[mpm] Disable workflow grouping and concurrency management.
5.2.0 (2022-06-16)¶
[yay] Add
yaysupport. Refs #527.[mpm,pacman,pip,pipx] Add
removeoperation.[mpm] Add description in search results. Refs #503.
[mpm] Always refilters search results manually to refine gross matchings.
[mpm] Document
brewand Arch Linux installation. Refs #527.[mpm] Benchmark distribution of all
mpmalternatives.[mpm] Group workflow jobs so new commits cancels in-progress execution triggered by previous commits.
[mpm] Run tests on early Python 3.11 releases.
5.1.0 (2022-05-15)¶
5.0.1 (2022-04-28)¶
[apt] Fix commands incompatible with
--yesoption. Closes #625.[mpm] Add
topgradeandpacaptrin the list of benchmarked alternatives.[mpm] Rename
alternativepage tobenchmark.[mpm] Fix label unittests.
5.0.0 (2022-04-25)¶
[zypper] Add
zyppersupport for Suse and OpenSuse. Closes #566.[emerge] Add
emergesupport.[steamcmd] Add
steamcmdsupport. Refs #10.[yum] Add dedicated
yumpackage manager. Refs #415.[bar-plugin] Add new
DEFAULT_FONTandMONOSPACE_FONTvariable.[bar-plugin] Rename all reference of
xbarto the genericbar-pluginlabel.[bar-plugin] Improve search for Python and
mpmexecutable.[bar-plugin] Restructure the plugin ↔ mpm relationship to delegate all plugin layout and rendering logic to
mpm.[bar-plugin] Prevent leaks when modifying environment variables.
[mpm] Allow
installedandoutdatedcommands to be optionally implemented by package managers.[mpm] Add new
--plugin-outputoption tooutdatedcommand.[mpm] Add
tabulateas direct dependency and refactor table alignment in plugin around it.[mpm] Rename
--xbar-plugin-pathoption to--bar-plugin-path.[mpm] Remove
-c/--cli-formatoption.[mpm] Use short-form selection option and fully-qualified path in
mpm-based upgrade-all CLIs produced byoutdatedcommand.[mpm] Add dedicated execution path for running sudo-prefixed commands.
[mpm] Fix local overriding of CLI parameters leading to missing
sudopre-command. Closes #579.[mpm] Use string highlighting code from
click-extra >= 2.1.0.[mpm] Add edit links to documentation.
4.13.1 (2022-04-17)¶
[apt] Add missing
sudopre-commands foraptcalls that requires it. Closes #496 and #579.[snap] Fix command argument order. Address #579.
[bar-plugin] Fix location of
mpmbinary on Apple Silicon machines.[mpm] Replace
sphinx_tabsbysphinx-design.[mpm] Add SwiftBar plugin screenshots.
[mpm] Remove date-based shallowing of Homebrew git repository in unittests and considers the local runner copy to already be unshallowed.
4.13.0 (2022-04-16)¶
[pacman] Add support for
pacman. Closes #416.[apt-mint] Fix
--apt-mintshortcut option.[bar-plugin] Add support for SwiftBar.
[bar-plugin] Add new
TABLE_RENDERINGoption to plugin.[bar-plugin] Improve alignment of labels in monospaced font rendering.
[bar-plugin] Tweak icons.
[mpm] Allow the
meta_package_managermodule to be directly executed.[mpm] Add
--xbar-plugin-pathoption.[mpm] Fix normalization of CLI arguments.
[mpm] Fix file not found error on non-Windows platform during version checking.
4.12.1 (2022-04-05)¶
[mpm] Make CLI path evaluation more robust on Windows. Closes #542.
4.12.0 (2022-04-04)¶
4.11.0 (2022-04-03)¶
[brew,cask] Do not let homebrew auto-update on other commands. Refs #36.
[brew,cask] Disable analytics and env hints in logs.
[bar-plugin] Fix log verbosity and unittests for xbar plugin.
[mpm] Show in debug logs the extra environment variable used for CLIs.
[mpm] Enforce code structure in package manager definition files.
[mpm] Fix documentation generation.
4.10.0 (2022-03-31)¶
[mpm] Allow for package managers to simultaneously set a list of pre-commands and environment variables, as well as global arguments before and after the custom ones.
[mpm] Always run unittest in parallel. Adds development dependency on
pytest-xdistandpsutil.[mpm] Use the
tomllibfrom the standard library starting with Python 3.11.[mpm] Cap
click-extrarequirement to<1.7.0to fix regression. Closes #518.
4.9.10 (2022-03-09)¶
[mpm] Fix execution error on Python 3.10 by updating
click-extra. Closes #467.[mpm] Reactivate all unittests on Python 3.10.
[mpm] Remove artificial capping of Python 3.9 to some workflows.
[mpm] Use external workflow for dependency graph generation and Python code modernization.
[mpm] Remove direct dependency on
cloup,simplejsonandpipdeptree.
4.9.9 (2022-01-15)¶
[mpm] Fix upload of build artifacts in GitHub release.
4.9.8 (2022-01-15)¶
[mpm] Fix propagation of build artifacts to GitHub release and PyPi.
[mpm] Fix test of labelling rules.
[mpm] Remove local dependency on
graphviznow that fixes were pushed upstream.
4.9.7 (2022-01-11)¶
[mpm] Add release version in artifacts produced by Poetry builds.
[mpm] Pass local PyPi token to reused workflow to fix publishing.
4.9.6 (2022-01-11)¶
[mpm] Fix detection of Poetry in build workflow.
4.9.5 (2022-01-11)¶
[mpm] Use external workflow for package building and publishing via Poetry.
[mpm] Reused external label maintenance workflows and definitions.
[mpm] Add our custom labels to external syncing workflow.
[mpm] Auto-label sponsors.
[mpm] Remove changelog code left-overs.
[mpm] Aligns content of all PRs locally produced by workflows.
4.9.4 (2022-01-04)¶
[mpm] Re-integrate artifacts in GitHub release on tagging.
4.9.3 (2022-01-04)¶
[mpm] Fix GitHub release’s content update.
4.9.2 (2022-01-04)¶
[mpm] Regenerate GitHub release content body dynamiccaly on tagging.
4.9.1 (2022-01-04)¶
[mpm] Automate minor and major version bump.
[mpm] Automate release preparation workflow.
[mpm] Trigger tagging, build and version bump on release event.
[mpm] Add a debug workflow for troubleshooting.
4.9.0 (2022-01-03)¶
[mpm] Add single manager selector aliases:
--apm,--apt,--apt-mint,--brew,--cask.--choco,--composer,--flatpak,--gem,--mas,--npm,--opkg,--pip,--snap,--vscodeand--yarn.[brew,cask] Thorough cleanup: call
autoremovecommands to remove unused dependencies and use--prune=allto scrub the whole cache.[mpm] Switch default table rendering to
rounded_outline.[mpm] Rely on
click-extrafor table rendering and tests.[mpm] Remove direct dependencies on
click-logandcli-helpers.[mpm] Automate post-release version bump.
[mpm] Outsource some workflow definition to external repository.
[mpm] Fix generation of dependency graph.
4.8.0 (2021-11-01)¶
[mpm] Add
--color/--no-color(aliased to--ansi/--no-ansi) flags.[mpm] Forces no color on JSON output.
[mpm] Group commands and options in help screen.
[mpm] Colorize options, choices, metavars and default values in help screens.
[mpm] Reintroduce coloring of
--versionoption.[mpm] Add dependency on
click-extra.[mpm] Use
sphinx-clickto auto-generate CLI documentation.[mpm] Autofix Markdown content with
mdformat.[mpm] Simplify project management by abandoning the dual use of
main/developbranches.
4.7.0 (2021-10-13)¶
[mpm] Add help screen coloring.
[mpm] Change documentation theme from classic RTD to furo.
[mpm] Move documentation from
readthedocs.orgtogithub.io.[mpm] Rewrite documentation from rST to MyST.
[mpm] Add dependency on
cloup.[mpm] Removes
click-help-colorsdependency.[mpm] Run tests on Python 3.10.
[mpm] Add a contribution guide stub in documentation. Closes #276.
4.6.0 (2021-10-04)¶
[mpm] Implements XKCD 1654. Closes #10.
[mpm] Add
-x/--xkcdoption to forces manager selection.[mpm] Let
-m/--managermulti-option keep order.
4.5.0 (2021-09-30)¶
[choco] Add Chocolatey package manager.
[mpm] Skip by default the evaluation of package managers not supported on the user’s platform. Closes #278.
[mpm] Add a
-a/--all-managersoption to force the evaluation of all managers.[mpm] Fix highlighting of substrings in search results.
4.4.0 (2021-09-27)¶
[mpm] Add a global
-d/--dry-runoption.[apt] Add dedicated
apt-mintmanager to handle the special case ofapton Linux Mint.[bar-plugin] Let xbar plugin check minimal mpm version requirement.
[mpm] Use regexpes to extract package manager versions.
[mpm] Add beta
windows-2022CI/CD build target.[mpm] Remove all the unused utilities to discard some table rendering on Windows.
4.3.0 (2021-09-25)¶
[mpm] Add new
installcommand. Closes #21.[vscode] Add support for Visual Studio Code plugins.
[mpm] Finish complete
restorecommand implementation. Closes #38.[mpm] Remove un-enforced poetry-like caret-based version specification from TOML backup files.
[mpm] Forces logger state reset before each CLI call in unittests.
4.2.0 (2021-09-21)¶
[mpm] Add support for TOML configuration file. Closes #66.
[mpm] Add
-C/--configoption to point to specific configuration file.[mpm] Upgrade to Click 8.x.
[mpm] Add support for
psql_unicodeandminimaltable format.[mpm] Set default table format to
psql_unicodeinstead offancy_gridto reduce visual noise.[mpm] Add support for environment variables for all parameters, prefixed with
MPM_.[mpm] Let Click produce default values in help screen.
[mpm] Replace
tomlkitdependency bytomliandtomli_w.[bar-plugin] Fix xbar plugin output format.
[bar-plugin] Rename
VAR_SUBMENU_lAYOUTenvironment variable toVAR_SUBMENU_LAYOUT.[mpm] Remove support for
--cli-format bitbaroption. Usexbarvalue instead.
4.1.0 (2021-05-01)¶
[bar-plugin] Add new
Submenu layoutboolean option in xbar plugin UI.[bar-plugin] Rename
XBAR_MPM_SUBMENUenvironment variable toVAR_SUBMENU_lAYOUT.[mpm] Allow search of multiple CLI names for a package manager.
[pip] Fix search of
python3binary on macOS. Closes #247.
4.0.0 (2021-04-27)¶
[bar-plugin] Upgrade BitBar plugin to new xbar format.
[bar-plugin] Drop xbar plugin requirement on Python 2.x and bump it up to Python 3.7.3.
[bar-plugin] Update references of BitBar to xbar.
[bar-plugin] Rename
BITBAR_MPM_SUBMENUenvironment variable toXBAR_MPM_SUBMENU.[mpm] Rename
--cli-format bitbaroption to--cli-format xbar.[mpm] Auto-generate API documentation via a GitHub action workflow.
[mpm] Only trigger dependency graph update on tagging to reduce noise.
[mpm] Re-introduce
isort.
3.6.0 (2021-01-03)¶
[brew] Add support for
brewon Linux.[brew,cask] Bump minimal requirement of
brewto2.7.0.[cask] Address deprecation of
caskCLI subcommands.[pip]
pip searchhas been disabled by maintainers because of server-side high-load.[mpm] Add test runs against new OSes and distributions:
ubuntu-18.04andmacos-11.0.[mpm] Remove
pycodestylenow that we rely onblack.[mpm] Add emoji to issue labels.
3.5.2 (2020-10-29)¶
[mpm] Run tests on Python 3.9.
[mpm] Upgrade to
Poetry 1.1.0.[mpm] Colorize version screen and add debug data.
[mpm] Test publishing to PyPi in dry-run mode by the way of Poetry.
[mpm] Make all keyword-based choice parameters (
--manager,--exclude,--output-format,--sort-byand--cli-format) case-insensitive.[mpm] Pin versions of OSes and distributions in CI workflows to
ubuntu-20.04,macos-10.15andwindows-2019.[mpm] Always print errors in unittest’s CLI calls.
[mpm] Slow-down tests to prevent PyPi rate-limiting on live API.
[mpm] Fix
brewsetup on macOS CI runners.[mpm] Fix
npmsetup in Ubuntu 18.04 and 20.04 CI runners.[mpm] Use latest
Atomversion in Ubuntu CI runners.
3.5.1 (2020-10-03)¶
[mpm] Defaults to
--continue-on-errorinstead of stopping.[mpm] Force checking of CLI being a file.
[mpm] Auto-optimize images.
[mpm] Auto-lock closed issues and PRs after a moment of inactivity.
3.5.0 (2020-09-20)¶
[mpm] Fix
--stop-on-errorparameter: it was never taken into account.[brew,cask] Bump minimal requirement of
brewto2.5.0.[brew,cask] Fix warning to deprecated options.
[npm] Always fix JSON parsing on error for any npm subcommand.
3.4.2 (2020-09-13)¶
[brew,cask] Do not mix-up brew and cask upgrades.
[npm] Skip parsing of JSON results on error.
3.4.1 (2020-09-02)¶
[mpm] Rename
masterbranch tomain.
3.4.0 (2020-08-18)¶
[yarn] Set minimal requirement to
1.20.0.[yarn] Fix deprecated global arguments.
[bar-plugin] Force refresh of local package databases before fetching outdated ones.
[mpm] Add utilities to read a config TOML file. Refs #66.
[mpm] Auto-format Python code with Black.
[mpm] Move
pytestconfig fromsetup.pytopyproject.toml.[mpm] Removes
isort.[mpm] Auto-update Python’s dependencies.
[mpm] Auto-update GitHub actions.
[mpm] Auto-update
.gitignorefile.[mpm] Auto-update
.mailmapfile.[mpm] Lint all YAML files. Add dependency on
yamllintpackage.[mpm] Removes
requires.ioand Scrutinizer badges.[mpm] Revert to
pipdeptreeto produce package dependency graph.
3.3.0 (2020-06-23)¶
[bar-plugin] Each entry in the drop-down menu can now be called into a terminal to track the execution by holding the
Optionkey.[bar-plugin] Fix rendering of upgrade CLI in Bitbar dialect.
[mpm] Hint for lack of
syncandcleanupsupport by managers.[mpm] Do not print table headers if there is no row to print.
[mpm] Always print non-fatal
<stderr>output as warning mode.[mpm] Skip table rendering tests if no table is printed to stdout. Fixes flacky tests.
[mpm] Replace internal helpers with upstreamed
boltons 20.2.0utils.[mpm] Force test marked as
xfailcount as failure if they succeed.[mpm] Always check wheel content.
[mpm] Automate creation of GitHub release.
[mpm] Automate publishing of package to PyPi on tagging.
[mpm] Save build artifacts on each CI runs.
[mpm] Auto-sort module imports.
[mpm] Auto-fix common typos.
[mpm] Lint JSON files.
[mpm] Automate GitHub label generation and synchronization.
[mpm] Automatically applies labels on PRs and issues depending on their changed files and content.
[mpm] Check label rules against manager definitions. Adds development dependency on
PyYAML.
3.2.0 (2020-05-31)¶
[snap] Add support for
snapon Linux.[cask] Rely on JSON output to fetch outdated packages.
[brew,cask] Bump minimal requirement to 2.2.15.
[pip] Remove
pip2/pip3distinctions, use system’s python and callpipmodule.[windows] Allow discarding of some table rendering on Windows.
[mpm] Add
--time/--no-timeflag to show elapsed execution time. Closes #9.[mpm] Print table rendering, stats and timing in console output instead of logger to allow them to be greppable.
[bar-plugin] Test plugin with Python 2.7.
[mpm] Allow for manager-specific search path to help hunting down CLIs.
[mpm] Highlight CLI and indent results in debug output.
[mpm] Bump dependency to
pylint 2.5andcli-helpers 2.0.[mpm] Use local copy of
boltonsutils while we wait for upstream release.[mpm] Move pylint config from
setup.cfgtopyproject.toml.[mpm] Fail CI and QA checks if pylint score lower than 9.
[mpm] Add more platform definition unittests.
[mpm] Unittests all rendering modes in all subcommands.
[mpm] Randomize unittests.
[mpm] Drop support of Python 3.6.
[mpm] Use group-tabs in Sphinx docs.
3.1.0 (2020-04-02)¶
[mpm] Add new
cleanupcommand. Closes #5.[mpm] Improve table sorting with new version-aware tokenizer.
[mpm] Highlight manager IDs depending on their availability in
managerscommand.[gem] Ignore
default:prefix on package version parsing.[mpm] Remove
packagingdependency. Rely on internal version parsing.[mpm] Add new
--exactand--extendedparameters tosearchcommand.[mpm] Highlight search matches in console output.
[mas] Retrieve version in search results.
[mas] Bump minimal version to
1.6.1.[mpm] Allow stats to be printed for
backupcommand.[gem] Bump minimal requirement to
2.5.0.
3.0.0 (2020-03-25)¶
[mpm] Add new
backupand dummyrestorecommands to respectively dump and load up list of installed packages to/from a TOML file. Refs #38.[mpm] Add dependency on
tomlkit.[yarn] Add support for
yarnpackage manager for Linux, macOS and Windows.[yarn] Install yarn on all unittest platforms.
[mpm] Allow exclusion of a subset of package managers. Closes #45.
[pip] Collect installer metadata on listing.
[pip] Bump minimal requirement of
pipto10.0.*.[mpm] Prepend
/usr/local/binto cli search path.[npm]
install package@versioninstead ofupdate package.[npm] Skip update notifier.
[brew,cask] Allow independent search for each manager.
[brew,cask] Bump minimal requirement of to
2.2.9.[mpm] Allow sorting restuls by packages, managers or version. Closes #35 and #37.
[mpm] Add shell completion for Bash, Zsh and Fish.
[mpm] Do not force sync when calling outdated. Closes #36.
[apt] Fallback on
apt version aptwhen looking for version. Closes #57 and #52.[mpm] Removes all copyright dates.
[mpm] Replace unmaintained
bumpversionbybump2version.[mpm] Raise requirement to
click 7.1.[mpm] Raise requirement to
boltons >= 20.0.
2.9.0 (2020-03-18)¶
[mpm] Drop support of Python 2.7, 3.4 and 3.5. Add support for Python 3.8.
[windows] Add support for
apm,composer,gem,npmandpip2on Windows.[linux] Add support for
Flatpakandopkgpackage managers on Linux.[gem] Force Ruby
gemto install packages to user-install by default. Refs #58.[pip] Force Python
pipupgrade to user-installed packages. Refs #58.[brew] Fix call to
brew upgrade --cleanup. Refs #50.[mpm] Switch from Travis to GitHub actions.
[composer] Install
composerin all platforms CI runners.[linux] Install
flatpakin Linux CI runner.[windows] Install
apmin Windows CI runner.[mpm] Bump requirement to
click-log >= 0.3.[mpm] Add non-blocking Pylint code quality checks in CI.
[mpm] Check for conflicting dependencies in CI.
[mpm] Use Poetry for package and virtualenv management.
[mpm] Replace
pipdeptreeby Poetry CLI output.[mpm] Remove
backports.shutil_whichdependency.[mpm] Update
.gitignore.[mpm] Drop all Python 3.0
__future__imports.[mpm] Add detailed usage CLI page in documentation.
2.8.0 (2019-01-03)¶
[composer] Add support for PHP
composer.[cask] Remove
cask-specificversion,syncandsearchcommand. Closes #47.[brew] Vanilla brew and cask CLIs now shares the same version requirements.
[brew] Bump minimal requirement of
brewandcaskto1.7.4.[mpm] Activate unittests in Python 3.7.
[mpm] Drop Travis unittests on deprecated Ubuntu Precise targets and vintage Mac OS X 10.10 and 10.11.
[mpm] Use latest macOS 10.12 and 10.13 Travis images.
2.7.0 (2018-04-02)¶
[mpm] Add new
--ignore-auto-updatesand--include-auto-updatesboolean flags.[mpm] Support even fancier table output rendering, including
csvandhtml.[mpm] Depends on
cli-helperspackage to render tables.[mpm] Removes direct dependency on
tabulate.[cask] Fix minimal version check for
cask. Closes #41 and #44.[bar-plugin] Do not run BitBar plugin unittests but on macOS.
2.6.1 (2017-11-05)¶
[mpm] Fix Travis unittests.
2.6.0 (2017-09-11)¶
[apt] Add support for
apton Linux systems.[pip] Use pip 9.0 JSON output. Closes #18.
[pip] Bump minimal requirement of
pipto9.0.*.[cask] Use new
brew cask outdatedcommand.[cask] Remove usage of deprecated
brew cask updatecommand.[cask] Bump minimal requirement of
caskto1.1.12.[mpm] Add dependency on
simplejson.[mpm] Bump requirement to
click_log >= 0.2.0. Closes #39.[mpm] Replace
nosebypytest.[mpm] Only notify by mail of test failures.
2.5.0 (2017-03-01)¶
[mpm] Auto-detect location of manager CLI on the system.
[mpm] Add new
searchoperation. Closes #22.[npm] Bump minimal requirement of
npmto4.0.*.[mpm] Rename
listoperation toinstalled.[apm,gem,linux,npm] Allow use of
apm,gemandnpmmanagers on Linux.[mpm] Add new
--stats/--no-statsboolean flags. Closes #8.[mpm] Add new
--stop-on-error/--continue-on-errorparameters to make CLI errors either blocking or non-blocking.[mpm] Allow reporting of several CLI errors by managers.
[mpm] Allow selection of a subset of managers.
[mpm] Do not force a
syncbefore listing installed packages in CLI.[mpm] Rework API documentation.
[cask] Add unittest to cover unicode names for Cask packages. Closes #16.
[cask] Add unittest to cover Cask packages with multiple names. Refs #26.
[mpm] Drop support of Python 3.3.
2.4.0 (2017-01-28)¶
[mpm] Add new
listoperation. Closes #20.[mas] Fix upgrade of
maspackages. Closes #32.[bar-plugin] Document BitBar plugin release process.
[mpm] Colorize check-marks in CLI output.
[mpm] Decouple
syncandoutdatedactions in all managers.[mpm] Cache output of
outdatedcommand.[mpm] Add global todo list in documentation.
[mpm] Bump requirement to
boltons >= 17.0.0for Python 3.3 compatibility.
2.3.0 (2017-01-15)¶
[mpm] Add Sphinx documentation. Closes #24.
[mpm] Add installation instructions. Closes #19.
[mpm] Add a list of Falsehoods Programmers Believe About Package Managers.
[mpm] Add a
.mailmapconfig file to consolidate contributor’s identity.[bar-plugin] Make it easier to change the font, size and color of text in BitBar plugin.
[bar-plugin] Move error icon in BitBar plugin to the front of manager name.
[cask] Fix parsing of
caskpackages with multiple names. Closes #26.[bar-plugin] Move BitBar plugin documentation to dedicated page.
[mpm] Fix exceptions when commands gives no output. Closes #29 and #31.
[cask] Fix
cask updatedeprecation warning. Closes #28.[mpm] Activate unittests in Python 3.6.
[mpm] Replace double by single-width characters in
mpmoutput to fix table misalignment. Closes #30.
2.2.0 (2016-12-25)¶
[mpm] Rename
supportedproperty of managers tofresh.[mpm] Allow restriction of package managers to a platform. Closes #7.
[mpm] Include
supportedproperty inmpm managerssub-command.[bar-plugin] Add optional submenu rendering for BitBar plugin. Closes #23.
[bar-plugin] Move
Upgrade allmenu entry to the bottom of each section in BitBar plugin.[pip] Allow destructive unittests in Travis CI jobs.
[pip] Allow usage of
pip2andpip3managers on Linux.[mpm] Print current platform in debug messages.
[mpm] Unittest detection of managers on each platform.
2.1.1 (2016-12-17)¶
[brew,cask] Fix parsing of non-point releases of
brewandcaskversions. Closes #15.[bar-plugin] Do not render emoji in BitBar plugin menu entries.
[bar-plugin] Do not trim error messages rendered in BitBar plugin.
[mpm] Do not strip CLI output. Keep original format.
[mpm] Fix full changelog link.
2.1.0 (2016-12-14)¶
[bar-plugin] Adjust rendering of BitBar plugin errors.
[mpm] Fix fetching of log level names in Python 3.4+.
[mpm] Print CLI output in unittests.
[mpm] Print more debug info in unittests when CLI produce tracebacks.
[macos] Drop support and unittests on Mac OS X 10.9.
[macos] Add new macOS 10.12 target for Travis CI builds.
[bar-plugin] Move BitBar plugin within the Python module.
[mpm] Show unmet version requirements in table output for
mpm managerssub-command.[mpm] Fix duplicates in outdated packages by indexing them by ID.
[bar-plugin] Unittest simple call of BitBar plugin.
[mpm] Always print the raw, un-normalized version of managers, as reported by themselves.
[mpm] Fetch version of all managers.
[mpm] Make manager version mandatory.
[mpm] Bump requirement to
readme_renderer >= 16.0.[mpm] Always remove ANSI codes from CLI output.
[mpm] Fix rendering of unicode logs.
[mpm] Bump requirement to
click_log >= 0.1.5.[bar-plugin] Force
LANGenvironment variable toen_US.UTF-8.[bar-plugin,mpm] Share same code path for CLI execution between
mpmand BitBar plugin.[mpm] Add a
-d/--dry-runoption tompm upgradesub-command.[macos] Remove hard-requirement on
macOSplatform. Refs #7.[macos,mpm] Fix upgrade of
setuptoolsinmacOSand Python 3.3 Travis jobs.
2.0.0 (2016-12-04)¶
[bar-plugin] Rewrite BitBar plugin based on
mpm. Closes #13.[bar-plugin] Render errors with a monospaced font in BitBar plugin.
[mpm] Add missing
CHANGES.rstinMANIFEST.in.[mpm] Make wheels generated under Python 2 environnment available for Python 3 too.
[mpm] Only show latest changes in the long description of the package instead of the full changelog.
[mpm] Add link to full changelog in package’s long description.
[mpm] Bump trove classifiers status out of beta.
[mpm] Fix package keywords.
[mpm] Bump minimal
pycodestylerequirement to 2.1.0.[mpm] Always check for package metadata in Travis CI jobs.
[mpm] Add
upgrade_all_clifield for each package manager in JSON output ofmpm outdatedcommand.
1.12.0 (2016-12-03)¶
[mpm] Rename
mpm updatecommand tompm upgrade.[mpm] Allow restriction to only one package manager for each sub-command. Closes #12.
[mpm] Differentiate packages names and IDs. Closes #11.
[mpm] Sort list of outdated packages by lower-cased package names first.
[mpm] Add
upgrade_clifield for each outdated packages in JSON output.[bar-plugin,mpm] Allow user to choose rendering of
upgrade_clifield to either one-liner, fragments or BitBar format. Closes #14.[mpm] Include errors reported by each manager in JSON output of
mpm outdatedcommand.[cask] Fix parsing of multiple versions of
caskinstalled packages.[brew,cask] Fix lexicographical sorting of
brewandcaskpackage versions.[mpm] Fix fall-back to iterative full upgrade command.
[mpm] Fix computation of outdated packages statistics.
1.11.0 (2016-11-30)¶
[mpm] Allow rendering of output data into
json.[mpm] Sort list of outdated packages by lower-cased package IDs.
[brew,cask] Bump minimal requirement of
brewto 1.0.0 andcaskto 1.1.0.[cask] Fix fetching of outdated
caskpackages.[cask] Fix upgrade of
caskpackages.
1.10.0 (2016-10-04)¶
[mpm] Add optional
versionproperty on package manager definitions.[mpm] Allow each package manager to set requirement on its own version.
[mas] Let
masreport its own version.[mas] Bump minimal requirement of
masto 1.3.1.[mas] Fetch currently installed version from
mas. Closes #4.[mas] Fix parsing of
maspackage versions after the 1.3.1 release.[mpm] Cache lazy properties to speed metadata computation.
[mpm] Shows detailed state of package managers in CLI.
1.9.0 (2016-09-23)¶
[mpm] Fix
bumpversionconfiguration to targetCHANGES.rstinstead ofREADME.rst.[mpm] Render list of detected managers in a table.
[macos] Use
condain Travis tests to install specific versions of Python across the range of macOS workers.[macos] Drop support for PyPy while we search a way to install it on macOS with Travis.
[mpm] Let
mpmauto-detect package manager definitions.[mpm] Show package manager IDs in
mpm managersCLI output.[mpm] Rename
package_manager.7h.pyBitBar plugin tometa_package_manager.7h.py.[mpm] Give each package manager its own dedicated short string ID.
[mpm] Keep a cache of instantiated package manager.
[mpm] Add unittests around package manager definitions.
[mpm] Do not display location of inactive managers, even if hard-coded.
[mpm] Split-up CLI-producing methods and CLI running methods in
PackageManagerbase class.[mpm] Add a new
updateCLI sub-command.[mpm] Add a new
syncCLI sub-command.[mpm] Rename managers’
activeproperty toavailable.[mpm] Move all package manager definitions in a dedicated folder.
[mpm] Add simple CLI unittests. Closes #2.
[mpm] Implement
outdatedCLI sub-command.[mpm] Allow selection of table rendering.
[cask] Fix parsing of unversioned cask packages. Closes #6.
1.8.0 (2016-08-22)¶
[mpm] Move the plugin to its own repository.
[mpm] Rename
package-managerproject tometa-package-manager.[mpm] Add a
README.rstfile.[mpm] License under GPLv2+.
[mpm] Add
.gitignoreconfig.[mpm] Add Python package skeleton. Closes #1.
[mpm] Split
CHANGES.rstout ofREADME.rst.[mpm] Add Travis CI configuration.
[mpm] Use semver-like 3-components version number.
[bar-plugin] Copy all BitBar plugin code to Python module.
[mpm] Give each supported package manager its own module file.
[mpm] Add minimal
mpmmeta CLI to list supported package managers.[mpm] Add default
bumpversion,isort,nosetests,coverage,pep8andpylintdefault configuration.
1.7.0 (2016-08-16)¶
[brew] Fix issues with
$PATHnot having Homebrew/Macports.[pip] New workaround for full
pipupgrade command.[cask] Workaround for Homebrew Cask full upgrade command.
[mpm] Grammar fix when 0 packages need to be upgraded.
1.6.0 (2016-08-10)¶
[pip] Work around the lacks of full
pipupgrade command.[mpm] Fix
UnicodeDecodeErroron parsing CLI output.
1.5.0 (2016-07-25)¶
[mas] Add support for
mas.[mpm] Don’t show all
stderraserr(check return code for error state).
1.4.0 (2016-07-10)¶
[mpm] Don’t attempt to parse empty lines.
[npm] Check for linked
npmpackages.[gem] Support system or Homebrew Ruby Gems (with proper
sudosetup).
1.3.0 (2016-07-09)¶
[mpm] Add changelog.
[mpm] Add reference to package manager’s issues.
[cask] Force Cask update before evaluating available packages.
[mpm] Add sample of command output as version parsing can be tricky.
1.2.0 (2016-07-08)¶
[apm,gem,npm,pip] Add support for both
pip2andpip3, Node’snpm, Atom’sapm, Ruby’sgem.[cask] Fixup
brew caskchecking.[mpm] Don’t die on errors.
1.1.0 (2016-07-07)¶
[pip] Add support for Python’s
pip.
1.0.0 (2016-07-05)¶
[mpm] Initial public release.
[brew,cask] Add support for Homebrew and Cask.