# Aura Changelog ## 2.0.2 - Bug fixes and performance improvements. ## 2.0.0 This is a large update representing about a month of full-time effort. Aura is now *much* faster, solves dependencies more reliably, has a few new features, and many fewer bugs. This is all while modernizing the code and seeing a ~15% decrease in overall code size. ### Improvements #### Dependency Handling - Dependency resolution is now much faster and **handles split packages correctly**. As such, the following troublesome packages now build correctly: - `android-sdk` - `backintime` - `clion` - `libc++` - `mysql-connector-c++` - `telegram-desktop-dev` - `zoom` - Dependency provider selection for AUR packages. - Example: `cron` is a legal dependency to specify, but there exists no package with that name. `cronie` and `fcron` both "provide" `cron`, and now the user can manually make a selection. - Including `--noconfirm` will have Aura make its best guess. - If the exact version of an AUR package is available in the package cache, it will be used automatically instead of being rebuilt. You can instead force a rebuild with `--force`. #### PKGBUILD Analysis - In light of the recent [compromise of the Acroread package](https://lists.archlinux.org/pipermail/aur-general/2018-July/034151.html), Aura nows performs static PKGBUILD analysis before building, and warns the user if potentially malicious terms like `curl` are found. - This feature can be disabled with `--noanalysis`. Caveat emptor! - **This feature is a supplement in checking PKGBUILD safety, not a fool-proof replacement.** It is always your responsiblity to understand what build scripts are running on your machine. #### Saved Package State - `-Su` and `-Au` automatically save a package state before updating (unless you're doing `--dryrun`). This lets you more easily roll back from problematic updates. - Saved package states can now be "pinned", which will protect them from removal via `-Bc`. To pin a certain state, open its JSON file (see below in *Breaking Changes*) and edit the `pinned` field from `false` to `true`. #### CLI Flags - Various CLI flag improvements: - `-A --json `. Query the AUR directly for a package's raw JSON data. Great for debugging. - `-Br` has been restored as short-hand for `-B --restore`. - Added `-Bl` to list all saved package state filenames. - `-Cb` added as a short-hand for `-C --backup`. - The Pacman flags `--ignoregroup`, `--cachedir`, `--config`, and `--logfile` also now affect Aura. - `--dryrun` no longer requires sudo. - `--color never` turns off all text colouring. Further, by default, Aura will only automatically colour text when it detects that the output device is a terminal (and not a Unix pipe, say). These behaviours match Pacman. #### Translations - Improved Japanese translations thanks to **Onoue Takuro**. - Improved Portuguese translations thanks to **Wagner Amaral**. - Improved Russian translations thanks to **Alexey Kotlyarov**. #### Misc. - Packages that aren't interdependent will be built in succession without prompting the user, only calling down to `pacman` once per group. - Modernized the Haskell code: - Removed custom CLI flag handling in favour of `optparse-applicative`. - Removed custom package version number parsing in favour of `versions`. - Removed custom text colouring code in favour of `prettyprinter`. - Removed the `Aura` Monad in favour of Extensible Effects via `freer-simple`. - Removed custom shell interaction code in favour of `typed-process`. - Used `async` to make AUR and `pacman` calls concurrent. - `megaparsec` parsers used in place of hacky Regexes. - `aura` is now a library as well, and can be pulled into other Haskell projects. ### Breaking Changes - `-B` now saves package states as JSON. This makes them readable by other tools, and also improves internal code quality. **All old package state files are no longer readable by Aura.** - The `"time"` field in these files is now a Haskell `ZonedTime`. - Various CLI flag changes: - `--auradebug` is now just `--debug`, matching Pacman. - `--aurignore` is now just `--ignore`, matching Pacman. - `-Aw` has been removed. - `-y` no longer works with `-A`. Perform an `-Sy` ahead of time instead. - `-O` no longer accepts arguments to adopt packages, it only displays current orphans. Use `-O --adopt` instead for the old behaviour. - `-Ccc` is now `-C --notsaved`. - Help messages (`-h`) are no longer localised. - Support for `powerpill` removed. - Support for `customizepkg` removed. ### Bug Fixes - Aura no longer returns an exit code of 1 if no packages are available to upgrade. - `-Aq` no longer fails at the package installation step. - Ctrl+C at certain moments no longer preserves the Pacman lock file. - `makepkg` output is no longer coloured green. ## 1.4.0 - *Dependency resolution vastly improved.* We removed the Bash parser that used to poorly handle the bulk of this. - Chinese translations thanks to Kai Zhang. - `-M` operator and associated code fully removed. ## 1.3.9 - Updated Swedish translations - Disabled `-M` operator due to the `abs` tool being deprecated by Arch Linux ## 1.3.8 - Fixed behaviour of `-B` flags. For restoring of saved states, use the long form: `aura -B --restore`. Cache backups also need to take their long form: `aura -C --backup`. - Fixed handling of language flags. Thanks to Doug Patti! ## 1.3.5 - Aura now uses version 5 of the `aur` package, to fix a critial bug - Updated Spanish and Polish ## 1.3.4 - Bash parser bug fix. Fixes some packages. ## 1.3.3 - Bash parser extended to be able to handle bash array expansions. This enables packages with more (Bash-wise) complex PKGBUILDs to build properly. ## 1.3.2.1 - `-Ai` and `-As` show popularity values. - `aur4` is no longer referenced. - `Yes/No` prompts are now localized. - Aura can be built with `stack`. - Updated German translation. ## 1.3.1.0 - Aura builds against GHC 7.10. - Updated German and Russian translations. ## 1.3.0.4 - Must use `--builduser` when building as root. - Bug fix regarding `--needed`. - Updated Portuguese translation. ## 1.3.0.3 - Pacman flags `--ignore` and `--ignoregroup` now work. - Bug fixes. ## 1.3.0.2 - (Bug fix) If a user tries to install a package in `IgnorePkg`, they will now be prompted. - Man page updated. - Dependencies updated. ## 1.3.0.1 - (Bug fix) Tarballs are now downloaded from a URL provided by the RPC. ## 1.3.0.0 - Last major version of Aura 1! We have entered the design phase for Aura 2, the implementation of which will transform Aura into a multi-distro package management platform. - Aura 1 itself has entered "legacy" mode. The only releases to be made on Aura 1 after this will be of `1.3.0.x`. You'll likely never see `1.3.1.x`. - Befitting a major release, we have: - New AUR interaction layer via the `aur` package. This fixes nasty "AUR lookup failed" errors. - `http-conduit` dropped for `wreq`, which is much easier to use. - Better version number parsing/comparison on installation/upgrading. - Package state backups have had their format changed. This BREAKS _all_ previously saved states. Please delete your old ones! - Implemented extended `--needed` functionality for the AUR side of Aura. AUR packages won't build if they're already installed. - Indonesian translations! - Other updated translations. ## 1.2.3.4 - zsh completions completely redone (thanks to Sauyon Lee!) Having `aur-git` installed will let you auto-complete on AUR packages. ## 1.2.3.3 - `-As --{head,tail}` can now be passed numbers to truncate the results to any number you want. The default is 10. - Updated Russian translation. ## 1.2.3.2 - Expanded Bash completions: Aura Only * Expanded completion for all options and search sub-options * Package completion for -M/--abssync * Completion for orphans using self-generated list Pacman * Include completion for all pacman options * Directory or file completion for some common options - Use `--dryrun` with `-A` and `-M` install options to test everything up until actual building would occur (dependency checks, etc.) ## 1.2.3.1 - Network.HTTP.Conduit errors are now caught properly and don't crash aura. - `customizepkg` usage corrected. - zsh completions slightly expanded. ## 1.2.3.0 - Moved to `Network.HTTP.Conduit` from `Network.Curl` This fixes the AUR connection issues. Binary size has increased by quite a bit. ## 1.2.2.1 - `-Ai` now shows dependencies. ## 1.2.2.0 - Happy New Year! - makepkg's `--ignorearch` flag is now visible to Aura. This allows users to build AUR packages on ARM devices without worrying about architecture restrictions in PKGBUILDs. - Use `--head` and `--tail` to truncate `-As` results. - `-B` now uses local time. - Bug fixes and translation updates ## 1.2.1.3 - `-As` results now sort by vote. Use `--abc` to sort alphabetically. - "[installed]" will now be shown in `-As` results if you have it. - Fixed Bash parsing bug involving `\\` in arrays - Fixed broken `-C` - Updated Italian translation - Updated French translation ## 1.2.1.2 - Happy Canadian Thanksgiving - Bug fixes ## 1.2.1.1 - Norwegian translation added! - Dependency checks slightly faster - `--hotedit` and `--custom` can now be used together - Bug fixes ## 1.2.1.0 - New `builduser` option - `Prelude.head` bug fixed - Dependency checking is faster - New `-k` output - `--absdeps` works properly now - Other bug fixes ## 1.2.0.2 - Bug fixes and spelling corrections. ## 1.2.0.1 - Fixes dependency build order bug. ## 1.2.0.0 - New operator `-M` for building ABS packages. Has its own family of options. - Pre-built binary package available (x86_64 only) - Updates to Aura are now prioritized like pacman updates. - Dependency checking is now faster. - Use `-Ccc` to clean the cache of only packages not saved in any package record. - `-Ai` now shows Maintainer name. - Extensive API changes. ## 1.1.6.2 - New option `--no-pp`. Disables use of powerpill, even if you have it. - This is a light release, as major work is being done on version 1.2 on another development branch. ## 1.1.6.1 - Compatable with pacman 4.1 - All pacman-color support removed - `-As` output slightly altered to match pacman. - Bug fixes. ## 1.1.6.0 - New option `--build` for specifying AUR package build path. - Vote number now shown in `-As` output. - Fixed Repo/AUR name collision bug. - API Change: Argument order for functions in `Aura/Languages` changed. ## 1.1.5.0 - `customizepkg` now usable with Aura. Activate with the `--custom` option. - API Change: Aura/Pkgbuilds now a set of libraries as Aura/Pkgbuild/* ## 1.1.4.3 - Fixed flaw in `-Br`. - Fixed repititious `-Ad` output. - API Change: Aura/AurConnection renamed to Aura/AUR - API Change: function names in Aura/Languages now have better names. ## 1.1.4.2 - Haskell deps have been moved back to `makedepends`. - haskell-http removed as dependency. - API Change: function naming conventions in `Aura/Languages.hs` has been changed. The localisation guide was also updated to reflect this. ## 1.1.4.1 - Support for the $LANG environment variable. - Aura will now pause before post-build installation if the package database lock exists. This means you can run multiple instances of Aura and avoid crashes. ## 1.1.4.0 - Serbian translation added. Thank you, Filip Brcic! - Fixed bug that was breaking `aura -Ss`. ## 1.1.3.0 - Changed `--save` and `--restore` to `-B` and `-Br`. `--save` is now just an alias for `-B`, but `--restore` must be used with `-B`. - New option `-Bc` for removing old unneeded package states. - `-Br` output is now sorted better and makes more sense. - Bash Parser can now properly parse `if` blocks, meaning packages that have conditional dependencies based on architecutre will now build properly. - API Change: `Aura.General` is now `Aura.Core` - Dep Change: `haskell-url` no longer needed. ## 1.1.2.1 - Added message to `--save`. ## 1.1.2.0 - Bash parser completely rewritten. - Bug fixes (thanks to the new parser) ## 1.1.1.0 - New option `--devel`. Rebuilds all devel packages installed. - Italian translation added! Thank you Bob Valantin! - Support for `powerpill` added. It will be used if installed, unless the PACMAN variable is specifically set to something different. - Aura can now handle PKGBUILDs that produce multiple .pkg.tar files. - Bug fixes ## 1.1.0.0 - New `--save` and `--restore` options. - New option `-Ak` for showing PKGBUILD diffs when upgrading. - New option `--aurignore` for ignoring AUR packages. - Aura now reads `color.conf`. - Massive breaking API changes everywhere. - Aura now runs on the Aura Monad. - Code is quite cleaner now. ## 1.0.8.1 - Bash completions added. - zsh completions added. - Changed `--conf` to `--viewconf` - Fixed bug involving "symlink" Haskell error. ## 1.0.8.0 - Moved certain general functions to `Aura.Utils` - Moved `-L`, `-O`, `-A` functions out of `aura.hs`. - `--hotedit` functionality altered (fix). - The license message is now more badass. ## 1.0.7.0 - New libraries: Aura.Time, Aura.State - Moved `-C` functionality to `Aura.C` - New secret option you don't get to find out about until 1.1 - Fixed manually alignment stupidity with `-Li`. - Bug fixes ## 1.0.6.0 - New libraries: ColourDiff, Data.Algorithm.Diff, Aura.Pkgbuilds - Aura.AuraLib split into Aura.General, Aura.Build, Aura.Dependencies - New secret option you don't get to find out about until 1.1 ## 1.0.5.0 - Fixed bug where packages with `+` in their name couldn't be searched or built. - `-As` now allows multi-word searches, as it always should have. - `pacman-color` integration is more complete. Still does not read the color.conf directly. ## 1.0.4.0 - Added French translation. Thanks to Ma Jiehong! - Added Russian translation. Thanks to Kyrylo Silin! - Fixed bug where packages with dots in their name wouldn't build. ## 1.0.3.2 - Moved haskell dependencies out of `makedepends` field and into `depends` field in PKGBUILD. Makedepends can usually be ignored after building, but haskell packages are a pain to rebuild and reregister at every build. It's more realistic to just keep them installed. This is what other haskell packages in the AUR do as well. - Fixed pacman-color issues. ## 1.0.3.1 - Added `--auradebug` option. ## 1.0.3.0 - Compatibility with AUR 2.0 added. - Portuguese translation added. Thanks to Henry "Ingvij" Kupty! - Support for `pacman-color` added. Run sudo with `-E` a la: sudo -E aura -Ayu - Fixed backslash parsing bug in `Bash`. ## 1.0.2.2 - Fixed parsing bug in `Bash`. If one package fell victim, a whole `-Au` session would fail. ## 1.0.2.1 - Added License info to source files. - Fixed virtual package recognition bug. - Altered version conflict error message. - Fixed bug in Bash parser that would occasionally break parsing. ## 1.0.2.0 - Bug fixes. - Extended the Bash parser. PKGBUILDs that had bash variables in their dependency arrays will now be parsed correctly. ## 1.0.1.0 - German translation (use with --german). Thanks to Lukas Niederbremer! - Spanish translation (use with --spanish) Thanks to Alejandro Gómez! - Replaced regex-posix with regex-pcre. - `-As` now highlights properly. - Moved a number of modules to `Aura/` ## 1.0.0.0 - Fixed `-V` message in terminals other than urxvt. - New `haskell-ansi-terminal` library to do this. ## 0.10.0.0 - Internet access moved to Network.Curl library. - `Bash.hs` library created to help with PKGBUILD parsing. Can currently handle string expansions a la:: "this-is-{awesome,neat}" => ["this-is-awesome","this-is-neat"] ## 0.9.2.3 - Dependency determining speed up. - Added AUR URL to `-Ai`. ## 0.9.3.2 - Swedish translation. Thanks to Fredrik Haikarainen! ## 0.9.2.0 - `-Ai` and `-As`! ## 0.9.1.0 - `-Au` is about 20 times faster. ## 0.9.?.? - Polish translation. Thanks to Chris "Kwpolska" Warrick! - Croatian translation. Thanks to Denis Kasak! ## 0.9.0.0 - New `-O` operation for dealing with orphan packages. - A man page! ## 0.8.0.0 - Help message now supports multiple languages. - Broke "no overlapping options" convention. - `-Cz` is now `-Cb`. - New option `-Ad`. Lists _all_ dependencies of an AUR package. This is to aid pre-building research. This option shows information you can't get from looking at PKGBUILDS! ## 0.7.3.0 - New option `--conf`. Lets you quickly view your pacman.conf. ## 0.7.2.3 - `--log` is now `-L`. - New option `-Ls`. Search the log file via a regex. - New option `-Li`. Reports information on a given package that has had any appearance in the log file. ## 0.7.0.0 - `--hotedit` option added. - `Shell` library added. ## 0.6.0.0 - Aura passes proper exit codes to the shell upon completion.