Skip to content

fix(downloader): skip archives DLoad cannot unpack when a binary is expected - #164

Merged
roxblnfk merged 3 commits into
1.xfrom
fix/unsupported-archives
Oct 12, 2026
Merged

roxblnfk merged 3 commits into
1.xfrom
fix/unsupported-archives

Conversation

@roxblnfk

@roxblnfk roxblnfk commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

🔍 What was changed

  • When a binary is expected, an asset in an archive format DLoad cannot open (known formats such as .tar.xz, .tar.bz2, .7z, .zst, .rar) is no longer selected, so the downloader moves on to an older release among the 10 newest that satisfy version — the way OS packages are skipped since fix(downloader): skip OS packages when a binary is expected #149. A raw binary, .AppImage and other unknown extensions stay selectable; type="phar" and entries without a <binary> are unaffected, and type="archive" already kept only supported formats.
  • .tgz and .tar are extracted now: PharData opened them already, but no matcher pointed them to the tar extractor, so they failed with NothingExtracted.
  • The supported formats come from ArchiveFactory, so adding an extractor makes its format selectable again without touching the rule.
  • The failure report lists the skipped archives next to the skipped packages, and the warning about falling back to an older release names what the newer one had.

Checklist

Documentation

README (all translations) and the dload-fetch-tool skill mention unsupported archives next to OS packages.

…xpected

Such an archive downloads fine and the installation then fails with NothingExtracted after the release loop is over, so older releases that ship a supported archive were never tried.

A sibling of PackageRule rather than a part of it: the report gives each removal reason its own explanation, and the supported formats come from ArchiveFactory, so a format becomes selectable as soon as an extractor is added.

Closes #152

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added bug Something isn't working tests labels Oct 12, 2026
@codecov

codecov Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
src/Module/Archive/ArchiveFactory.php 92.68% <100.00%> (+1.77%) ⬆️
src/Module/Archive/Internal/TarPharArchive.php 100.00% <ø> (ø)
src/Module/Downloader/Downloader.php 100.00% <100.00%> (ø)
...wnloader/Internal/AssetSelection/AssetSelector.php 100.00% <100.00%> (ø)
...nal/AssetSelection/Rule/UnsupportedArchiveRule.php 100.00% <100.00%> (ø)
...Downloader/Internal/Diagnostics/ReleaseAttempt.php 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

PharData already opens both formats, but no matcher pointed them to TarPharArchive, so the new rule dropped them as unsupported and before it they failed with NothingExtracted.

The rule recognises only its own list of archive extensions, so the docs name the skipped formats as examples rather than claiming that every other format is skipped.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
@roxblnfk
roxblnfk merged commit 9cc255c into 1.x Oct 12, 2026
23 checks passed
@roxblnfk
roxblnfk deleted the fix/unsupported-archives branch October 12, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

An archive DLoad cannot unpack is selected instead of an older release's binary

1 participant