Releases: ripytide/metapac
0.5.0 - 2025-08-09
Release Notes
This release marks the final big part of metapac
that has now been
implemented: updating packages! There are four core mechanisms that make up
a package manager:
- install a package
- uninstall a package
- list installed packages
- update a package
metapac
now implements all of these key mechanisms for all our
supported backends!
Warning
There are very high chances that the update implementations
for most of the backends don't actually work yet. This is simply because
I don't have the time or energy required to fully test every different
backend's update commands, especially since lots of the package managers
only work on a specific linux distro!
Therefore, I've tried my best for each backend and I am going to
crowdsource the rest of the testing to the users. So as usual, if a
backend is not behaving as you would expect, please file a bug report.
Ideally, you can also try to find the issue with the commands so we can
fix them.
Added
- New subcommand
metapac update
! (#113) - New subcommand
metapac update-all
! (#113) - New
--locked
option for thecargo
backend, including a new config:
cargo_default_locked
(#104), thanks @DominicD!.
Changed
-
‼️ Breaking Change‼️ Backend specific configs have been moved into
sections for each backend andflatpak_default_systemwide
has been
renamed toflatpak.systemwide
(#117), thanks @steven-omaha! For
example:# instead of this arch_package_manager = "paru" flatpak_default_systemwide = false vscode_variant = "code" # do this [arch] package_manager = "paru" [flatpak] # notice this is now just systemwide and not default_systemwide systemwide = false [vscode] variant = "code"
-
‼️ Breaking Change‼️ Theclean-cache
command and the newupdate
command now do 3 different things depending on what you pass to the
--backends
option if anything:- if no backends are passed then the enabled_backend config is used
- if "all" is passed by itself then all backends are used
- otherwise the list will be parsed as a list of backends to be used
Fixed
- For commands that take a list of packages as an option, the
--packages
option is now required and has anum_args=1..
so not passing at least
one package is a clap error. (#113)
0.4.1 - 2025-08-02
Release Notes
Added
Fixed
- Fixed a bug with packages being added twice when the backend didn't yet
exist in a group file with themetapac add
command. Fixed in #99,
thanks @DominicD! - Fixed a bug when running
metapac sync --no_confirm
with thearch
backend. Used the incorrect--no_confirm
option rather than
--noconfirm
. Fixed in #105.
0.4.0 - 2025-07-27
Release Notes
Another big release 🚢, with no breaking changes this time 🎉🎉. In this
release we welcome the javascript ecosystem of package managers into
metapac
. With an exception for no deno
support yet since it doesn't yet
support listing global packages (see
denoland/deno#28230)
Added
- Added the
bun
backend (#95) - Added the
npm
backend (#95) - Added the
pnpm
backend (#95) - Added the
yarn
backend (#95) - Added a wishlist section to the documentation for listing package
managers we might want to one day support - Added relevant XKCDs to the readme since it feels like a right of passage
and to not show them would be worse
0.3.2 - 2025-07-17
0.3.1 - 2025-07-13
Release Notes
Removed
- I managed to make it about 30 minutes after releasing
v0.3.0
before
realizing that thebefore_uninstall
andafter_uninstall
hooks were
completely useless since to uninstall a package your remove it from you
group files in which case there will be no hooks to execute! These hooks
have now been removed (#92).
0.3.0 - 2025-07-13
Release Notes
This is the biggest release metapac
has had in quite a while including two breaking changes that will require changes to most people's config and group files. As such I've bumped the minor version number. And so begins the 0.3.x
journey for metapac
🚢 and farewell 0.2.x
👋
Added
- 🪝Hooks🪝: Per-package custom commands:
before_install
,
after_install
,before_uninstall
andafter_uninstall
have been
added. This allows the automatic enabling ofsystemd
services for arch
packages by using theafter_install
hook. See theREADME.md
for
examples.
Changed
‼️ Breaking Change‼️ the configdisabled_backends
has now been
inverted and renamed toenabled_backends
to prevent everything being
uninstalled when adding new backends (#90).‼️ Breaking Change‼️ the toml format for group files has been changed,
options have been moved under a key calledoptions
in order to make way
for the new per-packagehooks
feature (#91).- For example, instead of
{ package = "metapac", backend_relevant_option = "yes"}
you should change this to{ package = "metapac", options = { backend_relevant_option = "yes" } }
- For example, instead of
Fixed
metapac
will now throw errors if it encounters unexpected keys when
deserializing config and group files. This prevents accidentally
misspelling a config option and then being confused bymetapac
not
respecting it (#91).- A warning is now given to the user if duplicate packages are found in the
same group file as well as across multiple group files (#91). - A warning is now also given if duplicate packages are passed on the
command line with the add/remove/install/uninstall commands (#91).
0.2.14 - 2025-06-04
Release Notes
Fixed
- The
pipx
backend could would fail to uninstall multiple packages. This
has been fixed in (#88), thanks @arutonee1!
0.2.13 - 2025-06-03
Release Notes
Fixed
- The
arch
backend would sometimes attempt to reinstall already installed
packages. This has been fixed in (#87), thanks @arutonee1!
0.2.12 - 2025-05-21
0.2.11 - 2025-05-21
Release Notes
Added
- The
snap
backend now accepts a per-packageconfinement
option (#82)
thanks @curetheopensource!
Removed
- The release notes on GitHub will no longer contain release artifacts as
cargo-dist
seems to have become unmaintained and has various issues at
the moment. - This also means that the
metapac-bin
AUR package will receive no more
updates as it relies upon having a built artifact hosted by GitHub. The
non-binarymetapac
AUR package will still receive updates though.