Changelog

All notable changes to this project will be documented here.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

Added

Changed

Fixed

2.2.0

Added

  • Configuration file tower: Degasolv looks for config files in pre-defined locations on the file system if they exist, see Default Configuration Files.
  • Environment variable support: environment variables are consulted first, but are merged into the option map AFTER config file material and BEFORE any given command line options, see Environment Variables and How Options are Gathered
  • Added support for HTTP/HTTPS authentication using basic, oauth2 token and header methods, see A Note on Specifying Files.

Changed

  • Removed deprecated, unused function degasolv.util.assoc-conj

Fixed

  • Option packs are expanded at the level upon which they are defined, then the options are merged together. This seemed like a bug that needed fixing. See Option Packs for more information.

2.1.0

Added

  • Added “version suggestion”, a performance enhancement allowing for minimum version selection
  • Added the :index-sort-order option to generate-repo-index, allowing users to specify ascending or descending. Previously only descending was supported. With this new option, users will be able to use Degasolv in a minimum version selection configuration.
  • If the reason for failure in the resolve-dependencies function is :present-package-conflict, add a key :package-present-by with value as either :found meaning the package was in conflict with a package found during resolution, or with value as :given meaning the package was in conflict with a package given via the parameter present-packages.

Changed

  • Removed the deprecated functions ->requirement, ->package, and ->version-predicate from usage in the code base.
  • Removed dbg2 macro in favor of keeping dbg

Fixed

  • Standardized capitalization of the word “Degasolv” to be title case for consistency in the documentation unless it is in a code snippet.
  • Fix #16
  • Fix spec for package id’s. This should have the effect of enforcing that names should not have >, <, !, =, ,, ;, or | characters in them. This simply has the effect of changing the error message, as this was never allowed but handled poorly.

2.0.0

Added

  • Documentation saying what return codes are given and what they mean.
  • For #15, added ability to specify output format for display-config.
  • Added 3rd Party Licenses document

Changed

  • In the docs, java -jar degasolv-<version>-standalone.jar changed to degasolv with added note for clarity
  • For #13, return code for resolve-locations changed to 3 when dependency resolutions occur to distinguish them from normal “you got the argument string wrong” errors
  • Default --{enable|disable}-error-format set to enabled for resolve-locations and query-repo.
  • Default for --list-strat option for resolve-locations set to lazy, a much saner default.
  • Option pack v1 added to help administrators keep compatibility with version 1 of Degasolv if required.
  • Default for the --version-comparison option when --package-system is degasolv set to semver for generate-repo-index (option here), resolve-locations (option here) and query-repo (option here).
  • Removed less-than-useful warning about absent config files.

Fixed

  • Fixed #14, “Degasolv pulls in X”
  • Fixed bug where display-config didn’t allow the user to specify valid options for other things, now it does
  • Fixed bug where index.dsrepo didn’t generate anything except an empty map inside the file. This was completely broken.
  • Fixed #6, “If one config file fails to load, the rest do as well”
  • Fixed #9, “Heading for ‘Specifying Subproc Executable’ is wrong in docs”
  • Fixed #10, “How do you specify requirements of a package (deps) in the output of a subproc to Degasolv?”

1.12.1

1.12.1 was strictly a docs release. No code changes were made and no runnable artifacts were created.

Added

  • Added authors file to docs

Fixed

  • Fixed changelog so that the 1.12.0 release was present in the document
  • Fixed package system subheaders in command reference

1.12.0

Added

Changed

Fixed

  • JSON/EDN output for query-repo erroneously listed the subcommand as resolve-locations. Fixed.

1.11.0

Added

Changed

  • Overhauled the documentation option look and feel; ensured that options themselves had a linking target (header)

1.10.0

Added

1.9.0

Added

Fixed

  • Removed validation from the config file option, allowing it to be a URL or anything else.
  • If no arguments are given, the help screen is now printed instead of a wierd error.

1.8.0

Added

  • Distribution is now done via RPM and Debian package as well as JAR fil
  • Added the --version-comparison option to generate-repo-index (option here), resolve-locations (option here) and query-repo (option here), allowing the user to specify which version comparison algorithm is used.
  • Added the --search-strat option to resolve-locations, allowing users to select breadth first search or depth first search during resolution
  • Added the matches operator (<>REGEX) which matches a version against a regex
  • Added the in-range operator (=>V) which matches a version against a certain range of indexes
  • Added the ability to specify --present-package multiple times using the same package name, but different versions. This is useful for when the :conflict-strat is set to inclusive.
  • Added tests testing to make sure that unsuccessful runs generate the proper error messages.

Changed

  • Reorganized the unit tests.
  • Alphabetized the options for generate-card.
  • Alphabetized the options for generate-repo-index.

Fixed

  • Fixed bug wherein if the conflict strategy is set to :inclusive and a package satisfying a requirement is already found or present, it is used instead of finding a new one.
  • Fixed CLI of display-config so that it actually works as advertised, LOLZ
  • Fixed the CLI output of --help so that default values of options are shown again :)
  • Refreshed the CLI output of --help for all the subcommands as posted in the docs

1.7.0

Added

Fixed

  • Fixed how default options work, they no longer override stuff found in the config file (ouch)
  • Fixed output of printed warning when configuration file is not used

1.6.0

Added

  • Formatted docs better on the front page for PDF purposes
  • Add ability to use any (long) option on the command line in display-config

Improved

  • Memoized core Degasolv package system repository function (should speed the resolver up a bit)
  • Changed apt reop function from filtering a list to lookup in a map, increasing its speed

1.5.1

Added

  • In just ~15 seconds, it slurps in a rather large apt repository Packages.gz file. In another ~45 seconds, it resolves the ubuntu-desktop package, spitting out a grand total of 797 packages with their locations.

Fixed

  • While using the apt data and package system to profile Degasolv, I found some rather nasty bugs. This release fixes them. This tool is now ready for prime time.

1.5.0

Added

  • Added the --disable-alternatives option and the --enable-alternatives option for debugging purposes.

1.4.0

Added

  • Added the --present-package option and the --package-system option to the resolve-locations subcommand. This was so that Degasolv could be profiled using apt package repos (real-world data) and thereby have its performance optimized.

1.3.0

Added

  • Add standard input as a file type. All options which take a file name may now have - given as the filename, to specify that standard in should be used.

1.2.0

Added

  • Added the ability to specify multiple configuration files, thus allowing for site-wide configuration.

1.1.0

Added

1.0.2

  • This isn’t the first release, but for the purposes of these docs, it is :D