Release 0.9.0 - #102
Merged
Merged
Conversation
…landed All eight version strings and the four lockfiles. The release guard checks two of them (issue #77), so the rest are by hand and by eye. Minor rather than patch because v0.9.0 changes observable behaviour: an archive whose listing cannot be read is now refused outright instead of extracting whatever preceded the damage. It also adds public surface to collapse-remote (`Timeouts`, `compress_path_with`, `check_health_with`, and the `waiting` module). Not a bump: `bad.zip` is removed. It is 24 bytes of junk from a shell check whose `cd` failed, so the file landed in the repository root instead of the scratch directory, and `git add -A` swept it into #101. A release branch should be a bump and nothing else, so this is called out rather than hidden: it is a deletion of something that was never meant to exist.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Version bump, plus one deletion that is called out rather than hidden.
Why minor, not patch
v0.9.0 changes observable behaviour: an archive whose listing cannot be read is refused outright instead of extracting whatever preceded the damage (#89). Anyone relying on a truncated tar handing back partial contents will notice. That capability is not gone, it is just no longer what
extractdoes by default: the backends take no options and still salvage.It also adds public surface to
collapse-remote:Timeouts,compress_path_with,check_health_withand thewaitingmodule.What is in it
Three PRs since v0.8.0, all in the remote and extraction paths.
#99, closes #48. The poll loop slept a flat 200 ms before asking a second time, so a job the server had already finished still cost the caller that much. It now starts at 10 ms and doubles to the same ceiling. Measured with the real binary against a real server: a five byte file goes from 236 ms to 44 ms, and a 60 MB job taking ~8.3 s is unchanged. Not uniformly faster, and that is pinned: a job finishing just after the ramp is asked again a whole ceiling later, worst case 110 ms, bounded. The loop moved behind two injected traits so the schedule is checked in microseconds instead of against a wall clock.
#100, closes #71. No deadline, no maximum polls, no per-request timeout: a server that accepted the connection and then said nothing kept the client waiting for as long as the process lived. Now bounded by connect 10 s and read/write 30 s. The limit is on the server's answers, never on the job: compression may run for hours, and a test fails if a total deadline is ever added. Two ureq behaviours were verified rather than assumed, one of which would have broken large transfers if guessed wrong.
#101, closes #89. A listing that could not be read used to be waved through, and every entry before the damage was then written under its raw name, unrewritten and unrefused. On Windows that turned
notes.txt:hiddeninto an invisible NTFS stream without the user seeing the question, which is #63's harm without consent, arranged by appending one bad 512 byte header to a tar.The deletion
bad.zip, 24 bytes, removed. It came from a shell check of mine whosecdfailed, so the file landed in the repository root instead of the scratch directory, andgit add -Aswept it into #101. A release branch should be a bump and nothing else, so it is named here rather than slipped in.Verification
604 Rust tests and 113 Vitest, on three platforms.
cargo build --lockedrun after the bump, since that is whatmake cli/releaseuses and a drifted lockfile fails there first.Closing keywords go on the dev-into-main PR: the default branch is
main, so GitHub ignores them here.