Rust library for retrieving and interacting with the crates.io index
APACHE-2.0 License
Published by Byron 7 months ago
SparseIndex::make_config_request()
and SparseIndex::parse_config_request()
.SparseIndex::make_config_request()
and SparseIndex::parse_config_request()
. (3667cd0)Published by Byron 8 months ago
Published by Byron 9 months ago
assure Git index updates to refs are actually written.
The remote git repository may alter its references in such a way that
local fast-forwards aren't possible anymore.
This happens regularly as the history will be squashed on the remote.
Now we forcefully store the updated references, which resolves
the issue that calling update()
didn't seem to do anything despite
being busy (i.e. downloading a possibly huge pack, and resolving it).
Published by Byron 9 months ago
gix
to v0.58gix-0.58
gix-0.58
(2efa665)gix
to v0.58 (5960658)Published by Byron 10 months ago
gix
to v0.57gix
to v0.57 (81f70d7)Published by Byron 12 months ago
gitoxide
to v0.55.2gitoxide
to v0.55.2 (82002e7)Published by Byron about 1 year ago
gix
to v0.54toml
to latest version (fc79c67)gix
to v0.54 (9aec9ab)Published by Byron about 1 year ago
git::URL
without git
feature active (f5d398a)tame-index
link to README (88ac53e)GitIndex::try_*
as well as possible (238526f)Published by Byron about 1 year ago
GitIndex::try_new*()
and GitIndex::try_with_path()
to open without cloning.Names
iterator as building block for fuzzy-lookups.-
and _
in the crate name,GitIndex::new_*()
will not discover the git repository anymore.
Previously, discovery was used which may traverse the directory structure
upwards to find the index. This may be error prone as the index location is
supposed to be well-known.
Now the index path provided must either be .../index
or .../index.git
to be
opened successfully.
remove the usage of file locks in preference for documentation when opening a git index.
Previously, to allow concurrently opening and possibly updating a crates-index, a file-lock was
used for synchronization. However, it was rather specific to what the test-suite needed while
adding another failure mode for production code which could leave lock-files behind that then
lock the crates-index forever for this library at least.
Instead, appropriate locking will be used in tests only, while the documentation of all
open
methods of GitIndex
was adjusted to inform about ways to protect concurrent accesses
on application level.
always use /
for sparse URLs
Previously on windows, backslashes could have snuck in which may cause problems.
list_recent_versions
.cargo run --example list_recent_versions -- foo bar baz gix rustc gcc foobar blaz
.GitIndex::try_new*()
and GitIndex::try_with_path()
to open without cloning. (639b081)GitIndex::new_*()
will not discover the git repository anymore. (28ab782)list_recent_versions
. (421de35)Names
(6ab652e)Names
iterator (5272d41)Names
iterator as building block for fuzzy-lookups. (abe5d70)Names
iterator to fail creation if too many permutations are possible (9b88659)/
for sparse URLs (3bb46ab)Published by Byron about 1 year ago
This is a major release with many breaking changes to make the overall package structure, type-names and feature names more consistent.
Note that the default
features changed, so if you relied on that you will have to change the dependency definition in your cargo
manifest
to something like default-features = false, features = ["git-performance", "git-https"]
. This is due to the sparse index now being the default,
just like with cargo
itself.
Further, now crate_index::Index
is crates_index::GitIndex
, but when done all should work as before, maybe even a little bit faster thanks to
replacing git2
with gix
.
For details about all breaking changes, please take a look at the (BREAKING)
paragraphs that follow.
GitIndex
auto-clones any index as needed.dirs::TBD
to make it possible to know where the index should be looked for.cargo-cache
.CHANGELOG.md
for a built-in version of itgit2
with gix
. refactor code structure
The goal is to keep related code together, instead of spreading it out into
top-level modules exclusively.
This also renames Index
to GitIndex
.
Further changes involved renaming ChangesIter
to git::Changes
, and
INDEX_GIT_URL
to git::URL
, and CRATES_IO_HTTP_INDEX
to sparse::URL
.
remove ssh
feature, and rename many existing features, change defaults
git-index
-> git
git-performance
https
-> git-https
sparse-http
-> sparse
The default features are now sparse
, effectively adjusting to the fact
that the default is now the http registry.
remove changes
feature
It only gated a little bit of code, but no dependencies. Thus it had no considerable
effect on build times and can be removed.
GitIndex
auto-clones any index as needed.CHANGELOG.md
for a built-in version of itClippy helped 1 time to make code idiomatic.
git2
with gix
. (2c5d33a)include
directive to allow publish to succeed (40caa8f)dirs::TBD
to make it possible to know where the index should be looked for. (0d89352)GitIndex
auto-clones any index as needed. (965f6e9)ssh
feature, and rename many existing features, change defaults (a8953e0)cargo-diet
to optimize package size (2fdf3a8)changes
feature (260c103)testdata
to fixtures
(aba9606)tests/
where integration tests live (0096b92)CHANGELOG.md
for a built-in version of it (42d89c2)thiserror
for the error type. (fed6904)gix
release for API improvements (f50308f)cargo fmt
on everything that changed in changes.rs
(084f226)git2
(d649f95)Changes
from git2
to gix
(beddca6)gix
version to smoothen API usage (940ed59)gix
for update()
(ebfda0f)gix
(92291cf)gix
for implementing crate_()
(2cf53dd)gix
for index_config()
(cd7f910)crates()
to gix
(fbf169c)gix
for crates_parallel()
(141285e)gix
as alternative (3fe885c)