Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
26.0.0 (2024-10-25)
New Features
- use github fast path to check for changes before git pull
Chore (BREAKING)
Commit Statistics
- 4 commits contributed to the release.
- 107 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge branch 'upgrade-gix' (
76b2bdb
)
- Upgrade gix to v0.67 (
3ea251d
)
- Merge pull request #47 from syphar/github-fast-path (
1ada2f1
)
- Use github fast path to check for changes before git pull (
3bd1c11
)
25.0.0 (2024-07-10)
Upgrade gix
to 0.63 and crates-index to use the same version of gix
that contain security fixes.
Commit Statistics
- 3 commits contributed to the release.
- 85 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v25.0.0 (
674bdfc
)
- Set version number for new release and prepare changelog. (
f4f4592
)
- Upgrade gix, gix-testtools & crates-index (
4419a58
)
24.0.0 (2024-04-15)
Chore (BREAKING)
Commit Statistics
- 3 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v24.0.0 (
643c0ba
)
- Merge branch 'gix-upgrade' (
9bf5d93
)
- Upgrade
gix
to v0.62 (6377d3d
)
23.0.0 (2024-01-28)
Chore (BREAKING)
Commit Statistics
- 2 commits contributed to the release.
- 29 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v23.0.0 (
f502931
)
- Upgrade
gix
to 0.58 (7044076
)
22.0.0 (2023-12-29)
A maintenance release without any API changes. The major version bump is just to signal the change
of the gix
dependency to version v0.57.
Chore (BREAKING)
Commit Statistics
- 6 commits contributed to the release.
- 53 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v22.0.0 (
084acc8
)
- Prepare changelog prior to release (
98f24fe
)
- Merge branch 'maintenance' (
2170563
)
- Turns out that using the resource cache is too costly (
ad50624
)
- Remove git-lfs (
2206723
)
- Update
gix
to v0.57 (bc3a8a2
)
21.1.0 (2023-11-06)
Chore
New Features
-
deterministic order if multiple changes are applied in one modification.
This can happen if a crate is yanked and unyanked in one commit, which happens
in practice even though I am not sure how it's possible.
Related issue: https://github.com/rust-lang/docs.rs/issues/2295
Other
- improve docs and be more clear about ordering.
Commit Statistics
- 6 commits contributed to the release.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v21.1.0 (
167a34a
)
- Merge branch 'improvements' (
28f0d1f
)
- Upgrade
gix
to 0.55.2 (e8b2c90
)
- Deterministic order if multiple changes are applied in one modification. (
c404f67
)
- Assure
gix
versions are synced in the entire tree. (8576bc7
)
- Improve docs and be more clear about ordering. (
7957987
)
21.0.0 (2023-09-25)
New Features (BREAKING)
-
upgrade to gix
v0.54 (from v0.50)
This may produce smaller binaries.
Further, no performance option is set anymore to leave this in the hands of
the final binary.
Commit Statistics
- 7 commits contributed to the release over the course of 83 calendar days.
- 83 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v21.0.0 (
752ba0c
)
- Upgrade to
gix
v0.54 (from v0.50) (34d3510
)
- Merge branch 'uprade-crates-index' (
922e962
)
- Upgrade to latest version of crates-index to remove git2 (
fa1b21c
)
- Merge branch 'test-version-delete' (
e200a56
)
- Add a test specifically for the
VersionDeleted
variant. (959c566
)
- Refactor (
b0f84d0
)
20.0.0 (2023-07-04)
Chore
Bug Fixes (BREAKING)
-
split Change::Delete
into Change::VersionDeleted
and Change::CrateDeleted
.
This resolves an ambiguity (facilitated by incorrect documentation) that would emit
Change::Delete
when a single version was deleted, even though downstream that would
rightfully be interpreted as deleting the whole crate.
Adimittedly, previously there were no single-version deletions, just yanks, so we didn't
think of it either.
Commit Statistics
- 5 commits contributed to the release over the course of 10 calendar days.
- 11 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v20.0.0 (
dd27cae
)
- Split
Change::Delete
into Change::VersionDeleted
and Change::CrateDeleted
. (2c59dd4
)
- Uprgade
gix
to v0.48
(9946196
)
- Split VersionDeleted from crate-deletes (
2caf814
)
- Fix stress-test invocation (
967836b
)
19.0.0 (2023-06-22)
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
- 3 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
view details
- Uncategorized
- Release crates-index-diff v19.0.0 (
f54eabd
)
- Upgrade to
gix v0.47
(from v0.45). (f726287
)
- Try to fix the baseline test which now starts failing on CI (
892561a
)
18.0.0 (2023-06-08)
Chore (BREAKING)
- upgrade dependencies
- gix 0.44 -> 0.45
- hashbrown 0.13 -> 0.14
Commit Statistics
- 2 commits 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
- Release crates-index-diff v18.0.0 (
4a94ff8
)
- Upgrade dependencies (
7427603
)
17.0.0 (2023-05-14)
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 certain gix
version within the tree.
Commit Statistics
- 4 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v17.0.0 (
365e304
)
- Upgrade
gix
from v0.37 to v0.44. (b00ca99
)
- Reduce code-size by reusing the same type for
Progress
. (c3d5518
)
- Upgrade gix dependency to 0.44.1 (
4489ef7
)
16.0.1 (2023-02-21)
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
- 2 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v16.0.1 (
bffe167
)
- Make
DependencyKind
publicly accessible (8d7b7b6
)
16.0.0 (2023-02-21)
Bug Fixes (BREAKING)
- upgrade from
git-repository
to gix
This change renames the public re-export from git
to gix
as well
for consistency.
Commit Statistics
- 2 commits 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
- Release crates-index-diff v16.0.0 (
9d17c5a
)
- Upgrade from
git-repository
to gix
(8082588
)
15.0.2 (2022-12-05)
Bug Fixes
-
Index::peek_changes_ordered()
now actually provides ordered changes.
Commit Statistics
- 2 commits contributed to the release over the course of 8 calendar days.
- 9 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v15.0.2 (
7ea9dda
)
Index::peek_changes_ordered()
now actually provides ordered changes. (44a5579
)
15.0.1 (2022-11-26)
Bug Fixes
-
correctly configure 'serde' features of dependencies.
Due to surprising an to me still quite unclear behaviour cargo
will turn on the serde
features in the hex
and smartstring
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
- 5 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
view details
- #33
- Correctly configure 'serde' features of dependencies. (
c915992
)
- Uncategorized
- Release crates-index-diff v15.0.1 (
a6b40e1
)
- Merge branch 'fix-build' (
57ca8f0
)
- A failing test to reproduce #33 (
8bfd04d
)
- Fix stress test (
9afe15b
)
15.0.0 (2022-11-22)
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
- http-request - use reqwest for http and https, which currently doesn't
support any options.
Chore
- a pipeline to validate basic assumptions are stil fulfilled.
Running stress-test like baseline tests regularly should help us
assure that
crates-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 select Order
in higher-level methods like peek_changes_with_options()
.
We also add peek_changes_ordered()
and changes_ordered()
for convenience.
Commit Statistics
- 9 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
)
- Uncategorized
- Release crates-index-diff v15.0.0 (
50eed5b
)
- Merge branch 'baseline-improvements' (
a80c7fa
)
- Support for in-order changes via
changes_between_ancestor_commits()
. (133f2f5
)
- A pipeline to validate basic assumptions are stil fulfilled. (
d91afc9
)
14.0.0 (2022-11-21)
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 tune git-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 has versions
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
- 22 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 as versions
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
- Release crates-index-diff v14.0.0 (
dfaf1be
)
- Prepare changelog prior to release (
a93ba40
)
- Merge branch 'fix-diff' (
ec9842a
)
- Refactor (
bd3bc22
)
- Remove unnecessary unsafe code (
1b5684f
)
- A
max-performance
feature to tune git-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
)
13.0.3 (2022-11-18)
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
- 9 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.
Commit Details
view details
- #26
- Uncategorized
- Release crates-index-diff v13.0.3 (
1d06ee9
)
- Merge branch 'fix-26' (
7ea3d6e
)
13.0.2 (2022-11-08)
Features
- Switch diff implementation to
imara-diff
for performance, but also to get off the broken git-repository
v0.25 release.
Commit Statistics
- 10 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v13.0.2 (
3708131
)
- Prepare changelog prior to release (
adecda5
)
- Merge branch 'git-repository-upgrade' (
b28b7ca
)
- Upgrade to git-repository v0.27 (
377065e
)
- All tests are green (
6b47427
)
- One more test bytes the dust, but… (
62cb6eb
)
- Fix most of the tests (
276e726
)
- A first stab at getting the diff back to work with
imara-diff
(5573529
)
- Try to rewrite explicit trait impl as closure, same lifeimte issues. (
2809c75
)
- Upgrade to
git-repoitory v0.26
, fail to make diff compile. (3f47ec3
)
13.0.1 (2022-10-11)
Bug Fixes
- rename
init::Error2
to init::Error
.
This name was left by mistake and shouldn't have made it into the
release.
Commit Statistics
- 2 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v13.0.1 (
acd06a1
)
- Rename
init::Error2
to init::Error
. (a6975ce
)
13.0.0 (2022-10-10)
This release drops git2
in favor of gitoxide
.
Important note for users of ssh:// index urls
Advanced git2
based credential configuration isn't supported
anymore until gitoxide
catches up. It generally implements all
configuration options that are relevant for git
and fully implements
HTTP based authentication, but is probably lacking in regard to
non-default ssh configuration.
If that's a problem, prefer staying with the v12.X line.
Changed (BREAKING)
- remove
git2
in favor of gitoxide
.
gitoxide
is now used for cloning and fetching as well.
Commit Statistics
- 12 commits contributed to the release over the course of 6 calendar days.
- 11 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v13.0.0 (
2b08485
)
- Prepare changelog prior to release (
35b1ce7
)
- Merge branch 'remove-git2' (
ab529ad
)
- Switch to released version of git-repository (v0.25) (
533bfab
)
- Fix makefile (
7cede70
)
- Remove
git2
in favor of gitoxide
. (4cedf27
)
- All tests pass, time to remove git2 (
6975d67
)
- Use gitoxide based cloning on demand in tests, one failure (
1774f94
)
- Add a way to clone using
gitoxide
without removing git2 just yet. (878abe9
)
- Add
fetch_changes_with_options()
using gitoxide (900ae56
)
- Use gitoxide for fetching in test (
00e6875
)
- Sketch a new peek method that uses gitoxide to fetch things (
759ff30
)
12.1.0 (2022-09-29)
New Features
- re-export
git-repository
as git
This makes type conversions possible where needed.
Commit Statistics
- 2 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v12.1.0 (
ad2f6d9
)
- Re-export
git-repository
as git
(74866b4
)
12.0.0 (2022-09-29)
This release is v11.2, but correctly indicates the breaking change introduced by upgrading
git-repository
to v0.24, which fixes #23.
Commit Statistics
- 3 commits contributed to the release.
- 8 days passed between releases.
- 0 commits were understood as conventional.
- 1 unique issue was worked on: #23
Commit Details
view details
- #23
- Update changelog prior to release (
6017b3f
)
- Update version to 12.0 to indicate breaking change via git-repository (
1fcac4b
)
- Uncategorized
- Release crates-index-diff v12.0.0 (
ee27555
)
11.2.0 (2022-09-20)
New Features
- upgrade to
git-repository
v0.24 to simplify diff implementation.
Commit Statistics
- 4 commits contributed to the release over the course of 6 calendar days.
- 6 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v11.2.0 (
7e420d2
)
- Use the latest diff API to obtain line diffs. (
300e966
)
- Upgrade to
git-repository
v0.24 to simplify diff implementation. (9159397
)
- Remove accidentally added example (
cd23a28
)
11.1.6 (2022-09-14)
Bug Fixes
-
Ignore directory deletions.
Previously deleted directories would be picked up as crate deletions,
with the crate name being the deleted directory.
Now only file deletions will be assumed to be crate deletions.
Commit Statistics
- 2 commits contributed to the release.
- 11 days passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #20
Commit Details
view details
- #20
- Ignore directory deletions. (
4ce0021
)
- Uncategorized
- Release crates-index-diff v11.1.6 (
3a1ecd1
)
11.1.5 (2022-09-02)
Bug Fixes
-
Ignore all changed files with an extension.
There are non-crate files that as far as we know all have file
extensions, as opposed to the crate files we are interested in, which do
not.
Thus skipping all files with extension helps us to get past the initial
commit which includes such files, like .github/*.yml
.
Related to https://github.com/rust-lang/docs.rs/pull/1807#issuecomment-1235158502
Commit Statistics
- 2 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v11.1.5 (
516a779
)
- Ignore all changed files with an extension. (
8af61f2
)
11.1.4 (2022-09-02)
Bug Fixes
Commit Statistics
- 3 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v11.1.4 (
9d41b20
)
- Improve error descriptions and provide details when decoding of crate versions fails. (
ab6e46c
)
- Fix rev-spec (
83e91f5
)
11.1.3 (2022-09-01)
Bug Fixes
- switch git2 back to v0.14 - v0.15 is a breaking change…
…for everyone who uses git2 as direct dependency as well due to
libgit2-sys.
Commit Statistics
- 2 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v11.1.3 (
d46402a
)
- Switch git2 back to v0.14 - v0.15 is a breaking change… (
a430c03
)
11.1.2 (2022-09-01)
Bug Fixes
-
make fetches work again by using safe-performance mode of git-repository
.
This fixes the 'zlib stream broken' issue when fetching crates.io
changes which was caused by git-repository
configuring for
max-performance by default, which affects a crate used by git2
as
well. For some reason, changing to zlib-ng
as backend wasn't taken
kindly by libgit2
causing it to fail after a short while of receiving
a pack from the remote.
The fix avoids making such modifications to the zlib crate, allowing
both crates, git-repository
and git2
to co-exist in the same
dependency tree.
Commit Statistics
- 7 commits 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
- Release crates-index-diff v11.1.2 (
5b2e3ce
)
- Merge branch 'fix-zlib-stream-error' (
ac83e7a
)
- Make fetches work again by using safe-performance mode of
git-repository
. (23a66b9
)
- Refactor (
e93f1c6
)
- Upgrade to latest git2 version (
7616db2
)
- Properly parameterize script so it's obvious what is what (
02f715e
)
- Make test-lookup independent of prior commits (
4b7fc6e
)
11.1.1 (2022-08-31)
Bug Fixes
-
Consider all crates yanked if 'yanked = true'.
Previously, due to a missing test, a bug snuck in that would assume
that all lines in an added files must be new versions, marking them
as Change::Added
. This ignored the fact that any line could also
carry a yanked crate, misrepresenting them.
This is now fixed, and yanked crates generally show up as
Change::Yanked
.
One might take this as a hint that diffentiating by yank status might
not be that useful after all as it doesn't scale that well. Maybe
a future version changes how Change
is represented.
Commit Statistics
- 3 commits contributed to the release.
- 1 day passed between releases.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #19
Commit Details
view details
- #19
- Consider all crates yanked if 'yanked = true'. (
28de9d4
)
- Add failing test (
89378e1
)
- Uncategorized
- Release crates-index-diff v11.1.1 (
708288f
)
11.1.0 (2022-08-30)
New Features
-
make the name of the remote configurable.
This is primarily used in testing and we try even harder to make it fail
to deal with squashed remote references, but it seems to work fine.
For good measure, now using +
in the refspec to assure it forces
an update.
Bug Fixes
- assure refs can be reet when fetching to support squashing.
Previously tests didn't replicate this, now they do.
Commit Statistics
- 5 commits contributed to the release over the course of 1 calendar day.
- 1 day passed between releases.
- 2 commits were understood as conventional.
- 1 unique issue was worked on: #16
Commit Details
view details
- #16
- Uncategorized
- Release crates-index-diff v11.1.0 (
01ca770
)
- Make the name of the remote configurable. (
09489ab
)
- Assure refs can be reet when fetching to support squashing. (
cdcac41
)
- Add test to validate we can deal with squashed indices (
ed4ba38
)
11.0.0 (2022-08-28)
Changed (BREAKING)
-
Use gitoxide
Repository
instead of git2::Repository
This comes with plenty of changes to the API of the
last_seen_reference()
and to the lower-level methods that take
object ids (now gix::hash::ObjectId
.
Note that git2
is still used internally for fetching and cloning.
This change was made to assure that at no time there are two open
repositories (once for git2, once for gitoxide
), as this has the
potential to double resource usage for file handles.
-
move CloneOptions
into index
module.
The index
module is now public for that reason.
Commit Statistics
- 39 commits contributed to the release over the course of 1 calendar day.
- 97 days passed between releases.
- 2 commits were understood as conventional.
- 1 unique issue was worked on: #16
Thanks Clippy
Clippy helped 2 times to make code idiomatic.
Commit Details
view details
- #16
- Update to latest release of
gitoxide
(23e14af
)
- And normalization works now (
eb148e5
)
- First stab at normalization can reduce 245 version, but… (
ae3f971
)
- Adapt to changes in git-repository (
68ff142
)
- Remove git2 verion of the diff algorithm (
371b512
)
- Refactor (
3749220
)
- Refactor (
7cee17e
)
- All diff-tests pass like before (
9ba7921
)
- Handle modifications and yanks (
3416414
)
- Handle entire crate deletions as well (
eadc65f
)
- First sketch of addition is working (
55d71dc
)
- Frame for diffing (
cd86f5b
)
- Refactor (
fa9cfab
)
- Use
gitoxide
Repository
instead of git2::Repository
(2d3a182
)
- Port all old tests to the new fixture (
272bec8
)
- Test for auto-clone (
8a1bc25
)
- Remove redundant tests (
45494f0
)
- Test for peek changes (
61e217a
)
- Refactor (
aeb6f45
)
- Use most recent git version of gitoxide for now (
6dadfb7
)
- Thanks clippy (
ebacafd
)
- Normalization test (
877b519
)
- Add more tests for typical operations (
56bfad7
)
- First successful test for addition (
365bcf0
)
- Simplify CI.yml (
c0295c5
)
- Fix fixture script (
0efccd4
)
- First test can instantiate an
Index
on the new fixture (f9e31f2
)
- Add support for git-lfs to support archives (
9a2ce43
)
- Build git repository from parts (
d28591b
)
- Also add commit-message information (
7e85688
)
- Refactor (
0c77e40
)
- Refactor (
78e05bd
)
- Re-enable and fix doc-tests (
946ca4c
)
- Move
CloneOptions
into index
module. (07f4b6c
)
- Refactor (
ecd84eb
)
- A script to create an index fixture (
9a5f312
)
- Uncategorized
- Release crates-index-diff v11.0.0 (
898024f
)
- Merge branch 'semantic-stability' (
b7574d8
)
- Thanks clippy (
9e9b972
)
10.0.0 (2022-05-23)
New Features (BREAKING)
-
Add support for detecting deleted crates.
Previously there was no need to do that as deletions couldn't happen -
crates are yanked instead.
Now that the ecosystem experienced its first (known) supply-chain attack
crates can also be deleted and we should be able to detect that to allow
downstream users to act on this automatically.
Bug Fixes
- update version in usage example
Commit Statistics
- 10 commits contributed to the release over the course of 84 calendar days.
- 85 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- Uncategorized
- Release crates-index-diff v10.0.0 (
43c63ca
)
- Prepare changelog prior to release (
cc19788
)
- Assure tests run serially without needing --jobs 1 (
2701f5c
)
- Merge branch 'syphar-handle-crate-delets' (
aba9087
)
- Thanks clippy (
df91215
)
- Disallow Rust 2018 idioms for clearer code (
220b943
)
- Add support for detecting deleted crates. (
3831937
)
- Upgrade makefile for better auto-docs (
0301da5
)
- Refactor logic to handle crate-deletes (
40655bd
)
- Update version in usage example (
d273245
)
9.0.0 (2022-02-26)
- Upgrade to
git2
v0.14, a BREAKING change. In order to use this release, assure that other dependencies also use git2
v0.14.
Commit Statistics
- 7 commits contributed to the release.
- 12 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v9.0.0 (
31e82c7
)
- Update changelog; bump major version (
997ea73
)
- Ignore certain tests fo now until new hashes are found that work (
e78694f
)
- Revert "see if this special case fixes tests" (
5af8ec4
)
- Prep for renaming 'master' to 'main' (
e228d92
)
- See if this special case fixes tests (
f00226b
)
- Upgrade git2 to 0.14.0 (
448eec7
)
8.0.1 (2022-02-14)
- Only download the master branch on clone, not all branches, to greatly reduce the initial download size from nearly 800MB to just about 100MB.
Commit Statistics
- 4 commits contributed to the release.
- 197 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release crates-index-diff v8.0.1 (
91df107
)
- Prepare changelog (
76ae38d
)
- Add some more debugging info to failing test (
b111e03
)
- Only fetch the master crates.io branch, not all branches (
79cf4ca
)
v8.0.0 (2021-07-31)
- Add fetch-options to
CloneOptions
to allow private crate index repositories
Commit Statistics
- 6 commits contributed to the release.
- 429 days passed between releases.
- 0 commits were understood as conventional.
- 1 unique issue was worked on: #11
Commit Details
view details
- #11
- Add example for fetch options. (
eaef987
)
- Uncategorized
- (cargo-release) version 8.0.0 (
d6f6d46
)
- Remove non-exhaustive attribute… (
fbf93be
)
- Update changelog (
79a2ea5
)
- Allow future additions of more options without API breakage (
919d9da
)
- Pass FetchOptions for cloning (
091ef7d
)
v7.1.2 (2020-05-28)
Commit Statistics
- 2 commits contributed to the release over the course of 1 calendar day.
- 4 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Inform about resource usage in the docs (
386dcc4
)
- Optimize includes using 'cargo diet' (
0989e0f
)
v7.1.1 (2020-05-23)
- Make new feature from v7.1.0 actually usable
Commit Statistics
- 3 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Bump patch level (
fceb154
)
- Avoid cloning the crates.io index as part of the doctests; convenience (
dd869e2
)
- Allow changing CloneOptions::repository_url from outside the crate (
2f10281
)
v7.1.0 (2020-05-23)
- Add
Index::from_path_or_cloned_with_options(…)
to allow cloning from different crates repositories.
Commit Statistics
- 5 commits contributed to the release over the course of 43 calendar days.
- 54 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Bump minor version (
0f20006
)
- Add Index::from_path_or_cloned_with_options(…) to support different crates repositories (
f9b991c
)
- Bye bye travis, we had a good time. (
d913fc1
)
- Add github actions (
204dcd7
)
- Update README to inform about the collapsed crates.io history, and that we deal with it (
5966b49
)
v7.0.1 (2020-03-29)
- disable unused dependency in git2 for lower compile times
Commit Statistics
- 2 commits contributed to the release.
- 7 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
v7.0.0 (2020-03-22)
- update dependencies and upgrade git2 to 0.13.0
Commit Statistics
- 1 commit contributed to the release.
- 16 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
v6.2.0 (2020-03-06)
- Add support for setting the last seen reference directly. Useful in conjunction with
peek_changes(…)
.
Commit Statistics
- 1 commit contributed to the release.
- 3 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Refactor for more flexibility; bump version (
eb244b7
)
v6.1.0 (2020-03-03)
- Add support for progress messages by adding the
(fetch|peek)_changes_with_options(git2::FetchOptions)
variants.
Commit Statistics
- 1 commit contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Support for progress messages (
0167119
)
v6.0.0 (2020-03-03)
Commit Statistics
- 1 commit contributed to the release.
- 1 day passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
v5.1.0 (2020-03-01)
-
add peek_changes()
method, which is like fetch_changes()
, but doesn't remember which changes it already saw. Use indx.last_seen_reference().set_target(oid)
to get a similar effect as if fetch_changes()
had been called.
Commit Statistics
- 4 commits contributed to the release over the course of 10 calendar days.
- 10 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Allow to peek changes (
99c33e6
)
- Don't borrow from git… Revert "Use Cow everywhere in crate version" (
8c2f439
)
- Use Cow everywhere in crate version (
8d10090
)
- (cargo-release) start next development iteration 5.0.6-alpha.0 (
5ccb705
)
v5.0.5 (2020-02-19)
Commit Statistics
- 2 commits contributed to the release over the course of 13 calendar days.
- 13 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Don't skip serializing None fields… (
11f4aa0
)
- (cargo-release) start next development iteration 5.0.5-alpha.0 (
992a71d
)
v5.0.4 (2020-02-05)
Commit Statistics
- 2 commits contributed to the release over the course of 2 calendar days.
- 2 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Implement
Default
for ChangeKind (2234f7b
)
- (cargo-release) start next development iteration 5.0.4-alpha.0 (
fac9ee1
)
v5.0.3 (2020-02-03)
Commit Statistics
- 2 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Add missing clone trait (
5f6e3a2
)
- (cargo-release) start next development iteration 5.0.3-alpha.0 (
b8c8412
)
v5.0.2 (2020-02-02)
- speed up diff parsing - skip conversion to utf8
Commit Statistics
- 2 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Improved diff parsing - should be a bit faster (
b819af0
)
- (cargo-release) start next development iteration 5.0.2-alpha.0 (
ab59e70
)
v5.0.1 (2020-02-02)
- expose the 'git2' crate - useful for error handling
Commit Statistics
- 4 commits contributed to the release over the course of 1 calendar day.
- 1 day passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
v5.0.0 (2020-02-01)
- update to libgit 0.11
- provide all information known about the crates, similar to the
crates-index
crate
Commit Statistics
- 3 commits contributed to the release.
- 163 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
v4.0.2 (2019-08-22)
Commit Statistics
- 2 commits contributed to the release.
- 47 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Bump version after dependency update (
f49bbda
)
- Update git2 crate (
e1152c2
)
v4.0.1 (2019-07-05)
Commit Statistics
- 2 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Bump patch level: update git2 dependency (
debd65b
)
- Bump
git2
version (724f822
)
v4.0.0 (2018-03-17)
- switch from rustc-serialize to serde
Breaking Changes
CrateVersion::from_crates_diff_json(...)
was removed in favor of CrateVersion::from_str(...)
which is powered by serde
.
Commit Statistics
- 6 commits contributed to the release.
- 441 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Bump version after switching to serde (
2498da9
)
- Change refspec back from 'master' to what works in tests (
20d2c0e
)
- Upgrade git2 version (
fde4a47
)
- Add serde test (
c0c3172
)
- Use serde instead of rustc-serialize (
a310303
)
- Fix failing test (
fd37e49
)
v3.0.0 (2016-12-30)
Chore
- use latest version of git2
That way, crates-io-cli can used the latest crates.
Version two is used by doc.rs and must remain as is.
Commit Statistics
- 1 commit contributed to the release.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Use latest version of git2 (
38d9163
)
v2.0.1 (2016-12-27)
Add a tutorial to the documentation.
Documentation
- add reference to usage example.
We are using the crates-cli as an example, even though
it certainly is not the cleanest one possible.
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
- Add reference to usage example. (
2d0c816
)
v2.0.0 (2016-12-26)
Chore
Bug Fixes
- cargo: use git2 version for compat with docs.rs (0ceebed3)
- use git2 version for compat with docs.rs
Otherwise docs.rs cannot use use.
This is due to the issue described here:
Commit Statistics
- 2 commits contributed to the release.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Update to v2.0.0 (
bd89e72
)
- Use git2 version for compat with docs.rs (
0ceebed
)
v1.0.1 (2016-12-26)
Other
- crates.io badge
[skip ci]
Bug Fixes
- makefile: make quick tests quick again (9aa756ae)
- make quick tests quick again
- display: implementation for changetype (8ed9a81f)
New Features
- implementation for changetype
- v1.0.1
Commit Statistics
- 4 commits contributed to the release.
- 4 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
v1.0.0 (2016-12-26)
Chore
- v1.0.0
- be compatible with docs.rs
See
- fix keywords
- see why makefile is not working
- found an illegal-instruction error
Just run cargo test
- intermediate crate info from hunk
However, it's not yet working
- first commit
Other
- docs for all remaining methods.
- documentation for crateversion
- customizations for us
This could possibly work actually
- test osx as well
- allow to change seen-ref name
- show backtrace
- attempt of fetch_changes implementation
It fails as it cannot create the correct reference.
- support for unyanking
We just count it as adding a crate, which also makes sense.
- handle yanked files
- now seeing the first added crates
- automate running tests quickly
Using an existing checkout is important enough to put it into
a makefile for documentation and automation.
- support for commit'ishs for diffs
- first traversal method
The test fails for the wrong reason though, as it fails to
parse my refspec even though libgit2 seems to be able to do it
properly, and a recent-enough version is used.
- test against all versions of rust
- simplify travis
travis-cargo does nothing for us in this case.
New Features
- using openssl file as basis
Bug Fixes
-
give up on osx
Openssl can't be linked due to missing symbols, no matter what.
Maybe ... the version is too new?
Odd that it works locally though.
-
see if openssl somehow works after all
-
openssl setup from openssl-rs itself
-
try the msvc 32bit version
-
msys2 seems to be the problem here
-
try to enforce linking latest openssl
-
try disabling the cache
Maybe that way, the 64 bit builds will work
-
enforce more recent openssl lib
Currently some symbols are missing or are named differently.
Let's also see if it links it to the correct spot in /usr/local/opt/openssl
-
only 1.1.0c seems to be working
See
-
remove 32 bit targets due to failure
The previous version triggered this error:
Error parsing appveyor.yml: Value can be either string or "secure" string. (Line: 5, Column: 7)
-
attempt to set OPENSSL env vars
-
try to allow 32 bit failures
Could also remove them, but ideally it remains visible to maybe
one day work.
-
try without index-bare cache
For now ... I have not seen it being cloned at all.
Possibly the cache provides a none-empty directory ?
-
custom code to get cmake onto osx
-
let's hope it will actually run now
-
set envvars propery
-
remove debug prints
-
remove error handling in makefile
This isn't a good thing to do for all of those without cargo.
However, let's see if it fixes the issue first.
-
to work with GNU make
-
finally the correct refspec
Fair enough, need trees here after all!
-
cmake binary installation
-
use different cmake source
-
cmake upgrade via before_script
-
see if a custom source will get latest cmake
-
enforce latest cmake
Refactor
-
don't enforce branches
Previously valid ref-names would be interpreted as branches, which
limits their use despite the name indicating otherwise.
Now every ref path is supported.
-
use quick-error
That way, the crate-error type is an actual error with
all the relevant implementations.
It's impossible to work without it, I think :).
-
move crate into own module
-
better diff.print implementation
-
simplify fetch-changes error handling
-
much nicer Crate from json
It's good to know that we can chain everything, but that
should only be done if there is an actual dependency of the
respective values.
Otherwise, just abort early.
-
better error handling
-
allow direct usage of objects as well
Test
- remove duplicate
all crates are also iterated in the
'changed_since_last_fetch' test.
- fetch_changes()
Just the frame and all testing I could think of
- assure we can handle the entire index
- first clone on demand
Would be nice to be able to specify --depth as well.
- first failing test
Commit Statistics
- 61 commits contributed to the release over the course of 1 calendar day.
- 61 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- V1.0.0 (
381e7cc
)
- Docs for all remaining methods. (
706636b
)
- Give up on osx (
cdfc689
)
- See if openssl somehow works after all (
3a5eb46
)
- Documentation for crateversion (
91bf44d
)
- Openssl setup from openssl-rs itself (
36b79de
)
- Try the msvc 32bit version (
120d752
)
- Msys2 seems to be the problem here (
42a9800
)
- Try to enforce linking latest openssl (
0a738f3
)
- Try disabling the cache (
dda7c80
)
- Enforce more recent openssl lib (
714d7cf
)
- Only 1.1.0c seems to be working (
ae26330
)
- Remove 32 bit targets due to failure (
959fde0
)
- Attempt to set OPENSSL env vars (
f4ea940
)
- Try to allow 32 bit failures (
05bffd6
)
- Try without index-bare cache (
b11f6df
)
- Custom code to get cmake onto osx (
4860906
)
- Let's hope it will actually run now (
a052f41
)
- Customizations for us (
c4bf948
)
- Using openssl file as basis (
accb62d
)
- Test osx as well (
b0f19b0
)
- Don't enforce branches (
601dc2d
)
- Use quick-error (
ef53496
)
- Move crate into own module (
97a5b81
)
- Better diff.print implementation (
81c95f2
)
- Simplify fetch-changes error handling (
988b668
)
- Much nicer Crate from json (
caa5879
)
- Allow to change seen-ref name (
56d416a
)
- Remove duplicate (
42e6803
)
- Be compatible with docs.rs (
a4e6e7e
)
- Set envvars propery (
b784f1c
)
- Fix keywords (
787bdac
)
- Show backtrace (
ed7ca36
)
- Better error handling (
b0dd277
)
- Attempt of fetch_changes implementation (
708d9c0
)
- Allow direct usage of objects as well (
eee5134
)
- Fetch_changes() (
d06c4a0
)
- Remove debug prints (
24c1c81
)
- Assure we can handle the entire index (
97b417a
)
- Support for unyanking (
2ef9c02
)
- Handle yanked files (
8048a2c
)
- Remove error handling in makefile (
9ef08fa
)
- See why makefile is not working (
11a006b
)
- To work with GNU make (
42e1290
)
- Now seeing the first added crates (
887c088
)
- Found an illegal-instruction error (
607d747
)
- Intermediate crate info from hunk (
3ce91e8
)
- Automate running tests quickly (
8801ec2
)
- Support for commit'ishs for diffs (
e451067
)
- Finally the correct refspec (
f89651b
)
- First traversal method (
d49f62f
)
- Cmake binary installation (
d0d4307
)
- Use different cmake source (
f9f67ef
)
- Cmake upgrade via before_script (
a978136
)
- See if a custom source will get latest cmake (
77bbd20
)
- Enforce latest cmake (
2d0d5d9
)
- Test against all versions of rust (
094c788
)
- Simplify travis (
f9d531a
)
- First clone on demand (
fdf281e
)
- First failing test (
1c0b2c0
)
- First commit (
f1568c0
)