Important
This version is not released yet and is under active development.
- [eopkg] Add support for new
eopkg
manager. Closes {issue}1093
. - [fwupd] Add support for new
fwupd
manager. Closes {issue}1289
. - [dnf5] Add support for new
dnf5
manager. Refs {pr}1423
. - [mpm] Hide
--manager
and--exclude
options from help output and silence deprecation warnings. Closes {issue}1358
. - [mpm] Add detailed documentation on manager selection with configuration file.
- [mpm] Fix mixing of manager selector lists and flags.
- [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.
- [mpm] Add new command to export installed packages to a SBOM file in SPDX or CycloneDX standard. Closes {issue}
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.
- [uv] Add support for
uv
package manager for Python. - [mpm] Add
--no-<manager-id>
negative selection flags for each single manager. Closes {issue}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.
- [winget] Add support for WinGet on Windows. Closes {issue}
500
and {issue}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.
- [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 {pr}
1152
. - [mpm] Use external workflow to manage issues and PRs content-based labelling.
- [mpm] Fix installation from
pipx
. Closes {issue}1154
.
- [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 {pr}
1152
.
- [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
.
- [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.
- [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 {issue}976
. - [apt] Fix parsing of search results for
apt
andapt-mint
. Closes {issue}881
and {issue}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.
- [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 {issue}
629
. - [mpm] Exclude empty files for our CLI search results to skip Microsoft's dummy placeholders on Windows. Closes {issue}
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.
- [mpm] Fix overlapping detection of
linux
andwsl2
platforms. Closes {issue}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
.
- [mpm] Fix collection of artifact files from their folder.
- [mpm] Fix collection of artifact files from their folder.
- [mpm] Fix attachment of binaries to GitHub release.
- [mpm] Fix attachment of binaries to GitHub release.
- [mpm] Refine bug report template.
- [mpm] Fix attachment of binaries to GitHub release.
- [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.
- [mpm] Unlock run on any Unix-like platform. Closes {issue}
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.
- [mpm] Fix uploading of artifacts to GitHub release.
- [mpm] Fix uploading of Nuitka binaries to GitHub release.
- [mpm] Build standalone executable for macOS, Linux and Windows. Closes {issue}
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.
- [pacaur] Implement
pacaur
support. Closes {issue}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.
- [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 {issue}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.
- [scoop] Add support for Scoop on Windows. Closes {issue}
546
. - [mpm] Fix imports from
click.extra
. Closes {issue}783
.
- [mpm] Fix imports from
click.extra
.
- [mpm] Fix import from private
click.extra
submodule.
- [brew,cask] Add support for
remove
operation in homebrew. - [pacman] Fix
pacman
install operation. Closes {pr}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 {issue}563
. - [mpm] Add
upgrade_all
operation in support matrix. - [mpm] Rely on external workflow to set Python version parameters for
mypy
,black
andpyupgrade
jobs.
- [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.
- [mpm] Restore behavior of having
upgrade
assuming--all
option on a bare call. Closes {issue}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 {issue}
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.
- [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 {issue}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.
- [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 {issue}
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.
- [yay] Add
yay
support. Refs {issue}527
. - [mpm,pacman,pip,pipx] Add
remove
operation. - [mpm] Add description in search results. Refs {issue}
503
. - [mpm] Always refilters search results manually to refine gross matchings.
- [mpm] Document
brew
and Arch Linux installation. Refs {issue}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.
- [pipx] Add
pipx
support. Closes {issue}468
. - [cargo] Add
cargo
support. Closes {issue}633
. - [mpm] Factorize search result refiltering code.
- [mpm] Regroup
dnf
andyum
labels.
- [apt] Fix commands incompatible with
--yes
option. Closes {issue}625
. - [mpm] Add
topgrade
andpacaptr
in the list of benchmarked alternatives. - [mpm] Rename
alternative
page tobenchmark
. - [mpm] Fix label unittests.
- [zypper] Add
zypper
support for Suse and OpenSuse. Closes {issue}566
. - [emerge] Add
emerge
support. - [steamcmd] Add
steamcmd
support. Refs {issue}10
. - [yum] Add dedicated
yum
package manager. Refs {issue}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 {issue}579
. - [mpm] Use string highlighting code from
click-extra >= 2.1.0
. - [mpm] Add edit links to documentation.
- [apt] Add missing
sudo
pre-commands forapt
calls that requires it. Closes {issue}496
and {issue}579
. - [snap] Fix command argument order. Address {issue}
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.
- [pacman] Add support for
pacman
. Closes {issue}416
. - [apt-mint] Fix search. Closes {issue}
572
and {pr}573
. - [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.
- [mpm] Make CLI path evaluation more robust on Windows. Closes {issue}
542
.
- [dnf] Add support for
dnf
. Closes {issue}516
, refs {issue}415
. - [yum] Allow
yum
to act asdnf
. Closes {issue}415
. - [brew,cask] Fix execution of
sync
command. - [mpm] Fix extraction of version. Closes {issue}
536
.
- [brew,cask] Do not let homebrew auto-update on other commands. Refs {issue}
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.
- [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 {issue}518
.
- [mpm] Fix execution error on Python 3.10 by updating
click-extra
. Closes {issue}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
.
- [mpm] Fix upload of build artifacts in GitHub release.
- [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.
- [mpm] Add release version in artifacts produced by Poetry builds.
- [mpm] Pass local PyPi token to reused workflow to fix publishing.
- [mpm] Fix detection of Poetry in build workflow.
- [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.
- [mpm] Re-integrate artifacts in GitHub release on tagging.
- [mpm] Fix GitHub release's content update.
- [mpm] Regenerate GitHub release content body dynamiccaly on tagging.
- [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.
- [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.
- [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.
- [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 {issue}
276
.
- [mpm] Implements XKCD 1654. Closes {issue}
10
. - [mpm] Add
-x
/--xkcd
option to forces manager selection. - [mpm] Let
-m
/--manager
multi-option keep order.
- [choco] Add Chocolatey package manager.
- [mpm] Skip by default the evaluation of package managers not supported on
the user's platform. Closes {issue}
278
. - [mpm] Add a
-a
/--all-managers
option to force the evaluation of all managers. - [mpm] Fix highlighting of substrings in search results.
- [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.
- [mpm] Add new
install
command. Closes {issue}21
. - [vscode] Add support for Visual Studio Code plugins.
- [mpm] Finish complete
restore
command implementation. Closes {issue}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.
- [mpm] Add support for TOML configuration file. Closes {issue}
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.
- [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 {issue}247
.
- [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
.
- [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.
- [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.
- [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.
- [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.
- [brew,cask] Do not mix-up brew and cask upgrades.
- [npm] Skip parsing of JSON results on error.
- [mpm] Rename
master
branch tomain
.
- [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 {issue}
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.
- [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
.
- [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 {issue}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.
- [mpm] Add new
cleanup
command. Closes {issue}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
.
- [mpm] Add new
backup
and dummyrestore
commands to respectively dump and load up list of installed packages to/from a TOML file. Refs {issue}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 {issue}
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
{issue}
35
and {pr}37
. - [mpm] Add shell completion for Bash, Zsh and Fish.
- [mpm] Do not force sync when calling outdated. Closes {issue}
36
. - [apt] Fallback on
apt version apt
when looking for version. Closes {pr}57
and {issue}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
.
- [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 {issue}58
. - [pip] Force Python
pip
upgrade to user-installed packages. Refs {pr}58
. - [brew] Fix call to
brew upgrade --cleanup
. Refs {issue}50
. - [brew] Fix parsing of
brew
version. Closes {issue}49
and {pr}51
. - [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.
- [composer] Add support for PHP
composer
. - [cask] Remove
cask
-specificversion
,sync
andsearch
command. Closes {issue}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.
- [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 {issue}41
and {pr}44
. - [bar-plugin] Do not run BitBar plugin unittests but on macOS.
- [mpm] Fix Travis unittests.
- [apt] Add support for
apt
on Linux systems. - [pip] Use pip 9.0 JSON output. Closes {issue}
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 {issue}39
. - [mpm] Replace
nose
bypytest
. - [mpm] Only notify by mail of test failures.
- [mpm] Auto-detect location of manager CLI on the system.
- [mpm] Add new
search
operation. Closes {issue}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 {issue}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
{issue}
16
. - [cask] Add unittest to cover Cask packages with multiple names. Refs
{issue}
26
. - [mpm] Drop support of Python 3.3.
- [mpm] Add new
list
operation. Closes {issue}20
. - [mas] Fix upgrade of
mas
packages. Closes {issue}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.
- [mpm] Add Sphinx documentation. Closes {issue}
24
. - [mpm] Add installation instructions. Closes {issue}
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 {issue}26
. - [bar-plugin] Move BitBar plugin documentation to dedicated page.
- [mpm] Fix exceptions when commands gives no output. Closes {issue}
29
and {pr}31
. - [cask] Fix
cask update
deprecation warning. Closes {issue}28
. - [mpm] Activate unittests in Python 3.6.
- [mpm] Replace double by single-width characters in
mpm
output to fix table misalignment. Closes {issue}30
.
- [mpm] Rename
supported
property of managers tofresh
. - [mpm] Allow restriction of package managers to a platform. Closes
{issue}
7
. - [mpm] Include
supported
property inmpm managers
sub-command. - [bar-plugin] Add optional submenu rendering for BitBar plugin. Closes {pr}
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.
- [brew,cask] Fix parsing of non-point releases of
brew
andcask
versions. Closes {issue}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.
- [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 {issue}7
. - [macos,mpm] Fix upgrade of
setuptools
inmacOS
and Python 3.3 Travis jobs.
- [bar-plugin] Rewrite BitBar plugin based on
mpm
. Closes {issue}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.
- [mpm] Rename
mpm update
command tompm upgrade
. - [mpm] Allow restriction to only one package manager for each sub-command.
Closes {issue}
12
. - [mpm] Differentiate packages names and IDs. Closes {issue}
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 {issue}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.
- [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.
- [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 {issue}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.
- [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 {issue}
2
. - [mpm] Implement
outdated
CLI sub-command. - [mpm] Allow selection of table rendering.
- [cask] Fix parsing of unversioned cask packages. Closes {pr}
6
.
- [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 {issue}
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.
- [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.
- [pip] Work around the lacks of full
pip
upgrade command. - [mpm] Fix
UnicodeDecodeError
on parsing CLI output.
- [mas] Add support for
mas
. - [mpm] Don't show all
stderr
aserr
(check return code for error state).
- [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).
- [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.
- [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.
- [pip] Add support for Python's
pip
.
- [mpm] Initial public release.
- [brew,cask] Add support for Homebrew and Cask.