Fix extension stripping, add tests, improve artifact module organization #40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In version
0.1.6
of Rokit, more specifically commit 1c6b7ef, Rokit started stripping extensions from file names to fix artifact names such astoolname-win64.zip
not correctly being detected as Windows OS.It turns out however that the stripping mechanism was too greedy, and tool names such as
lune-0.8.6-linux-x86_64.zip
, with version numbers in them, had8
,6-linux-x86_64
, andzip
"extensions" stripped away, leaving no OS or architecture information left for Rokit to parse.This PR fixes the above issue and adds two safety mechanisms to prevent it from happening again:
Stricter tests, including real world tool artifacts, have also been added.
Business logic for the
artifact
module has now also been split into three modules to make debugging and reading easier:format.rs
for theArtifactFormat
enum and its parsingprovider.rs
for theArtifactProvider
enum and its parsingutil.rs
for the new extension splitting mechanism, and its tests