Skip to content

Releases: ripytide/metapac

0.5.0 - 2025-08-09

09 Aug 10:30
8b534dd
Compare
Choose a tag to compare

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 the cargo 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 and flatpak_default_systemwide has been
    renamed to flatpak.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 ‼️ The clean-cache command and the new update
    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 a num_args=1.. so not passing at least
    one package is a clap error. (#113)

0.4.1 - 2025-08-02

02 Aug 21:54
1d02524
Compare
Choose a tag to compare

Release Notes

Added

  • Added the scoop backend (#101), thanks @jsfr!

Fixed

  • Fixed a bug with packages being added twice when the backend didn't yet
    exist in a group file with the metapac add command. Fixed in #99,
    thanks @DominicD!
  • Fixed a bug when running metapac sync --no_confirm with the arch
    backend. Used the incorrect --no_confirm option rather than
    --noconfirm. Fixed in #105.

0.4.0 - 2025-07-27

27 Jul 17:01
1a35818
Compare
Choose a tag to compare

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

17 Jul 16:13
f236638
Compare
Choose a tag to compare

Release Notes

Fixed

  • Fixed a bug with packages not being set to be explicitly installed if
    they were previously installed as a dependency (reported in #93,
    introduced by #87, fixed in #94).

0.3.1 - 2025-07-13

13 Jul 00:41
1921fc9
Compare
Choose a tag to compare

Release Notes

Removed

  • I managed to make it about 30 minutes after releasing v0.3.0 before
    realizing that the before_uninstall and after_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

13 Jul 00:06
5a2c257
Compare
Choose a tag to compare

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 and after_uninstall have been
    added. This allows the automatic enabling of systemd services for arch
    packages by using the after_install hook. See the README.md for
    examples.

Changed

  • ‼️ Breaking Change ‼️ the config disabled_backends has now been
    inverted and renamed to enabled_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 called options in order to make way
    for the new per-package hooks feature (#91).
    • For example, instead of { package = "metapac", backend_relevant_option = "yes"} you should change this to { package = "metapac", options = { backend_relevant_option = "yes" } }

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 by metapac 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

04 Jun 07:08
923352f
Compare
Choose a tag to compare

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

04 Jun 07:07
58b64fb
Compare
Choose a tag to compare

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

21 May 16:30
282f16b
Compare
Choose a tag to compare

Release Notes

Added

  • The pamac arch package manager as another option for the arch backend (#84).

0.2.11 - 2025-05-21

21 May 16:29
bbc52ca
Compare
Choose a tag to compare

Release Notes

Added

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-binary metapac AUR package will still receive updates though.