v2.1.0
New Features
- add
GitIndex::try_new*()
andGitIndex::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 ofGitIndex
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 withcargo 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
view details
- #62
- Improve docs to better clarify the locking behaviour and implications (4919cb2)
- Uncategorized
- Merge branch 'locking' (d8fc1c1)
- Add
GitIndex::try_new*()
andGitIndex::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)