rust-crates-index

Rust library for retrieving and interacting with the crates.io index

APACHE-2.0 License

Downloads
4.2M
Stars
69
Committers
33
rust-crates-index - v2.8.0 Latest Release

Published by Byron 7 months ago

Chore

  • upgrade gix to v0.62

Commit Statistics

  • 3 commits contributed to the release.
  • 7 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Merge branch 'gix-upgrade' (a9d4660)
    • Bump minor version to indicate 'gix' upgrade. (731658f)
    • Upgrade gix to v0.62 (07c23f3)
rust-crates-index - v2.7.0

Published by Byron 7 months ago

New Features

  • add SparseIndex::make_config_request() and SparseIndex::parse_config_request().
    That way it's possible to handle the case where no sparse index exists yet.

Commit Statistics

  • 4 commits contributed to the release over the course of 41 calendar days.
  • 42 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #164

Commit Details

  • #164
    • Add SparseIndex::make_config_request() and SparseIndex::parse_config_request(). (3667cd0)
  • Uncategorized
    • Refactor (49e8ba7)
    • Add support for downloading the sparse index config (2b8460c)
    • Revert "chore: update to gix v0.59" - this version was yanked (289617b)
rust-crates-index - v2.6.0

Published by Byron 8 months ago

Chore

  • update to gix v0.59

Commit Statistics

  • 2 commits contributed to the release.
  • 28 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Set next release version (bec65e9)
    • Update to gix v0.59 (110d4a8)
rust-crates-index - v2.5.1

Published by Byron 9 months ago

Bug Fixes

  • 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).

Commit Statistics

  • 2 commits contributed to the release.
  • 6 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Merge branch 'fix-index-update' (99e8fe1)
    • Assure Git index updates to refs are actually written. (4d75232)
rust-crates-index - v2.5.0

Published by Byron 9 months ago

Chore

  • update gix to v0.58

New Features

  • upgrade to gix-0.58

Commit Statistics

  • 2 commits contributed to the release.
  • 22 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Upgrade to gix-0.58 (2efa665)
    • Update gix to v0.58 (5960658)
rust-crates-index - v2.4.0

Published by Byron 10 months ago

Chore

  • update gix to v0.57

Other

  • Update readme to include the sparse protocol
  • Link to examples of how to update the sparse index

Commit Statistics

  • 9 commits contributed to the release over the course of 53 calendar days.
  • 53 days passed between releases.
  • 3 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Bump minor version for gix dependency change (3ae82f5)
    • Merge branch 'maintenance' (be03b1f)
    • Adapt to quite drastic changes in memory requirements. (c237796)
    • Update gix to v0.57 (81f70d7)
    • Fix cargo-check (2920beb)
    • Add new example to list the most recent version of a crate using the git index (61f3090)
    • Update readme to include the sparse protocol (4ffad17)
    • Link to examples of how to update the sparse index (39d9fb6)
    • Update ureq-sparse-example to use ureq 2.8.0 (239b009)
rust-crates-index - v2.3.0

Published by Byron 12 months ago

Chore

  • upgrade gitoxide to v0.55.2

Commit Statistics

  • 3 commits contributed to the release.
  • 41 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Merge branch 'updates' (345d8ce)
    • Bump feature level (c9a7744)
    • Upgrade gitoxide to v0.55.2 (82002e7)
rust-crates-index - v2.2.0

Published by Byron about 1 year ago

New Features

  • upgrade gix to v0.54

Bug Fixes

  • be less strict when determining if the crates-index remote matches the target URL.
    Previously a trailing slash could have caused it to think ti's not the same.

Commit Statistics

  • 5 commits contributed to the release.
  • 36 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

  • Uncategorized
    • Merge branch 'gix-upgrade' (fe1ac0c)
    • Be less strict when determining if the crates-index remote matches the target URL. (61b93a1)
    • Upgrade toml to latest version (fc79c67)
    • Adjust test expectations (1f73994)
    • Upgrade gix to v0.54 (9aec9ab)
rust-crates-index - v2.1.1

Published by Byron about 1 year ago

Chore

  • upgrade gix to v0.51 from v0.50

Bug Fixes

  • Allow using git::URL without git feature active

Commit Statistics

  • 6 commits contributed to the release over the course of 17 calendar days.
  • 17 days passed between releases.
  • 2 commits were understood as conventional.
  • 1 unique issue was worked on: #149

Commit Details

  • #149
    • Allow using git::URL without git feature active (2d4bbda)
  • Uncategorized
    • Upgrade gix to v0.51 from v0.50 (72796a9)
    • Fix build (57763f1)
    • Allow using git::URL without git feature active (f5d398a)
    • Add tame-index link to README (88ac53e)
    • Test negative case of GitIndex::try_* as well as possible (238526f)
rust-crates-index - v2.1.0

Published by Byron about 1 year ago

New Features

  • add GitIndex::try_new*() and GitIndex::try_with_path() to open without cloning.
    These methods are naturally read-only and thus have no issues in concurrent contexts, while
    not providing an option to not auto-clone a whole index.
  • Add Names iterator as building block for fuzzy-lookups.
    It creates all allowed permutations regarding - and _ in the crate name,
    so it should be possible to find a crate even if the name doesn't have the correct
    hyphens or underscores set.

Bug Fixes

  • 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.

Other

  • add new example to print information using the sparse index: list_recent_versions.
    Run it with cargo run --example list_recent_versions -- foo bar baz gix rustc gcc foobar blaz.

Commit Statistics

  • 36 commits contributed to the release over the course of 3 calendar days.
  • 3 days passed between releases.
  • 6 commits were understood as conventional.
  • 1 unique issue was worked on: #62

