Changelog¶
5.20.0 (unreleased)¶
[!IMPORTANT] This version is not released yet and is under active development.
[eopkg] Add support for new
eopkg
manager. Closes #1093.[fwupd] Add support for new
fwupd
manager. Closes #1289.[dnf5] Add support for new
dnf5
manager. Refs #1423.[mpm] Hide
--manager
and--exclude
options 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
remove
operation.[dnf,yum] Use query template instead of regex parsing to retrieve package data.
[flatpak] Fix parsing of descriptions with spaces.
[uv] Implement
outdated
andcleanup
operation.[uv] Bump minimal requirement to
0.5.0
.[uv] Always invoke
uv
with--no-progress
parameter.[mas] Bump minimal requirement to
1.8.7
.[mas] Reactivate
mas
tests.[mpm] Add official support for Python 3.13.
[mpm] Drop support for Python 3.9.
[mpm] Replace local platform utilities by
extra-platforms
dependency.[mpm] Run tests on Python 3.14-dev.
[mpm] Run tests and actions on
ubuntu-24.04
instead ofubuntu-22.04
.[mpm] Run tests on
macos-15
instead 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-tools
andcyclonedex-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
uv
package manager for Python.[mpm] Add
--no-<manager-id>
negative selection flags for each single manager. Closes #882.[mpm] Deprecate
-m
/--manager
and-e
/--exclude
options in favor of single--<manager-id>
/--no-<manager-id>
selectors.[bar-plugin] Identify
uv
-based virtual envs to runmpm
executable.[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.path
cleaning hack in__main__
invocation.[mpm] Reactivate config file test for
restore
subcommand.
5.16.0 (2024-05-24)¶
[winget] Add support for WinGet on Windows. Closes #500 and #1241.
[scoop] Add
mpm
installation instructions withscoop
.[bar-plugin] Dynamiccaly search for Python, virtual envs and
mpm
executable instead of relying on hard-codedPATH
environment variable.[bar-plugin] Replace
--check-mpm
parameter by--search-mpm
with complete results reporting.[mpm] Slim down package by moving unit tests out of the main package.
[mpm] Split
dev
dependency groups into optionaltest
,typing
anddocs
groups.[mpm] Remove direct dependency on
click
andmypy
.[mpm] Make
typing-extensions
dependency optional.
5.15.0 (2024-02-25)¶
[pkg] Add support for
pkg
on FreeBSD.[choco] Bump minimal
choco
requirement to2.0.0
.[bar-plugin] Keep original indention of Python traceback.
[mpm] Build
arm64
binaries onmacos-14
.[mpm] Run tests on
macos-14
instead ofmacos-13
.[mpm] Run tests on Python 3.13-dev branch.
[mas] Deactivate integration tests for
mas
on 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 --version
without color.[bar-plugin] Increase robustness of
mpm
version 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
/--timeout
option 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
managers
subcommand.[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.04
andwindows-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
bump2version
bybump-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
backup
subcommand.[mpm] Update
brew
installation instructions now thatmpm
is available in official Homebrew repository.
5.13.0 (2023-03-31)¶
[mpm] Add new
which
/locate
subcommand to search for CLIs in user’s environment.[mpm] Allow usage of
sudo
for CLI invocation on all UNIXes, not Linux only. Closes #976.[apt] Fix parsing of search results for
apt
andapt-mint
. Closes #881 and #966.[mpm] Adds
--run-destructive
,--skip-destructive
,--run-non-destructive
and--skip-non-destructive
custom options to Pytest.[mpm] Run non-destructive tests in parallel and destructive ones in sequential order.
[mpm] Move all documentation assets to
assets
subfolder.
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
yarn
on Linux and Windows.[mpm] Do not force test order on Windows.
5.11.7 (2023-02-20)¶
[mpm] Fix overlapping detection of
linux
andwsl2
platforms. 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
brew
on Windows Subsystem for Linux v2.[choco] Bump minimal
choco
requirement to0.10.4
.[mpm] Depends on
charset-normalizer < 3
to fix Nuitka compilation.[mpm] Run tests on Python
3.12-dev
.[mpm] Reduce verbosity of pre-install steps in GitHub actions.
[mpm] Test
mpm
binaries.[mpm] Force upgrade of Ruby on Windows test runners.
[mpm] Fix installation of old formulae in brew unittests.
[mpm] Force re-detection of
npm
CLI 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-path
option if CLI not installed from sources.[bar-plugin] Rename and move
meta_package_manager.7h.py
bar 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
pacaur
support. Closes #816.[mpm] Allow managers to be flagged as deprecated.
[apm] Flag
apm
as deprecated.[mpm] Remove Atom integration tests.
[mpm] Fix propagation of user selection of managers in
upgrade
andremove
subcommands.[mpm] Fix production of specifiers in
restore
subcommand.[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-output
directives and replace them by environment files.
5.8.0 (2022-10-05)¶
[gem] Implement
remove
operation.[mpm] Allow multiple packages to be fed to
install
,upgrade
andremove
subcommands.[mpm] Allow for a mix of plain,
@
-based andpkg:
-prefixed purl specifiers oninstall
,upgrade
andremove
subcommands. Closes #669.[mpm] Pass version specifier to
install
operation inrestore
subcommand.[mpm] Output warning for
install
andupgrade_one_cli
operations 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.extra
submodule.
5.6.0 (2022-09-26)¶
[brew,cask] Add support for
remove
operation in homebrew.[pacman] Fix
pacman
install operation. Closes #766.[bar-plugin] Check for minimal Python version.
[mpm] Run tests on
ubuntu-22.04
andmacos-12
.[mpm] Remove tests on
macos-10.15
andubuntu-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-mpm
option 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
dnf
in tests as ofubuntu-22.04
. Closes #563.[mpm] Add
upgrade_all
operation in support matrix.[mpm] Rely on external workflow to set Python version parameters for
mypy
,black
andpyupgrade
jobs.
5.5.1 (2022-07-08)¶
[mpm] Eliminate rendering of
None
cells to<null>
in tables.[mpm] Add a
--refilter
/--no-refilter
option tosearch
to allow bypassing ofmpm
default refiltering.[npm] Implements
remove
operation.[npm] Use canonical commands for operations.
[npm] Reduce output verbosity with
--no-fund
and--no-audit
options.[yarn] Implements
remove
operation.[yarn] Fix, document and cleanup all global commands.
[yarn] Set minimal
yarn
version to1.20.0
, as it should have been.[bar-plugin] Silence all errors but critical ones on
outdated
invocation to prevent a failing manager to block rendering of the plugin output.
5.5.0 (2022-07-08)¶
[mpm] Restore behavior of having
upgrade
assuming--all
option on a bare call. Closes #715.[cask] Fix parsing of multiple reported installed versions.
[emerge] Locate and validate
qlist
andeclean
CLI 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.md
in 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
upgrade
of a subset of packages from the command line if no ambiguity is identified.[mpm] Add a
-A
/--all
option toupgrade
operation.[mpm] Add a
-d
/--duplicates
option toinstalled
operation to only show packages sharing the same ID across multiple managers.[mpm] Add a global
--description
option but only implement it forsearch
operation.[mpm] Always show description for
--extended
search. Closes #503.[mpm] Rename
--package-name
search option to--id-name-only
.[mpm] Add operation aliases:
list
→installed
uninstall
→remove
update
→upgrade
lock
/freeze
/snapshot
→backup
[mpm] Add a
--merge
option onbackup
operation to update target TOML file with new installed packages.[mpm] Add an
--update-version
option onbackup
operation to only update version in the target TOML file.[mpm] Add a
--overwrite
/--force
/--replace
option onbackup
operation to force TOML overwrite if destination file exists.[pipx] Implement
outdated
operation.[pip] Do not wait for user confirmation on
remove
operation.[mpm] Switch package ID and name columns in table rendering.
[mpm] Rename all
*-like
labels to*-based
to help finer identification of families.
5.3.0 (2022-06-25)¶
[paru] Add
paru
support.[pacman,paru,yay] Run
install
,upgrade
,remove
andcleanup
operations withsudo
.[brew,cask] Implement extended search on description.
[cargo] Implement
remove
operation.[mas] Fix parsing of variable-length output in
installed
andoutdated
operations.[npm] Apply global variables to all operations.
[bar-plugin] Fix rendering of package managers without outdated packages. Closes #631.
[mpm] Colorize version differences in
outdated
operation output.[mpm] Add manager homepage URL metadata.
[mpm] Keep results matching description in
--extended
search mode.[mpm] Simplify
installed
,outdated
andsearch
operation by relying on generators and apackage
dataclass.[mpm] Disable workflow grouping and concurrency management.
5.2.0 (2022-06-16)¶
[yay] Add
yay
support. Refs #527.[mpm,pacman,pip,pipx] Add
remove
operation.[mpm] Add description in search results. Refs #503.
[mpm] Always refilters search results manually to refine gross matchings.
[mpm] Document
brew
and Arch Linux installation. Refs #527.[mpm] Benchmark distribution of all
mpm
alternatives.[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
--yes
option. Closes #625.[mpm] Add
topgrade
andpacaptr
in the list of benchmarked alternatives.[mpm] Rename
alternative
page tobenchmark
.[mpm] Fix label unittests.
5.0.0 (2022-04-25)¶
[zypper] Add
zypper
support for Suse and OpenSuse. Closes #566.[emerge] Add
emerge
support.[steamcmd] Add
steamcmd
support. Refs #10.[yum] Add dedicated
yum
package manager. Refs #415.[bar-plugin] Add new
DEFAULT_FONT
andMONOSPACE_FONT
variable.[bar-plugin] Rename all reference of
xbar
to the genericbar-plugin
label.[bar-plugin] Improve search for Python and
mpm
executable.[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
installed
andoutdated
commands to be optionally implemented by package managers.[mpm] Add new
--plugin-output
option tooutdated
command.[mpm] Add
tabulate
as direct dependency and refactor table alignment in plugin around it.[mpm] Rename
--xbar-plugin-path
option to--bar-plugin-path
.[mpm] Remove
-c
/--cli-format
option.[mpm] Use short-form selection option and fully-qualified path in
mpm
-based upgrade-all CLIs produced byoutdated
command.[mpm] Add dedicated execution path for running sudo-prefixed commands.
[mpm] Fix local overriding of CLI parameters leading to missing
sudo
pre-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
sudo
pre-commands forapt
calls that requires it. Closes #496 and #579.[snap] Fix command argument order. Address #579.
[bar-plugin] Fix location of
mpm
binary on Apple Silicon machines.[mpm] Replace
sphinx_tabs
bysphinx-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-mint
shortcut option.[bar-plugin] Add support for SwiftBar.
[bar-plugin] Add new
TABLE_RENDERING
option to plugin.[bar-plugin] Improve alignment of labels in monospaced font rendering.
[bar-plugin] Tweak icons.
[mpm] Allow the
meta_package_manager
module to be directly executed.[mpm] Add
--xbar-plugin-path
option.[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-xdist
andpsutil
.[mpm] Use the
tomllib
from the standard library starting with Python 3.11.[mpm] Cap
click-extra
requirement to<1.7.0
to 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
,simplejson
andpipdeptree
.
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
graphviz
now 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
,--vscode
and--yarn
.[brew,cask] Thorough cleanup: call
autoremove
commands to remove unused dependencies and use--prune=all
to scrub the whole cache.[mpm] Switch default table rendering to
rounded_outline
.[mpm] Rely on
click-extra
for table rendering and tests.[mpm] Remove direct dependencies on
click-log
andcli-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
--version
option.[mpm] Add dependency on
click-extra
.[mpm] Use
sphinx-click
to auto-generate CLI documentation.[mpm] Autofix Markdown content with
mdformat
.[mpm] Simplify project management by abandoning the dual use of
main
/develop
branches.
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.org
togithub.io
.[mpm] Rewrite documentation from rST to MyST.
[mpm] Add dependency on
cloup
.[mpm] Removes
click-help-colors
dependency.[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
/--xkcd
option to forces manager selection.[mpm] Let
-m
/--manager
multi-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-managers
option 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-run
option.[apt] Add dedicated
apt-mint
manager to handle the special case ofapt
on Linux Mint.[bar-plugin] Let xbar plugin check minimal mpm version requirement.
[mpm] Use regexpes to extract package manager versions.
[mpm] Add beta
windows-2022
CI/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
install
command. Closes #21.[vscode] Add support for Visual Studio Code plugins.
[mpm] Finish complete
restore
command 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
/--config
option to point to specific configuration file.[mpm] Upgrade to Click 8.x.
[mpm] Add support for
psql_unicode
andminimal
table format.[mpm] Set default table format to
psql_unicode
instead offancy_grid
to 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
tomlkit
dependency bytomli
andtomli_w
.[bar-plugin] Fix xbar plugin output format.
[bar-plugin] Rename
VAR_SUBMENU_lAYOUT
environment variable toVAR_SUBMENU_LAYOUT
.[mpm] Remove support for
--cli-format bitbar
option. Usexbar
value instead.
4.1.0 (2021-05-01)¶
[bar-plugin] Add new
Submenu layout
boolean option in xbar plugin UI.[bar-plugin] Rename
XBAR_MPM_SUBMENU
environment variable toVAR_SUBMENU_lAYOUT
.[mpm] Allow search of multiple CLI names for a package manager.
[pip] Fix search of
python3
binary 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_SUBMENU
environment variable toXBAR_MPM_SUBMENU
.[mpm] Rename
--cli-format bitbar
option 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
brew
on Linux.[brew,cask] Bump minimal requirement of
brew
to2.7.0
.[cask] Address deprecation of
cask
CLI subcommands.[pip]
pip search
has been disabled by maintainers because of server-side high-load.[mpm] Add test runs against new OSes and distributions:
ubuntu-18.04
andmacos-11.0
.[mpm] Remove
pycodestyle
now 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-by
and--cli-format
) case-insensitive.[mpm] Pin versions of OSes and distributions in CI workflows to
ubuntu-20.04
,macos-10.15
andwindows-2019
.[mpm] Always print errors in unittest’s CLI calls.
[mpm] Slow-down tests to prevent PyPi rate-limiting on live API.
[mpm] Fix
brew
setup on macOS CI runners.[mpm] Fix
npm
setup in Ubuntu 18.04 and 20.04 CI runners.[mpm] Use latest
Atom
version in Ubuntu CI runners.
3.5.1 (2020-10-03)¶
[mpm] Defaults to
--continue-on-error
instead 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-error
parameter: it was never taken into account.[brew,cask] Bump minimal requirement of
brew
to2.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
master
branch 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
pytest
config fromsetup.py
topyproject.toml
.[mpm] Removes
isort
.[mpm] Auto-update Python’s dependencies.
[mpm] Auto-update GitHub actions.
[mpm] Auto-update
.gitignore
file.[mpm] Auto-update
.mailmap
file.[mpm] Lint all YAML files. Add dependency on
yamllint
package.[mpm] Removes
requires.io
and Scrutinizer badges.[mpm] Revert to
pipdeptree
to 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
Option
key.[bar-plugin] Fix rendering of upgrade CLI in Bitbar dialect.
[mpm] Hint for lack of
sync
andcleanup
support 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.0
utils.[mpm] Force test marked as
xfail
count 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
snap
on Linux.[cask] Rely on JSON output to fetch outdated packages.
[brew,cask] Bump minimal requirement to 2.2.15.
[pip] Remove
pip2
/pip3
distinctions, use system’s python and callpip
module.[windows] Allow discarding of some table rendering on Windows.
[mpm] Add
--time
/--no-time
flag 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.5
andcli-helpers 2.0
.[mpm] Use local copy of
boltons
utils while we wait for upstream release.[mpm] Move pylint config from
setup.cfg
topyproject.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
cleanup
command. Closes #5.[mpm] Improve table sorting with new version-aware tokenizer.
[mpm] Highlight manager IDs depending on their availability in
managers
command.[gem] Ignore
default:
prefix on package version parsing.[mpm] Remove
packaging
dependency. Rely on internal version parsing.[mpm] Add new
--exact
and--extended
parameters tosearch
command.[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
backup
command.[gem] Bump minimal requirement to
2.5.0
.
3.0.0 (2020-03-25)¶
[mpm] Add new
backup
and dummyrestore
commands 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
yarn
package 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
pip
to10.0.*
.[mpm] Prepend
/usr/local/bin
to cli search path.[npm]
install package@version
instead 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 apt
when looking for version. Closes #57 and #52.[mpm] Removes all copyright dates.
[mpm] Replace unmaintained
bumpversion
bybump2version
.[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
,npm
andpip2
on Windows.[linux] Add support for
Flatpak
andopkg
package managers on Linux.[gem] Force Ruby
gem
to install packages to user-install by default. Refs #58.[pip] Force Python
pip
upgrade to user-installed packages. Refs #58.[brew] Fix call to
brew upgrade --cleanup
. Refs #50.[mpm] Switch from Travis to GitHub actions.
[composer] Install
composer
in all platforms CI runners.[linux] Install
flatpak
in Linux CI runner.[windows] Install
apm
in 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
pipdeptree
by Poetry CLI output.[mpm] Remove
backports.shutil_which
dependency.[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
,sync
andsearch
command. Closes #47.[brew] Vanilla brew and cask CLIs now shares the same version requirements.
[brew] Bump minimal requirement of
brew
andcask
to1.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-updates
and--include-auto-updates
boolean flags.[mpm] Support even fancier table output rendering, including
csv
andhtml
.[mpm] Depends on
cli-helpers
package 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
apt
on Linux systems.[pip] Use pip 9.0 JSON output. Closes #18.
[pip] Bump minimal requirement of
pip
to9.0.*
.[cask] Use new
brew cask outdated
command.[cask] Remove usage of deprecated
brew cask update
command.[cask] Bump minimal requirement of
cask
to1.1.12
.[mpm] Add dependency on
simplejson
.[mpm] Bump requirement to
click_log >= 0.2.0
. Closes #39.[mpm] Replace
nose
bypytest
.[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
search
operation. Closes #22.[npm] Bump minimal requirement of
npm
to4.0.*
.[mpm] Rename
list
operation toinstalled
.[apm,gem,linux,npm] Allow use of
apm
,gem
andnpm
managers on Linux.[mpm] Add new
--stats
/--no-stats
boolean flags. Closes #8.[mpm] Add new
--stop-on-error
/--continue-on-error
parameters 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
sync
before 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
list
operation. Closes #20.[mas] Fix upgrade of
mas
packages. Closes #32.[bar-plugin] Document BitBar plugin release process.
[mpm] Colorize check-marks in CLI output.
[mpm] Decouple
sync
andoutdated
actions in all managers.[mpm] Cache output of
outdated
command.[mpm] Add global todo list in documentation.
[mpm] Bump requirement to
boltons >= 17.0.0
for 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
.mailmap
config 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
cask
packages 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 update
deprecation warning. Closes #28.[mpm] Activate unittests in Python 3.6.
[mpm] Replace double by single-width characters in
mpm
output to fix table misalignment. Closes #30.
2.2.0 (2016-12-25)¶
[mpm] Rename
supported
property of managers tofresh
.[mpm] Allow restriction of package managers to a platform. Closes #7.
[mpm] Include
supported
property inmpm managers
sub-command.[bar-plugin] Add optional submenu rendering for BitBar plugin. Closes #23.
[bar-plugin] Move
Upgrade all
menu entry to the bottom of each section in BitBar plugin.[pip] Allow destructive unittests in Travis CI jobs.
[pip] Allow usage of
pip2
andpip3
managers 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
brew
andcask
versions. 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 managers
sub-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
LANG
environment variable toen_US.UTF-8
.[bar-plugin,mpm] Share same code path for CLI execution between
mpm
and BitBar plugin.[mpm] Add a
-d
/--dry-run
option tompm upgrade
sub-command.[macos] Remove hard-requirement on
macOS
platform. Refs #7.[macos,mpm] Fix upgrade of
setuptools
inmacOS
and 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.rst
inMANIFEST.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
pycodestyle
requirement to 2.1.0.[mpm] Always check for package metadata in Travis CI jobs.
[mpm] Add
upgrade_all_cli
field for each package manager in JSON output ofmpm outdated
command.
1.12.0 (2016-12-03)¶
[mpm] Rename
mpm update
command 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_cli
field for each outdated packages in JSON output.[bar-plugin,mpm] Allow user to choose rendering of
upgrade_cli
field to either one-liner, fragments or BitBar format. Closes #14.[mpm] Include errors reported by each manager in JSON output of
mpm outdated
command.[cask] Fix parsing of multiple versions of
cask
installed packages.[brew,cask] Fix lexicographical sorting of
brew
andcask
package 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
brew
to 1.0.0 andcask
to 1.1.0.[cask] Fix fetching of outdated
cask
packages.[cask] Fix upgrade of
cask
packages.
1.10.0 (2016-10-04)¶
[mpm] Add optional
version
property on package manager definitions.[mpm] Allow each package manager to set requirement on its own version.
[mas] Let
mas
report its own version.[mas] Bump minimal requirement of
mas
to 1.3.1.[mas] Fetch currently installed version from
mas
. Closes #4.[mas] Fix parsing of
mas
package 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
bumpversion
configuration to targetCHANGES.rst
instead ofREADME.rst
.[mpm] Render list of detected managers in a table.
[macos] Use
conda
in 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
mpm
auto-detect package manager definitions.[mpm] Show package manager IDs in
mpm managers
CLI output.[mpm] Rename
package_manager.7h.py
BitBar 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
PackageManager
base class.[mpm] Add a new
update
CLI sub-command.[mpm] Add a new
sync
CLI sub-command.[mpm] Rename managers’
active
property toavailable
.[mpm] Move all package manager definitions in a dedicated folder.
[mpm] Add simple CLI unittests. Closes #2.
[mpm] Implement
outdated
CLI 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-manager
project tometa-package-manager
.[mpm] Add a
README.rst
file.[mpm] License under GPLv2+.
[mpm] Add
.gitignore
config.[mpm] Add Python package skeleton. Closes #1.
[mpm] Split
CHANGES.rst
out 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
mpm
meta CLI to list supported package managers.[mpm] Add default
bumpversion
,isort
,nosetests
,coverage
,pep8
andpylint
default configuration.
1.7.0 (2016-08-16)¶
[brew] Fix issues with
$PATH
not having Homebrew/Macports.[pip] New workaround for full
pip
upgrade 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
pip
upgrade command.[mpm] Fix
UnicodeDecodeError
on parsing CLI output.
1.5.0 (2016-07-25)¶
[mas] Add support for
mas
.[mpm] Don’t show all
stderr
aserr
(check return code for error state).
1.4.0 (2016-07-10)¶
[mpm] Don’t attempt to parse empty lines.
[npm] Check for linked
npm
packages.[gem] Support system or Homebrew Ruby Gems (with proper
sudo
setup).
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
pip2
andpip3
, Node’snpm
, Atom’sapm
, Ruby’sgem
.[cask] Fixup
brew cask
checking.[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.