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¶
- Added
packrat-install-graph, a packrat-compliant install graph, to the JSON output - Separated CLI uberjar from library jar, both dependencies and source. Now degasolv can be included as a dependency and its resolver used elsewhere.
- Added capability to build using graalvm, allowing for statically compiled builds
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-orderoption togenerate-repo-index, allowing users to specifyascendingordescending. Previously onlydescendingwas 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-dependenciesfunction is:present-package-conflict, add a key:package-present-bywith value as either:foundmeaning the package was in conflict with a package found during resolution, or with value as:givenmeaning the package was in conflict with a package given via the parameterpresent-packages.
Changed¶
- Removed the deprecated functions
->requirement,->package, and->version-predicatefrom usage in the code base. - Removed
dbg2macro in favor of keepingdbg
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.jarchanged todegasolvwith added note for clarity - For #13, return code for
resolve-locationschanged to 3 when dependency resolutions occur to distinguish them from normal “you got the argument string wrong” errors - Default
--{enable|disable}-error-formatset toenabledfor resolve-locations and query-repo. - Default for
--list-stratoption for resolve-locations set tolazy, a much saner default. - Option pack
v1added to help administrators keep compatibility with version 1 of Degasolv if required. - Default for the
--version-comparisonoption when--package-systemisdegasolvset tosemverfor 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-configdidn’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¶
- Added the
--{enable|disable}-error-formatoptions to resolve-locations and query-repo. - Added the
--package-system subprocoption, together with its Specify Subproc Package System Executable and Specify Subproc Package System Output Format options. - Added the
--json-configglobal option allowing users to use JSON config files - Added the
--list-stratoption to resolve-locations, allowing users to have their dependencies listed in a sane order.
Changed¶
Fixed¶
- JSON/EDN output for
query-repoerroneously listed the subcommand asresolve-locations. Fixed.
1.11.0¶
Added¶
- Added the
--metaoption to generate-card - Added metadata a la
--metato theaptpackage system (experimental) - Added the
ednoutput format option for theresolve-locationssubcommand - Added the
--output-formatoption to the query-repo command
Changed¶
- Overhauled the documentation option look and feel; ensured that options themselves had a linking target (header)
1.10.0¶
Added¶
- Added the
--output-formatoption to resolve-locations
1.9.0¶
Added¶
- Added the pessimistic greater-than comparison operator
><.
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-comparisonoption 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-stratoption 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-packagemultiple times using the same package name, but different versions. This is useful for when the:conflict-stratis set toinclusive. - 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
:inclusiveand 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
--helpso that default values of options are shown again :) - Refreshed the CLI output of
--helpfor all the subcommands as posted in the docs
1.7.0¶
Added¶
- Added
--option-pack, the ability to specify multiple options at once
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.4.0¶
Added¶
- Added the
--present-packageoption and the--package-systemoption 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¶
- Added the
--conflict-stratoption to the resolve-locations subcommand. - Added docs and tests.
1.0.2¶
- This isn’t the first release, but for the purposes of these docs, it is :D