Releases: Byron/crates-index-diff-rs
v19.0.0
Chore (BREAKING)
- upgrade to
gix v0.47
(from v0.45).
This includes integration with gix negotiation algorithms and support for
multi-round negotiation just like git does it.
Commit Statistics
- 2 commits contributed to the release over the course of 13 calendar days.
- 13 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
v18.0.0
Chore (BREAKING)
- upgrade dependencies
- gix 0.44 -> 0.45
- hashbrown 0.13 -> 0.14
Commit Statistics
- 1 commit contributed to the release.
- 25 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Upgrade dependencies (7427603)
v17.0.0
Chore (BREAKING)
- upgrade
gix
from v0.37 to v0.44.
Note that there is no breaking change, but the major version bump is merely
for safety and to make it easy to reatain a certaingix
version within the tree.
Commit Statistics
- 3 commits contributed to the release.
- 82 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
v16.0.1
Bug Fixes
- make
DependencyKind
publicly accessible
Previously it was used as field within an exported type, but it couldn't
be used directly.
Commit Statistics
- 1 commit contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- make
DependencyKind
publicly accessible (8d7b7b6)
- make
v16.0.0
Bug Fixes (BREAKING)
- upgrade from
git-repository
togix
This change renames the public re-export fromgit
togix
as well
for consistency.
Commit Statistics
- 1 commit contributed to the release.
- 77 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- upgrade from
git-repository
togix
(8082588)
- upgrade from
v15.0.2
Bug Fixes
Index::peek_changes_ordered()
now actually provides ordered changes.
Commit Statistics
- 1 commit contributed to the release.
- 1 day passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
Index::peek_changes_ordered()
now actually provides ordered changes. (44a5579)
v15.0.1
Bug Fixes
-
correctly configure 'serde' features of dependencies.
Due to surprising an to me still quite unclear behaviourcargo
will turn on theserde
features in thehex
andsmartstring
dependencies when building it locally from a repository clone,
but won't do it when building the crates-io version of the crate
after adding it as dependency.This fixes the issue by correctly configuring it the
serde
feature.
Commit Statistics
- 4 commits contributed to the release over the course of 3 calendar days.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #33
Commit Details
v15.0.0
This release adds support for obtaining changes in the correct order by automatically looking at changes one commit at a time
while handling squashed indices gracefully. It take about 20 seconds to catch up with all commits done in the crates index for
2 whole days and takes much longer than a similar unorderd acquisition of changes, but should be well worth it in situations
where changes are fetched more often than that.
The baseline validation to assure correctness was improved to also assert the yanked
state of crates. Furthermore, it is
regularly run by CI, on the real crates-index, and in a more realistic manner mixing both unordered and ordered change requests.
The API is mostly the same, but has a few breaking changes to deal with order selection.
Last but not least, the user can now configure the HTTP backend to use, which allows for a pure-Rust
build as well.
Bug Fixes
-
allow to configure the http transport layer in
git-repository
.
This way the user of the library has a choice to activate any of these
features:- http-curl (default) - use curl and a lot of C dependencies for HTTP/HTTPS.
But also support advanced HTTP options. - http-request - use reqwest for http and https, which currently doesn't
support any options.
- http-curl (default) - use curl and a lot of C dependencies for HTTP/HTTPS.
Chore
- a pipeline to validate basic assumptions are stil fulfilled.
Running stress-test like baseline tests regularly should help us
assure thatcrates-index-diff
operates as it should against a
real crates-index.
New Features
- baseline validation now validates ordered and unordered mode.
- greatly improve performance and realism of
baseline-atomic
test.
We now set a fixed amount of 'big' steps along with one of those chunks
being a range where the step-size is one commit at a time, which
might be the way changes are obtained in the future. - baseline also validates the
yanked
status.
That way we assure that the state we are interested in is indeed
communicated perfectly through the events we emit.
New Features (BREAKING)
-
Support for in-order changes via
changes_between_ancestor_commits()
.
This improvement also makes available an enum to selectOrder
in higher-level methods likepeek_changes_with_options()
.We also add
peek_changes_ordered()
andchanges_ordered()
for convenience.
Commit Statistics
- 8 commits contributed to the release.
- 6 commits were understood as conventional.
- 1 unique issue was worked on: #30
Commit Details
view details
- #30
- allow to configure the http transport layer in
git-repository
. (c3cff88) - prepare changelog (b887560)
- baseline validation now validates ordered and unordered mode. (87e49b5)
- greatly improve performance and realism of
baseline-atomic
test. (81c6dd2) - baseline also validates the
yanked
status. (4dd4a4c)
- allow to configure the http transport layer in
- Uncategorized
v14.0.0
A massive release that increases performance up to 10x for diffing repositories1 and correctness at the same time. This release
wouldn't have been possible without the herculean efforts of Pascal Kuthe and I am grateful
for his contribution. Thank you!
Other
- try to rewrite delegate to be map based…
…but besides completely failing the normalization test which I don't
understand, it also doesn't manage to get the correct amount of
versions. - try to chunk up baseline, but changes do not line up.
When stepping through the changes in multiple steps, we end up with
more crates then there are even though we identify them by
checksum and consider deletions. Yanking doesn't remove them from
the iteration either.
New Features
-
a
max-performance
feature to tunegit-repository
.
The performance difference is rather drastic at about 2.5x, and
definitely worth having if there is no compatibility issue
due to shared C dependencies in the same binary.Additionally we setup the makefile to use big object caches
to avoid having to decompress the same object too often, accelerating
the diffing process about 4x, for a total of 10x performance boost.
Changed (BREAKING)
-
Change::Deleted
variant now hasversions
field to include all deleted versions.
That way it doesn't degenerate any information, previously the exact
version information was lost.Not doing so helps to be able to reproduce the current state by
aggregating all changes.
New Features (BREAKING)
- Reduce heap-allocations
CrateVersion
type and sub-types.
This improves performance slightly when dealing with a lot of versions,
like when all versions are obtained from the beginning of time.
Commit Statistics
- 21 commits contributed to the release over the course of 3 calendar days.
- 3 days passed between releases.
- 5 commits were understood as conventional.
- 1 unique issue was worked on: #26
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #26
- refactor (b42ac1e)
- revert previous to FAILed commits (3b52cfd)
- try to rewrite delegate to be map based… (4d53b04)
- try to chunk up baseline, but changes do not line up. (c0c01bb)
- refactor (097209c)
- Now the baseline result is the same. (02cdb2e)
- make baseline work with CI (b9a1850)
- a baseline test which shows that we cannot reproduce the status quo with changes just yet. (3fcf96b)
Change::Deleted
variant now asversions
to include all deleted versions. (b538ad6)- Reduce heap-allocations
CrateVersion
type and sub-types. (f9be536) - layout baseline for exhaustive test against the latest available index (7e9d3cd)
- Uncategorized
- prepare changelog prior to release (a93ba40)
- Merge branch 'fix-diff' (ec9842a)
- refactor (bd3bc22)
- remove unnecessary unsafe code (1b5684f)
- a
max-performance
feature to tunegit-repository
. (6f5b12a) - improve baseline tests to be more practical (bae80b0)
- add baseline tests that steps trough each commit individually (a377ca4)
- perform an unordered comparison instead of using a linear edit-sequence (8256cbb)
- Merge branch 'complete-baseline' (61c6272)
- thanks clippy (249d141)
-
Needs to build with
git-repository/max-performance
and setup a pack cache, for example withGITOXIDE_PACK_CACHE_MEMORY=1g <you-application>
↩
v13.0.3
Bug Fixes
-
assure differences are handled exhaustively.
Previously it was possible to have multiple diffs in one crate
distributed over multiple commits to rightfully show up as multiple
hunks of modified and added lines only register the modified lines,
not the new ones (or the deleted ones for that matter).This would cause updates or removals to be missed.
Now hunks of changes are exhaused properly, fixing the issue.
Commit Statistics
- 8 commits contributed to the release.
- 9 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #26
Thanks Clippy
Clippy helped 1 time to make code idiomatic.