## 7.1

* `aur-build`
  + pass --nocheck to chroot (#942)

* `aur-sync`
  + avoid off-by-one in ninja build summary (#940)

* `aur-query`
  + do not abort if `-t` is unspecified (#938)

## 7

This release adds optional support for the `ninja` build system. If the
`AUR_SYNC_USE_NINJA` environment variable is set to a positive value,
`aur-sync` will generate `build.ninja` where each target has an `aur-build`
command-line. This allows to continue building a series of packages when
several failed, with the maximum of failed targets controlled by the `-k` /
`--keep-going` option.  On failure, a summary of successful ("OK") and failed
("FAIL") package builds is printed. The `--no-build` option in turn only
generates `build.ninja`, and prints the corresponding directory to `stdout`.

The logic to generate `build.ninja` files is exposed in the `aur-sync--ninja`
script. It can be used with other `aur` programs that output `pkgbase
depends_pkgbase` pairs, for example:

  $ aur depends --graph "$@" | aur sync--ninja "$PWD" -- aur build

When running `ninja` on the resulting file, each successfully built `pkgbase`
will result in a `pkgbase.stamp` file. If the corresponding `PKGBUILD` is
modified, it will be marked for rebuilding by `ninja`. This can for example be
used for a git repository which hosts multiple `PKGBUILD` directories.

## 6.4

* `aur-depends`
  - add `--graph`
  - checkdepends are now removed during dependency resolution, not afterwards (#882)

## 6.3

* `aur-sync`
  - `--ignore-file` now supports per-repository sections (INI-style)
  - do not ignore targets when specified on the command-line

## 6.2

* `aur-pkglist`
  - add `-v` / `--verify` (verifies published sha256sums)

* `aur-repo-filter`
  - add repository to dependency messages ("dependency foo satisfied by repo/bar")
  - deduplicate results on stdout

## 6.1

* `aur-search`
  - do not print additional messages on errors or no results

* `aur-query`
  - add `-a` alias for `--any`
  - add missing newline in case of errors (`jq -r`)

## 6

In previous versions, `aur search` would display an intersection of search
results, the symmetric difference with `-a` (bug), and the concatenation with
`-r`. (#918)

`aur search -a` now correctly returns the union, and the `-r` output is
processed with jq(1) to return the intersection by default, or the union (with
duplicates removed) with `-a`. This processing is done because the RPC
interface as of aurweb 6.0.11 does not expose set operations, and so
`aur-search` performs one search for each argument. `aur search --json` was
added as an alias to `--raw`, and the latter option is now deprecated.

The implementation is done in `aur-query`, which now takes the intersection of
search results by default. The union can be taken with `aur query --any`, or
unprocessed results shown with `-r` or `--raw`. In each case, the output is
newline delimited (JSON Lines, `jq -r`). If the search completed without
results, `aur-query` will either exit with status 0 (if no request resulted in
an error), 1 (if the `-e` option was specified), or 2 (if at least one request
resulted in an error).

`AUR_QUERY_RPC_SPLITNO_POST` received bug fixes (#920), and the default has
been reduced to 500 after experiencing issues with a larger number of
arguments. Users looking to use `aur-query -t info` with a very large number
of arguments should instead consider `aur pkglist --info`.
`AUR_QUERY_RPC_PARALLEL` also received several bugfixes.

## 5

* `aur-srcver`
  + add `-E` / `--env` (#898)

* `aur-query`
  + support HTTP POST for info-type requests
  + use `aurutils` user agent (`curl -A`)

* `aur-pkglist`
  + use `aurutils` user agent (`curl -A`)

* `aur-repo-filter`
  + add `--config` to set pacman configuration

## 4.4

* `aur-sync`
  + fix regressions with `--ignore` from 4.3 release

## 4.3

* `aur-build`
  + wordsplit MAKEPKG and PACMAN_AUTH

* `aur-sync`
  + improve error handling

## 4.2

* `aur-build`
  + support PACMAN_AUTH environment variable for custom elevation command

* `aur-repo`
  + improve error handling
  + remove extraneous `--` on `--path` output

## 4.1

* `aur-build`
  + handle absolute paths in `--arg-file`

* `aur-pkglist`
  + add `--users` (`-U`) to retrieve a list of AUR users
  + update aur-pkglist(1) man page

* `aur-repo`
  + fix formatting for `--table` and packages with no dependencies

## 4

* `aur-build`
  + add `--no-check` (`makepkg --nocheck`)

* `aur-search`
  + add `--table`

* `aur-fetch`
  + add compatibility options (`--recurse`)

* `aur-repo`
  + add compatibility options (`--path`, `--path-list`, `--repo-list`)
  + fix regression with `AUR_QUERY_PARALLEL`

* `aur-sync`
  + add `--no-check` (short for `--no-checkdepends`)
    - implies `aur-build --no-check`
  + apply `--ignore` to local repository targets
  + `--ignore-file` now works with process substitution (#880)
  + remove `--no-depends`, `--no-makedepends`

## 3.3.0

`aur-query` and `aur-fetch` now take arguments from the command-line
by default. If `-` or `/dev/stdin` is the first (and only) arguments,
they are taken from `stdin` instead. In particular, `aur fetch --recurse`
is now written as `aur depends --pkgbase ... | aur fetch -`, and the
explicit `--recurse` option was removed.

The `-` argument propagates to `aur-depends` and `aur-search`
transparently. Additionally, `aur-sync` no longer calls `aur-depends`
and `aur-fetch` with `xargs`, avoiding the 123 exit code on failure of
these commands.

## 3.2.1

* `aur-query`
  + support AUR_LOCATION
  + preserve `curl --parallel` exit codes (requires curl >=7.77.0)
  + complete aur-query(1) man page

* `aur-pkglist`
  + support multiinfo and search dumps (`--info`, `--search`)
  + support HTTP Last-Modified

* `aur-fetch`
  + add `--existing`

* `aur-view`
  + new script that includes the package inspection logic from `aur-sync`

## 3.2.0

* `aur-build`
  + retrieve database extension from `AUR_DBEXT` (defaults to .db) (#700)
  + resolve path argument to `--results`
  + use `aur repo --status` for repository selection
    - allows specifying `--root` without `--database`
  + print diagnostic if packages were not moved to local repository (#794)
  + merge `--config` and `--pacman-conf` (#808, #824)
  + fallback to /etc/aurutils/pacman-<arch>.conf if --chroot is used without --database (#846)
  + add diagnostic if chroot pacman.conf is non-existing (#783)

* `aur-depends`
  + add `--no-depends`, `--no-makedepends`, `--no-checkdepends` (#826)
  + add dependency kind column to `--table` output

* `aur-chroot`
  + preserve `SSH_AUTH_SOCK` to support ssh-based operations (#832)

* `aur-repo`
  + retrieve database extension from `AUR_DBEXT` (defaults to .db) (#700)
  + add `--status`
    - `repo:<NAME>\nroot:<PATH>\npath:<PATH/NAME.DBEXT>` output format
    - replaces `--path`
  + rename `--repo-list` to `--list-repo`
  + rename `--path-list` to `--list-path`

* `aur-repo-filter`
  + run `pacsift` with `unbuffer` (#804)

* `aur-vercmp`
  + remove colon from `checkupdates` and `equal_or_newer` format (#833)

## 3.1.2 - 2020-11-09

This releases fixes a regression in 3.1.1 where `AUR_LIB_DIR` was not
subsituted in `aur`.

## 3.1.1 - 2020-11-09

* `aur`
  + add `--version`

## 3.1.0 - 2020-11-09

* `aur`
  + fix example `aur-remove` script (#785)

* `aur-build`
  + change default pacman-conf for chroot builds to /etc/aurutils/pacman-<dbname>.conf
  + clarify conditions on pacman-conf for chroot builds in `aur-build.1`

* `aur-chroot`
  + add `--create`
    - seperate mode which runs `mkarchroot` with packages taken from the command-line
    - defaults to base-devel (and multilib-devel, if applicable) if no packages are specified
    - `--update` no longer runs `mkarchroot`
  + `--packagelist` now uses `makepkg.conf` inside the container
  + add `Devtools limitations` section to `aur-chroot.1` (#782)
  + add additional error messages for missing pacman configuration

* `aur-repo`
  + add `--path-list`
  + update man page for new arguments (#784)
  + remove `--ini` (only offered pacman.conf information)

## 3.0.3 - 2020-11-02

* fix broken `zsh` completion (#776)
* use `/tmp/aurutils-$UID` as default temporary directory (#775)

## 3.0.2 - 2020-10-30

* `aur-sync`
  + add missing `--suffix` option (#773)

## 3.0.1 - 2020-10-29

The commits:

+ aur-sync: use XDG_RUNTIME_DIR for view directory (5341c059736d3eff59daea5cb52b7d35c98d0824)
+ aur-repo: simplify command line (57c1b2157806e645e7de85bf24e2c28b7d5f4458)

were part of the 3.0.0 release tarball, but not the 3.0.0 tag. The 3.0.1 tag now includes these commits.

## 3.0.0 - 2020-10-29

* `aur`
  + add `AUR_EXEC_PATH` environment variable
  + add example `aur-gc`, `aur-remove` scripts to `aur.1`

* `aur-build`
  + add `AUR_DEBUG`, `NO_COLOR`, `MAKEPKG` environment variables
  + add mollyguard for running as the `root` user
  + add `build:` prefix to `--results` output
    - `build:file:///path/to/package.tar.xz`
  + add `--new`, `--prevent-downgrade` (`repo-add` options)
  + add `Running` message for all `makepkg` invocations
  + replace `--build-command` with `--margs` and `$MAKEPKG`
  + remove default `makepkg` arguments (#635)
    - specify common `makepkg` options as `aur-build` arguments (`--syncdeps`, `--rmdeps`, `--ignorearch`, `--log`, `--noconfirm`)
    - pass `--syncdeps`, `--rmdeps` to `--pkgver` makepkg command (#716)
    - make `-r` an alias for `--rmdeps` (was: alias for `--root`)
    - make `-S` an alias for `--sign` (was: `-s`)
  + use `--margs` to set makepkg options instead of EOF seperator (`--`)
  + `--makepkg-conf` now sets the makepkg configuration for host builds (avoid quoting issues with setting `--config` in `--margs`)
  + use `makepkg --noextract` if `--pkgver` is specified (#708)
  + use `print_all_package_names` (`/usr/share/makepkg/util/pkgbuild.sh`) instead of `makepkg --packagelist` (#755)
  + pass pacman.conf (`--config`) to `aur-repo` (#654)
  + only remove intermediary package directory if empty (#602)
  + remove `--delta`
  + use `PKGDEST` instead of `makepkg.conf` to set package destination

* `aur-chroot`
  + add `AUR_DEBUG` environment variable
  + add `--packagelist`
    - use `print_all_package_names` (`/usr/share/makepkg/util/pkgbuild.sh`)
  + replace `--no-prepare` and `--no-build` (disable steps) with `--update` and `--build` (enable steps) respectively
  + remove `--database`
  + use static pacman configuration (defaults to `/usr/share/devtools/pacman-extra.conf`)
    - `--suffix` to override `extra` in the default path
    - if `--suffix` begins in `multilib`, install `multilib-devel` (instead of `base-devel`)

* `aur-fetch`
  + add `AUR_DEBUG`, `NO_COLOR` environment variables
  + add `--results` (colon-delimited output)
  + add `--sync`
    - only run `git fetch` by default;
    - run `git reset` if `--sync=reset` is specified;
    - run `git rebase` if `--sync=rebase` is specified;
    - run either `git reset` or `git rebase` if `--sync=auto` is specified
  + exit `1` if `git clone` or `git fetch` failed
  + remove support for `tar` archives
  + remove diff output (`--log-dir`, `--verbose`, `--format`)
    - diffs can be generated from the extended --results output (done in `aur-sync`)
  + remove setting `orderfile` (done in `aur-sync`)
  + use `git -C` for `git` calls

* `aur-jobs` (removed)
  - remove script

* `aur-pkglist`
  + add `AUR_DEBUG` environment variable
  + use `curl` for transfers instead of `wget`

* `aur-rpc` (`aur-query`)
  + add `AUR_DEBUG`, `AUR_QUERY_RPC`, `AUR_QUERY_RPC_SPLITNO`, `AUR_QUERY_PARALLEL`, `AUR_QUERY_PARALLEL_MAX` environment variables
  + rename to `aur-query`
  + set AUR RPC address with `AUR_QUERY_RPC` instead of a combination of `--rpc-url`, `--rpc-ver` and `AUR_LOCATION`
  + set number of packages for splitting URIs with `AUR_QUERY_RPC_SPLITINFO`
  + set `AUR_QUERY_RPC_SPLITNO` to set of number of packages for splitting URIs
  + use `curl` for transfers instead of `wget`
    - enable parallel transfers (`curl --parallel`) with `AUR_QUERY_PARALLEL=1`
    - set maximum amount of parallel transfers (`curl --parallel-max`) with `AUR_QUERY_PARALLEL_MAX`
  + exit `1` if a transfer failed

* `aur-repo-filter`
  + add `AUR_DEBUG` environment variable
  + add `--sysroot` (`pacsift --sysroot`, `pacinfo --sysroot`)
  + use `pacinfo` for package information instead of `expac`

* `aur-repo`
  + add `AUR_DEBUG` environment variable
  + add `--config`
  + add `--ini`
  + add `--quiet`/`-q` (`aur-vercmp -q`)
  + add `--table`
  + add pacman configuration to `--status-format` (colon-delimited)
  + print fully resolved path to local repository
  + require `--path` to print the local repository path
  + remove `expac` dependency

* `aur-search`
  + add `AUR_DEBUG`, `NO_COLOR` environment variables
  + unset `LC_ALL` when printing `Popularity`

* `aur-srcver`
  + add `AUR_DEBUG` environment variable
  + add `--jobs`
  + do not use `makepkg --log`
  + remove `parallel` dependency

* `aur-sync`
  + add `AUR_DEBUG`, `NO_COLOR`, `AUR_CONFIRM_PAGER` environment variables
    - use confirmation prompt after package review if `AUR_CONFIRM_PAGER` is set
  + add `--rebuild-all`
  + add mollyguard for running as the `root` user
  + add default ignore file in `$XDG_CONFIG_HOME/aurutils/sync/ignore`
  + do not fallback to `PAGER` or `less` (`AUR_PAGER` must be set or `vifm` installed)
  + enable `--provides` by default
    - disable with `--no-provides`
    - specify repositories with `--provides-from` (comma-delimited)
  + remove additional `aur-build` arguments after EOF separator (`--`) (#678)
  + remove `parallel` dependency
  + remove `AURDEST_SNAPSHOT` environment variable
  + remove `--git`, `--tar`
  + rename `--print` to `--no-build`/`-o`
  + rename `--no-ver-shallow` to `--no-ver-argv`
  + store commits viewed by the user (#379, #711)
  + use `aur-fetch --sync=auto`

* `aur-vercmp`
  + add `AUR_DEBUG`, `NO_COLOR` environment variables

* `Makefile`
  + allow overriding `AUR_LIB_DIR` at build time

## 2.3.7

## 2.3.6

## 2.3.5

## 2.3.4

## 2.3.3

## 2.3.2

## 2.3.1 - 2019-02-21

* `aur-build`
  + add `--results`
* `aur-sync`
  + documentation updates (#350, #507)
  + ask for confirmation if `PAGER` is set (#530)
* `aur-repo-filter`
  + documentation updates (#438)

## 2.3.0 - 2019-02-18

* `aur-build`
  + add `--holdver` to makepkg with `--pkgver`
  + exit 2 if `db_path` is not found
* `aur-repo-filter`
  + support versioned packages (#404)
  + remove `--repo` alias to `--database`
* `aur-srcver`
  + remove `--noprepare` from default makepkg options
  + add `--noprepare` option (#523)
* `aur-sync`
  + wrap repo-add `-R` (#521)
  + add `--no-graph` (workaround for #516)
* `aur-vercmp`
  + add `-q`/`--quiet`
  + rename `--equal` to `--current`
* `completions`
  + group options by type (#520)
  + complete `aur-depends` options (#526)

## 2.2.1 - 2019-01-25

* `aur-build`
  + add `--holdver` to `makepkg` options if `--pkgver` is enabled
* `aur-repo`
  + do not include `repo:` in error messages
  + `--all` implies `--upgrades`
* `aur-sync`
  + `cd` before invoking `$PAGER` (#518)
* `aur-repo-filter`
  + if `stdin` is connected to a terminal, mention this on `stderr`
* `aur-rpc`
  + if `stdin` is connected to a terminal, mention this on `stderr`
* `aur-vercmp`
  + if `stdin` is connected to a terminal, mention this on `stderr`

## 2.2.0 - 2019-01-22

* `aur`
  + update `CacheDir` instructions in `aur(1)`
* `aur-build`
  + rename `--run-pkgver` to `--pkgver`, remove `LANG=C` from `makepkg -od`
  + remove `~` package backup on `--force` (#444)
  + propagate `--pacman-conf` to `pacman-conf` (local builds)
  + unset `PKGDEST` prior to running `makepkg` (#513)
  + remove `--rmdeps` from default options (#508)
* `aur-fetch`
  + expose AUR URL through `AUR_LOCATION` environment variable
* `aur-pkglist`
  + do not require `-P` for regex match
  + Expose AUR URL through `AUR_LOCATION` environment variable
* `aur-rpc`
  + add `--rpc-ver`, `--rpc-url`
  + Expose AUR URL through `AUR_LOCATION` environment variable
* `aur-search`
  + exit 1 on no results
  + exit 2 on AUR error (e.g. "too many results")
  + Expose AUR URL through `AUR_LOCATION` environment variable
* `aur-sync`
  + add `--pkgver` (`aur-build --pkgver`)
  + remove `--rmdeps` from default options (#508)
* `completion`
  + allow `zsh run-help` to display the correct man page (#506)

## 2.1.0 - 2019-01-16

* `aur-build` 
  + `--build-command` now works correctly
  + add `--run-pkgver` to run `makepkg -od` before `makepkg --pkglist` (relevant to VCS packages)
* `aur-depends`
  + now takes input as arguments, instead from `stdin`
  + add `--table`, `--pkgbase`, `--pkgname` and `--pkgname-all` (defaults to `--pkgname`)
* `aur-search`
  + add `--raw` to display JSON output
* `aur-sync`
  + add `--ignore-file` (same as `aursync --ignore`)
  + check the (`.SRCINFO`) dependency graph before file inspection
* `aur-fetch-git` and `aur-fetch-snapshot` were removed and merged to `aur-fetch`

## 2.0.1 - 2019-01-11

* `aur-build`
  + do not export PKGDEST for non-chroot builds (#498)                               
  + add --build-command (#498)
  + man page updates (#217)
* `aur-sync`
  + add --keep-order for parallel aur-fetch

## 2.0.0 - 2019-01-10

* `aur` *(new)*
  + wrapper for the new `git(1)` based design
* `aur-build`
  + remove `repose` support, see https://bbs.archlinux.org/viewtopic.php?pid=1707649#p1707649
  + abort if updating a signed database without `-s` (#246)
  + add `AUR_REPO`, `AUR_DBROOT` environment variables (#302)
  + add `--makepkg-conf`, `--pacman-conf` (#242)
  + use `pacman-conf` instead of `pacconf`
* `aur-chroot` *(new)*
  + new tool containing the functionality of `aur-build -c`
  + support container builds without using a local repository
  + support multiple repositories
  + preserve `GNUPGHOME` (#427)
  + use `pacman-conf` instead of `pacconf`
* `aur-fetch`
  + use `HEAD@{upstream}` instead of `HEAD` for `git reset` (#349)
  + use `wget` instead of `aria2c` or `curl`
  + support diffs for `tar` snapshots (requires: `diffstat`)
* `aur-graph`
  + rewrite in awk (#361)
  + add support for virtual and versioned dependencies (#10)
* `aur-repo` *(new)*
  + manage local repositories
* `aur-rpc` *(new)*
  + send `GET` requests to `aurweb`
  + use `wget` instead of `aria2c` or `curl`
* `aur-search` 
  + add `License`, `Keyword`, `Depends`, `MakeDepends` and `CheckDepends` fields
  + add `depends`, `makedepends` search (#432)
  + add popularity to `brief` output (#420)
  + colorize if `stdout` is a terminal (#473)
  + use intersection of results for multiple terms (#328)
  + use `aur-rpc` to query `aurweb`
* `aur-sync`
  + add `AUR_PAGER` environment variable (file review, #51)
  + add `--bind-rw` (#428)
  + add `--ignore-arch` (`makepkg -A`, #309)
  + add `--nover-shallow` (only check versions for depends, #374)
  + add `--provides` (virtual dependencies, #452)
  + add `--rebuild`, `--rebuildtree` aliases (#424)
  + rename `--repo` to `--database` (#353)
  + the `--ignore` option now takes a comma-separated list of packages
  + fetch sources in parallel
  + set the default value for `AURDEST` to `$XDG_CACHE_HOME/aurutils/sync`
* `aur-srcver` *(new)*
  + print latest revision of VCS packages
* `aur-vercmp-devel` *(new)*
  + compare latest revision of VCS packages to a local repository
* `officer` *(removed)*
  + removed in favor of `pacman --config`
* `completion`
  + add `bash` completion (requires: `bash-completion`)
  + add `zsh` completion in a later release (#458)
* Fixes for known issues in `1.5.3`.