Release Notes 1.15.0

Sorcery 1.15.0 has finally been released! A few years have passed since the inception, so the changelog is long and full of bugfixes, optimisations and new features. Some of the more noteworthy ones are mentioned below.

Major features and improvements

  • sorcery queue and queue-security are now much faster by avoiding disk IO (~10 times in lynx's case) and optionally (default: VERBOSE_QUEUING=on) more verbose. It displays all the reasons why the particular spell is being put into the queue. For security updates it states if there was more than one.
    • as a side effect, also cast -Z is much faster when searching for possible updates
  • partly improved resurrect: better resurrection and its integration into the casting process
    • a new tool (called resurrect) specifically for dealing with resurrecting
  • timing functionality. It can be accessed via gaze time, gaze time-system and their subcommands. The functions print various casting times. Especially gaze time --full can be useful for estimating future casting time.
  • the spell's FINAL outputs are duplicated at the end of cast
  • when a spell fails, a short reason for the failure is displayed in the summary
  • improved cleanup algorithm when a spell fails in the dependency resolution part of cast
  • conflicts and security questions are now asked during the dependency resolution phase
    • the conflicts are then dispelled right before the spell is cast or resurrected

Misc new features

  • mercurial and bazaar-ng url and download handlers
  • initial sorcery variables can now always be overriden from the environment (eg. VOYEUR=off cast -Z ask-no xorg-server)
  • sanity check of source is now done right after download (previously before first use), allowing for a refetch from mirrors
  • added xz, 7z and lzma decompression support and the possibility to use xz or pbzip2 as default compressors
  • external mirror list support (cast smgl-mirrors), deprecating the internal one
  • the default http/ftp/http download handler is now configurable. You have the additional choice of using aria2
  • added option to show a spell description option in queries for optional dependencies
  • dispel -d doesn't need to be passed the version anymore and will display a list of those available (same goes for resurrect)
  • scribe index now also shows VERSION of/from each grimoire
  • cast -O now also checks for disabled dependencies on features the spells are providers of
  • scribe reindex-version: creates the grimoire version index (useful for grimoire generation)
  • gaze install can accept an optional version
  • sorcery: added -rr|rebuild-reconfigure
  • scribbler: added an option for creating local grimoires directly
  • libgcc from the grimoire was merged into sorcery, introducing a new api call: using_gcc
  • gaze size -all: prints the size and file counts for all installed spells, plus the details of the biggest
  • gaze from now optionally uses regular expressions for searching (pass -regex)
  • delve now also supports -g for limiting it to a subset of grimoires

Misc changes

  • disabled the "continue to use" queries for providers
  • BUILD_API=2 is now the default. Among other things this means that you don't have to change manually copied spells or add API_VERSION to new local grimoires.
  • invoke was completely removed; if you used it (wow), get enthrall instead
  • the disabled voyeur mode now prints more status updates and also has an effect on resurrect
  • validate commandline parameters before su-ing to root
  • gaze: overhaul of export and import