Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Memory-efficient doublets storage
- Support for split and unit storage modes
- FFI bindings for cross-language support
- Comprehensive data structures for link management
- Comprehensive data structures for link management
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ Thank you for your interest in contributing! This document provides guidelines a
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

The project uses a specific nightly toolchain configured in `rust-toolchain.toml`:
The project uses the stable Rust toolchain configured in `rust-toolchain.toml`:

```toml
[toolchain]
channel = "nightly-2022-08-22"
channel = "stable"
```

3. **Install development tools**
Expand Down Expand Up @@ -262,7 +263,6 @@ Fragments are automatically collected into CHANGELOG.md during the release proce
├── changelog.d/ # Changelog fragments
│ └── README.md # Fragment instructions
├── ci/ # CI scripts
├── dev-deps/ # Development dependencies (git submodules)
├── doublets/ # Main doublets library
│ ├── src/ # Source code
│ ├── tests/ # Integration tests
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 7 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,11 @@ Add to your `Cargo.toml`:

```toml
[dependencies]
doublets = "0.1.0-pre"
doublets = "0.3.0"
```

**Note:** This crate requires nightly Rust due to usage of experimental features.

```bash
rustup default nightly
```
This crate builds on stable Rust. The minimum supported Rust version is 1.85,
as configured by `doublets/Cargo.toml`.

## Example

Expand Down Expand Up @@ -200,10 +197,6 @@ doublets-rs/
│ │ └── split/ # Split storage implementation
│ └── benches/ # Performance benchmarks
├── doublets-ffi/ # C FFI bindings
├── dev-deps/ # Platform dependencies
│ ├── data-rs/ # Data primitives (LinkType, Flow, etc.)
│ ├── mem-rs/ # Memory abstractions (RawMem, FileMapped)
│ └── trees-rs/ # Tree structures (size-balanced trees)
└── integration/ # Integration tests
```

Expand Down Expand Up @@ -246,9 +239,10 @@ cargo bench --all-features

## Dependencies

- [platform-data](https://github.com/linksplatform/data-rs) - Core data types
- [platform-mem](https://github.com/linksplatform/mem-rs) - Memory abstractions
- [platform-trees](https://github.com/linksplatform/trees-rs) - Tree implementations
- [platform-num](https://crates.io/crates/platform-num) - Link reference numeric traits
- [platform-data](https://crates.io/crates/platform-data) - Core data types
- [platform-mem](https://crates.io/crates/platform-mem) - Memory abstractions
- [platform-trees](https://crates.io/crates/platform-trees) - Tree implementations

## Support

Expand Down
36 changes: 36 additions & 0 deletions STABLE_RUST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Stable Rust Support

`doublets-rs` builds on stable Rust. The workspace uses `rust-toolchain.toml`
with `channel = "stable"`, and the `doublets` crate declares Rust 1.85 as its
minimum supported Rust version.

## Current Setup

- The crate no longer uses `#![feature(...)]` attributes.
- CI uses `.github/workflows/release.yml` with `dtolnay/rust-toolchain@stable`.
- Platform dependencies are consumed from crates.io:
`platform-num`, `platform-data`, `platform-mem`, and `platform-trees`.
- The old `dev-deps/` git submodules are no longer required.
- Miri, when used manually through `ci/miri.sh`, still installs a nightly
toolchain because Miri itself requires nightly Rust. This does not make the
crate require nightly for normal builds, tests, or releases.

## Usage

```bash
cargo check
cargo test --all-features
```

For local development, install the standard stable components:

```bash
rustup component add rustfmt clippy
```

## Related Work

The full migration was completed through PR 48, which removed the nightly-only
language features, migrated platform dependencies to crates.io releases, and
updated CI/CD to use the stable toolchain. This document keeps issue 22's
stable Rust requirement visible from the repository root.
2 changes: 2 additions & 0 deletions changelog.d/20260418_issue_22_stable_rust_docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
### Fixed
- Updated installation and contributor documentation to reflect stable Rust 1.85+ support instead of the removed nightly toolchain requirement.