Skip to content
This repository has been archived by the owner on Mar 13, 2021. It is now read-only.

Latest commit

 

History

History
88 lines (75 loc) · 2.49 KB

RELEASES.md

File metadata and controls

88 lines (75 loc) · 2.49 KB

0.5.0 (PENDING)

0.4.0

  • Change the Range() API, make this similar to std-lib.
  • Rewrite iter(), range() API. performance improvement by ~2x.
  • Replace " as " type-casting with try_into().unwrap().
  • Implement Default trait for Depth type.
  • Fix reverse API signature.
  • Replace load_from() with Extend trait.
  • Improve unit-testing.

0.3.0

  • Implement Empty type that can be used as values.
  • Breaking changes.
    • Rename LlrbError to Error.
    • Replace Clone implementation for Llrb with #[drive(Clone)]
    • Change return type for create() API.
  • rustdoc.

0.2.0

  • Implement create() method on Llrb.
  • Implement random() method on Llrb.
  • Rename count() API to len() method on Llrb.
  • Stats type and new stats() method on Llrb.
  • validate() method should return Stats type.
  • Tree depth statistics, in min, mean, max, percentiles.

0.1.0

  • Self-balancing data structure.
  • Optimized for in-memory index.
  • Each entry in LLRB instance correspond to a {Key, Value} pair.
  • Parametrised over Key type and Value type.
  • CRUD operations, via set(), get(), delete() API.
  • Read optimized.
  • Full table scan, to iterate over all entries.
  • Range scan, to iterate between a low and high.
  • Reverse iteration.

Code Review checklist

  • Review and check for un-necessary copy, and allocations.
  • Review resize calls on Vec.
  • Review (as ...) type casting, to panic on data loss.
  • Reduce trait constraints for Type parameters on public APIs.
  • Public APIs can be as generic as possible. Check whether there is a scope for AsRef or Borrow constraints.
  • Document error variants.
  • Check for dangling links in rustdoc.

Release Checklist

  • Bump up the version:
    • major: backward incompatible API changes.
    • minor: backward compatible API Changes.
    • patch: bug fixes.
  • Cargo checklist
    • cargo +stable build; cargo +nightly build
    • cargo +stable doc; cargo +nightly doc
    • cargo +stable test; cargo +nightly test
    • cargo +nightly bench
    • cargo +nightly clippy --all-targets --all-features
    • cargo fix --edition --all-targets
  • Travis-CI integration.
  • Spell check.
  • Create a git-tag for the new version.
  • Cargo publish the new version.
  • Badges
    • Build passing, Travis continuous integration.
    • Code coverage, codecov and coveralls.
    • Crates badge
    • Downloads badge
    • License badge
    • Rust version badge.
    • Maintenance-related badges based on isitmaintained.com
    • Documentation
    • Gitpitch