Commit Details

  • #62
    • Improve docs to better clarify the locking behaviour and implications (4919cb2)
  • Uncategorized
    • Merge branch 'locking' (d8fc1c1)
    • Add GitIndex::try_new*() and GitIndex::try_with_path() to open without cloning. (639b081)
    • GitIndex::new_*() will not discover the git repository anymore. (28ab782)
    • Remove the usage of file locks in preference for documentation when opening a git index. (c67033d)
    • Minor refactor to make names in example more descriptive (6f8aa18)
    • Add new example to print information using the sparse index: list_recent_versions. (421de35)
    • Slighlty more informative printing in new example and improve usability (dc6537a)
    • Refactor (fdf663e)
    • Rename new example to fit what it does even better (5f73acd)
    • Add example to Cargo.toml (6125624)
    • Add a small example to show the full sparse workflow (2ef9dac)
    • Example "update_and_get_latest" requires git-https (f755b0f)
    • Merge branch 'names-optimizations' (7b8683e)
    • Improve docs for Names (6ab652e)
    • Minor refactor (a20138d)
    • First return all-hyphens & all_underscores (6b66356)
    • Update test to capture edge case (b63ec37)
    • Use max_count for count() (254d21e)
    • Fix typo in Names doc (c8aa392)
    • Improve documentation of Names iterator (5272d41)
    • Add Names iterator as building block for fuzzy-lookups. (abe5d70)
    • Return the input name first (797081e)
    • Double the performance/throughput by absusing our knowledge about UTF-8 (61ddff0)
    • Prefer hyphens over underscores as these are more common (1f542a5)
    • Avoid allocation of vector for separator indices (a7801b0)
    • Allow the Names iterator to fail creation if too many permutations are possible (9b88659)
    • Refactor tests (95308c8)
    • Refactor structure (bc16839)
    • Add PoC of NamePermutationIterator (1429c4e)
    • Only test on stable Rust as this covers most use-cases (a0bba1c)
    • Change links from lib.rs to crates.io (5f1f245)
    • Always use / for sparse URLs (3bb46ab)
    • Add a cache as well to speed up builds, hopefully, particularly on windows (e322e13)
    • See if CI can handle windows tests as well (2b6e070)
    • Always use / as a separator for sparse urls (1d8a895)
rust-crates-index - v2.0.0

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.

Other

  • make clear that GitIndex auto-clones any index as needed.

New Features

  • add dirs::TBD to make it possible to know where the index should be looked for.
    This might be interesting also for tools that deal with the data alone, like cargo-cache.

Chore

  • Add CHANGELOG.md for a built-in version of it
  • replace git2 with gix.
    This change bringe performance improvements along with increased compatibilty
    with other build targets, as pure Rust builds are now possible.

Refactor (BREAKING)

  • 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.

Chore (BREAKING)

  • remove ssh feature, and rename many existing features, change defaults

    • git-index -> git
    • add 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.

Other

  • make clear that GitIndex auto-clones any index as needed.
  • crate features are now documented

Chore

  • Add CHANGELOG.md for a built-in version of it

Commit Statistics

  • 38 commits contributed to the release over the course of 7 calendar days.
  • 8 days passed between releases.
  • 8 commits were understood as conventional.
  • 1 unique issue was worked on: #129

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

  • #129
    • Replace git2 with gix. (2c5d33a)
  • Uncategorized
    • Fix include directive to allow publish to succeed (40caa8f)
    • Merge branch 'v2.0' (d3b0069)
    • Enable cargo-fmt (365f9dc)
    • Add dirs::TBD to make it possible to know where the index should be looked for. (0d89352)
    • Make clear that GitIndex auto-clones any index as needed. (965f6e9)
    • Remove ssh feature, and rename many existing features, change defaults (a8953e0)
    • Crate features are now documented (beb9f12)
    • Bump version to 2.0, update CHANGELOG.md with excerpt from README.md (b0836d1)
    • Run cargo-diet to optimize package size (2fdf3a8)
    • Refactor code structure (7e86e3c)
    • Remove changes feature (260c103)
    • Rename testdata to fixtures (aba9606)
    • Move tests of the public API into tests/ where integration tests live (0096b92)
    • Add CHANGELOG.md for a built-in version of it (42d89c2)
    • Use thiserror for the error type. (fed6904)
    • Improve "find_repo_head()" to be more resilient (5649466)
    • Fix refspecs for updating the crates index (cc6b8f9)
    • Add an example that gets the latest changed crate right after updating the index. (7d70f8f)
    • Use the latest gix release for API improvements (f50308f)
    • Run cargo fmt on everything that changed in changes.rs (084f226)
    • Re-use test utilities for a unified experience (90da01e)
    • Remove all remainders of git2 (d649f95)
    • Convert Changes from git2 to gix (beddca6)
    • Additional protection against raciness when cloning in parallel (11a7522)
    • Fix alrogithm for finding the head-reference (50edb46)
    • Cargo-fmt on all portions that changed (ab0f126)
    • Switch to latest gix version to smoothen API usage (940ed59)
    • Thanks clippy (8939074)
    • Use gix for update() (ebfda0f)
    • Clone the crate index with gix (92291cf)
    • Use gix for implementing crate_() (2cf53dd)
    • Use gix for index_config() (cd7f910)
    • Convert crates() to gix (fbf169c)
    • Use gix for crates_parallel() (141285e)
    • Add more local git tests to run quickly (i.e. those that don't clone) (9cac8a8)
    • Add gix as alternative (3fe885c)
    • Fix doc-tests for 'changes' feature and run that on CI as well (f234c9b)