fix(deps): update dependencies - #16
Merged
Merged
Conversation
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.
This PR contains the following updates:
v0.36.0→v0.37.0v0.8.0→v0.11.0Release Notes
go-crdt/crdt (github.com/go-crdt/crdt)
v0.37.0Compare Source
A release that does nothing, on purpose.
A text and a list learn to accept an operation that names nothing and does
nothing but account for a run of sequence numbers — exactly what a map's
MapSupersededhas always done. Nothing here produces one, and no behaviourchanges.
Why publish it
A peer that does not know a kind refuses it, and the two ends of a session
are not deployed at the same moment. That was the lesson of
go-crdt/collabv0.34.0 a few hours ago, where a new field was made required and broke every
transport that was not gRPC — enough to need a retraction.
So: understand first, send later. The only thing this release buys is the months
it spends published before the other half of #80 lands, and every one of them is
a month of peers that will not have to be refused.
What a run may stand in for
Only operations nothing else names. A deletion is named by nothing, so a
losing one — two replicas deleted the same character, and only one of them is
that character's recorded deletion — can go. An insertion cannot: it is
named by whatever was inserted after it, and a peer sent a run over one would
park everything that followed, waiting for an origin it will never be given.
The encoding
One meaning, one encoding: the clock is the sequence number, and the two
fields a deletion spends on its target hold the span and a zero. Truncated,
carrying anything in the field this kind does not use, or decoding into a span
that reaches back past sequence number one — all refused, because these arrive
from a peer.
dupDeletesis still there and still built and sorted on every snapshot.Removing it is #80's other half, and that needs the compatibility plan the issue
now carries.
v0.36.1Compare Source
sortIDssaid the lists were short and sorted them accordingly. They usuallyare. They are not always: every one of them holds the duplicate deletions a
document is carrying — two replicas deleting the same character make one apiece
— and a document being undone and redone makes a great many. 34 044 in a
room of twenty replicas.
Insertion sort is quadratic, and the map they come out of hands them over in a
random order, which is its worst case.
So the one type of document that undoes things was a hundred times slower than
every other — slow enough that it went untested at any size worth testing,
which is the part that mattered.
The short case keeps its insertion sort. The long one gets a real sort, in the
same order — asserted against a second insertion sort written out in the test
rather than borrowed from the code under test.
Also
Map.Collectnow says what Yjs does instead, read in its source rather thanrecalled. It collects a deleted item by replacing the content and keeping the
item, so the identity always survives and an operation arriving late still finds
something to lose to; causal delivery is the whole precondition there. A map's
tombstone has no content — the record is the space — so v0.36.0's clock floor
is the price of an economy Yjs does not attempt, rather than the repair of a
mistake.
sort.Sliceis not new API; nothing here changes shape.go-pdfkit/ops (github.com/go-pdfkit/ops)
v0.11.0: — print a page bigger than the paperCompare Source
Doc.Poster(across, down)spreads each page overacross×downsheets, so that the sheets printed and taped edge to edge make one page the size of a wall. It is the inverse ofNUp.Every sheet is the size of the page it came from, so a poster of an A4 document prints on A4 and each piece has the page's own proportions — pieces of some other shape do not tape back into the page they were cut from. Where the wall is not the page's shape, the page is enlarged as far as it will go inside it and centred.
The sheets meet exactly, with no overlap for taping, and that is argued rather than defaulted: an overlap would have to be a constant, because
Posteris told how many sheets to use and not how wide the printer's unprinted border is. Meeting exactly is also the only arrangement that is exactly undone — every part of the page lands on one sheet and one only.Judged by poppler, in CI. A page divided into a three-by-three grid, each cell a colour of its own with a black pip in its top-left corner, is postered and rendered: the colour says which cell a sheet shows, and the pip says which way up it is. A PDF's origin is at the bottom, so a poster can come out with every piece present and upside down — which no count of pages would catch. poppler is now installed in CI so that check runs there and not only on a machine that happens to have it.
100% statement coverage,
go vetand-raceclean, nine cross-compile targets, CGO-free.v0.10.0: — the files a document carriesCompare Source
A PDF can hold whole files inside it — the spreadsheet a report was drawn from, the XML a form was filled from, the source of a figure. Every verb here dropped them.
The catalogue's
/Nameswas dropped whole, on the ground that a name tree points into the document. True of/Dests, whose names point at pages this reorders and removes, and of/JavaScript, which is code. Not true of/EmbeddedFiles: a file inside a document belongs to no page, so nothing here can invalidate it — and nothing on the page says it is there, so nobody notices it went until the file is wanted. 45 of the 3 215 documents in the forms and scans corpora carry one.Attachmentslists what a document holds,Attachputs one in,Detachtakes one out. A name already used is refused rather than quietly replacing what is there. A sanitised file still carries nothing inside it.Files from several documents are all kept — two forms cannot be merged and two catalogues cannot be chosen between, but two sets of files can both be carried, because a file belongs to no page.
A specification pointing at no stream, or at bytes still in a filter nothing here unpacks, is not handed over as a file: passing those on gives somebody a spreadsheet that is not one.
Judged by poppler:
pdfdetachlists one file before and two after a rotation and an addition, and saves both with the right bytes.100% statement coverage,
go vetand-raceclean, nine cross-compile targets, CGO-free.v0.9.0: — two piles into one, and a document on one sheetCompare Source
Doc.Interleavetakes pages from each document in turn. It is what a single-sided feeder leaves behind: a stack run through twice comes out as two files — the fronts and the backs — which is one document taken apart. Merging them end to end gives every front then every back; this gives the document. A shorter pile simply runs out, which is what a scanner leaves when the last sheet is single-sided.Doc.OnePagestacks every page onto one sheet. A page is a unit of paper, not a unit of reading: a receipt, a chat log and a web page cut into A4 are one thing a printer divided. Narrower pages are centred.The order is asserted rather than looked at: a PDF's origin is at the bottom, so the first page takes the largest offset. Reversed, every page is still there and the document is upside down.
And poppler was asked rather than ourselves — three marks at known heights come out at 28%, 48% and 70% of the stacked sheet, against 26.7%, 46.7% and 68.3% computed.
100% statement coverage,
go vetand-raceclean, nine cross-compile targets, CGO-free.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate CLI.