<!--
SPDX-FileCopyrightText: Copyright 2026 Daniel Hast

SPDX-License-Identifier: Apache-2.0 OR MIT
-->

# Changelog

## [v0.3.0-alpha1] - 2026-06-10

### brew bundle support

This release adds support for
[brew bundle](https://docs.brew.sh/Brew-Bundle-and-Brewfile), which works
differently from most brew commands in that it needs to read from and/or write
to a Brewfile in the user's current working directory.

On the daemon side, brew-proxy's DBus methods now accept an optional file
descriptor to be used as standard input for the brew command.

On the client side, `brew bundle` commands are modified as follows:

- With the `-g` or `--global` option, the command is unmodified, and
  `brew bundle` will read from or write to a global Brewfile in
  `/home/linuxbrew`.
- For `brew bundle dump` without `-g`, the command is modified to write to
  standard output (using `--file=-`), and the client redirects this output to
  the Brewfile originally specified (or `Brewfile` in the current directory if
  not specified).
- For other `brew bundle` subcommands without `-g`, the command is modified to
  read from standard input (using `--file=-`), and the client passes a file
  descriptor of the Brewfile over DBus, allowing the `brew bundle` command to
  read it.

This allows the basic functionality of brew bundle (that is, installing brew
packages from a Brewfile, and dumping a list of installed packages to a
Brewfile) to work mostly as expected. However, some brew bundle features, such
as integration with other package managers, probably will not work properly.

### Other changes

- Configure `brew-proxy-daemon.service` to use `/home/linuxbrew` as its working
  directory.

## [v0.2.6] - 2026-06-07

- Reduce default log level for daemon to `info` (instead of `debug`).

## [v0.2.5] - 2026-06-06

- Add support for `brew trust`/`brew untrust` commands.
- Add systemd sandboxing to `brew-proxy-daemon.service` and
  `brew-proxy-setup.service`.

## [v0.2.4] - 2026-04-25

- Print brew-proxy info to stderr before running selected commands. In
  particular, `brew --version` and `brew config` display a line showing the
  brew-proxy version number, and `brew doctor` displays a message noting that
  brew-proxy is in use and directing the user to report issues to the right
  place.

## [v0.2.3] - 2026-04-22

- Improved Polkit action logic so `brew <COMMAND> --help` is treated the same as
  `brew --help <COMMAND>`, that is, it can be run by all users without
  authentication.
- Removed obsolete `sh.brew.BrewProxy.Client` interface from DBus policy config.
  (This was a leftover from an earlier design and doesn't do anything anymore.)

## [v0.2.2] - 2026-04-19

- Refactored Polkit action logic so that the action type can depend on the
  arguments passed to the brew command, not just the main command. This is now
  used for `brew upgrade` to classify it as an admin command (requiring
  authentication for non-`linuxbrew` users) if it has arguments outside a
  hard-coded list.
- Removed some unused code, including the DBus method for calling brew with no
  arguments. (Just call `brew help` instead if you want it to produce the same
  text.)
- Improved handling of I/O errors when copying PTY output. This means that
  unexpected I/O errors will no longer be ignored.

## [v0.2.1] - 2026-04-14

- Added non-interactive mode: If `BREW_PROXY_NONINTERACTIVE=1` is set in the
  environment, Polkit is instructed to deny access if authentication would be
  required, rather than prompting the user for authentication.

## [v0.2.0] - 2026-04-14

- First version after major redesign. Earlier tagged versions (v0.1.\*) were
  early prototypes and I didn't keep a changelog.

[v0.3.0-alpha1]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.6...v0.3.0-alpha1
[v0.2.6]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.5...v0.2.6
[v0.2.5]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.4...v0.2.5
[v0.2.4]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.3...v0.2.4
[v0.2.3]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.2...v0.2.3
[v0.2.2]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.1...v0.2.2
[v0.2.1]: https://codeberg.org/HastD/brew-proxy/compare/v0.2.0...v0.2.1
[v0.2.0]: https://codeberg.org/HastD/brew-proxy/src/tag/v0.2.0
