Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
9fe0e70
sdk%chore: drop no longer needed `CLAUDE.md` symlink
kwvg Oct 10, 2026
932ee5d
sdk%doc: reap "Versioning and Platform Policy", thin down root README.md
kwvg Oct 11, 2026
5a07dd0
sdk%chore: pass `--locked` to `rust-analyzer` `cargo` invocations
kwvg Oct 12, 2026
49507bd
sdk%fix(docs): build without the zensical page cache
kwvg Oct 12, 2026
658ce47
pow%build: modify `aes_hw` to imply `simd`
kwvg Oct 12, 2026
b980494
sdk%build!: bump MSRV to 1.89, refresh lockfiles
kwvg Oct 12, 2026
5ab8fb1
sdk%feat: add SDK-wide `portable` feature, forward `blst/portable`
kwvg Oct 12, 2026
f36faf1
sdk%build!: enforce platform minimums, set flags for in-tree builds
kwvg Oct 12, 2026
0126dc0
types%feat!: decouple `serde` from `codec`
kwvg Oct 11, 2026
db5680d
num%feat!: decouple `serde` from `codec`
kwvg Oct 11, 2026
d53e477
pkc%feat!: decouple `serde` from `codec`
kwvg Oct 11, 2026
a02faf2
p2p_core%refac: derive error structs and enums with `thiserror`
kwvg Oct 12, 2026
eacbff7
primitives%refac: derive error enums with `thiserror`
kwvg Oct 12, 2026
45f138d
pkc%refac: derive error enums with `thiserror`
kwvg Oct 11, 2026
a7fcb6a
types%refac: derive error enums with `thiserror`
kwvg Oct 11, 2026
1c40637
sdk%build: move verb configs to `.cargo`, tune `release`, `nextest` opts
kwvg Oct 11, 2026
4aa6386
sdk%feat(lint): add `cargo mutants` to stress unit test coverage
kwvg Oct 12, 2026
7d59e04
sdk%lint(deny): track advisories from `rustsec/advisory-db`
kwvg Oct 10, 2026
15dc12f
sdk%build: bump dev `codegen-units`, avoid `cargo bench` to skip fat LTO
kwvg Oct 12, 2026
9924a19
sdk%lint(commit): flesh out `lint_commit`, add AI disclosure to template
kwvg Oct 12, 2026
b6454ce
sdk%feat(contrib): add merge script to preserve PR descriptions
kwvg Oct 12, 2026
087fa60
sdk%lint: clippy every feature combination with `cargo hack`
kwvg Oct 12, 2026
e90924e
sdk%doc: update changelogs
kwvg Oct 12, 2026
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
9 changes: 9 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
[net]
git-fetch-with-cli = true

[target.'cfg(target_arch = "aarch64")']
rustflags = ["-C", "target-feature=+aes"]

[target.'cfg(target_arch = "x86_64")']
rustflags = ["-C", "target-cpu=x86-64-v3", "-C", "target-feature=+adx,+aes"]

[target.'cfg(target_arch = "wasm32")']
rustflags = ["-C", "target-feature=+simd128"]
Comment thread
coderabbitai[bot] marked this conversation as resolved.
3 changes: 3 additions & 0 deletions deny.toml → .cargo/deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
all-features = true

[advisories]
db-path = "$CARGO_HOME/advisory-dbs"
db-urls = ["https://github.com/rustsec/advisory-db"]
version = 2
yanked = "deny"

[bans]
Expand Down
12 changes: 12 additions & 0 deletions .cargo/mutants.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
additional_cargo_test_args = [
"--config-file",
".cargo/nextest.toml",
"--profile",
"fail-fast",
]
build_timeout_multiplier = 5.0
exclude_globs = ["pkgs/dev/**", "pkgs/pow/**"]
features = ["full"]
gitignore = true
profile = "mutants"
test_tool = "nextest"
8 changes: 8 additions & 0 deletions .cargo/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[profile.default]
fail-fast = false

[profile.default.junit]
path = "junit.xml"

[profile.fail-fast]
fail-fast = true
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,13 @@
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional tests
- [ ] I have made corresponding changes to the documentation
- [ ] I did not use agentic assistance (i.e. LLMs, AI) except as [disclosed](#agent-disclosure) and can answer questions,
comments and concerns without said assistance. I assume authorship of the code submitted.
- [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

### Agent disclosure

<!--
Omit this segment if agentic assistance is not used, otherwise specify model name, version, runner and effort, e.g.
"Code generated with Claude Code using Sonnet 4.6, high effort. Reviewed with Codex using GPT-5.6-Sol, medium effort."
-->
6 changes: 3 additions & 3 deletions .github/workflows/build_msrv.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: MSRV (1.85)
name: MSRV (1.89)

on:
push:
Expand Down Expand Up @@ -143,11 +143,11 @@ jobs:
export RUSTC="$TOOLCHAIN_MSRV/bin/rustc"
export RUSTDOC="$TOOLCHAIN_MSRV/bin/rustdoc"
"$TOOLCHAIN_MSRV/bin/cargo" build --workspace --exclude dash-pow --features full
"$TOOLCHAIN_MSRV/bin/cargo" build -p dash-pow --features std,aes_hw
"$TOOLCHAIN_MSRV/bin/cargo" build -p dash-pow --features std

- name: Test workspace
run: |
export RUSTC="$TOOLCHAIN_MSRV/bin/rustc"
export RUSTDOC="$TOOLCHAIN_MSRV/bin/rustdoc"
"$TOOLCHAIN_MSRV/bin/cargo" test --workspace --exclude dash-pow --features full
"$TOOLCHAIN_MSRV/bin/cargo" test -p dash-pow --features std,aes_hw
"$TOOLCHAIN_MSRV/bin/cargo" test -p dash-pow --features std
21 changes: 14 additions & 7 deletions .github/workflows/build_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ jobs:
name: ubuntu-24.04-arm (nightly, ${{ matrix.config.name }})
runs-on: ubuntu-24.04-arm
env:
RUSTFLAGS: -D warnings
HAS_CODECOV: ${{ secrets.CODECOV_TOKEN != '' }}
strategy:
fail-fast: false
Expand All @@ -34,6 +33,7 @@ jobs:
- { name: full, args: "--features full" }
- { name: min, args: "--no-default-features" }
- { name: std, args: "--features std" }
- { name: powerset, args: "" }

defaults:
run:
Expand Down Expand Up @@ -90,15 +90,21 @@ jobs:
cargo-build-nightly-${{ runner.os }}-${{ runner.arch }}-${{ inputs.package }}-${{ matrix.config.name }}-

- name: Lint package
if: matrix.config.name == 'full' || matrix.config.name == 'min'
run: cargo clippy -p ${{ inputs.package }} ${{ matrix.config.args }} --tests --benches -- -D warnings

- name: Lint every feature combination
if: matrix.config.name == 'powerset'
run: cargo hack clippy -p ${{ inputs.package }} --feature-powerset --exclude-features default -- -D warnings

- name: Build package
if: matrix.config.name == 'full' || matrix.config.name == 'min'
run: cargo build -p ${{ inputs.package }} ${{ matrix.config.args }}

- name: Test package
if: matrix.config.name != 'full'
if: matrix.config.name == 'min' || matrix.config.name == 'std'
run: |
cargo nextest run --config-file maint/nextest.toml --profile=ci -p ${{ inputs.package }} ${{ matrix.config.args }}
cargo nextest run --config-file .cargo/nextest.toml -p ${{ inputs.package }} ${{ matrix.config.args }}
cargo test --doc -p ${{ inputs.package }} ${{ matrix.config.args }}

- name: Check formatting
Expand All @@ -109,7 +115,7 @@ jobs:
if: matrix.config.name == 'full'
run: |
cargo llvm-cov clean --workspace
cargo llvm-cov --no-report nextest --config-file maint/nextest.toml --profile=ci ${{ matrix.config.args }} --package ${{ inputs.package }}
cargo llvm-cov --no-report nextest --config-file .cargo/nextest.toml ${{ matrix.config.args }} --package ${{ inputs.package }}
cargo llvm-cov report --lcov --output-path lcov.info
cargo test --doc -p ${{ inputs.package }} ${{ matrix.config.args }}

Expand All @@ -122,13 +128,14 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload test results to Codecov
if: ${{ !cancelled() && matrix.config.name == 'full' && env.HAS_CODECOV == 'true' && hashFiles('target/nextest/ci/junit.xml') != '' }}
if: ${{ !cancelled() && matrix.config.name == 'full' && env.HAS_CODECOV == 'true' && hashFiles('target/nextest/default/junit.xml') != '' }}
uses: codecov/codecov-action@v5
with:
files: target/nextest/ci/junit.xml
files: target/nextest/default/junit.xml
report_type: test_results
flags: ${{ inputs.package }}
token: ${{ secrets.CODECOV_TOKEN }}

- name: Sanity check benchmarks
run: cargo bench ${{ matrix.config.args }} --package ${{ inputs.package }} --no-run
if: matrix.config.name != 'powerset'
run: cargo test ${{ matrix.config.args }} --package ${{ inputs.package }} --benches
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"**/Cargo.lock": true,
"**/target": true,
},
"rust-analyzer.cargo.extraArgs": ["--locked"],
"rust-analyzer.cargo.features": "all",
"rust-analyzer.check.command": "clippy",
"rust-analyzer.checkOnSave": true,
Expand Down
8 changes: 3 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ The full guide is at [`docs/dev/guide_rust.md`](./docs/dev/guide_rust.md). Key p
### Environment

- `no_std` + `alloc` is mandatory for all crates. Every crate uses `#![no_std]` with `extern crate alloc`.
- `std` is an optional feature that downstream consumers enable when they need stdlib I/O, `Error` impls, etc.
- `std` is an optional feature that downstream consumers enable when they need standard library I/O, primitives, etc.
- No networking code in any crate. The SDK provides encoding, decoding, and data types only.

### Feature flags
Expand All @@ -48,13 +48,11 @@ Every crate must follow this feature layout:
[features]
default = []
std = [...]
full = ["std"] # add "serde" here only if the crate implements Serialize/Deserialize
full = ["std"] # add "serde" here if the crate implements Serialize/Deserialize, do not include "portable"
portable = [...] # only if the crate or a dependency defines platform acceleration
serde = ["dep:serde"] # only if the crate has serde impls
```

No other features should exist unless there is a pressing justification. The `serde` feature is only added to crates
that actually derive or implement `Serialize`/`Deserialize` on public types.

### Module conventions

Any shim code that mediates between `alloc` and `std` (e.g. `pub(crate) use alloc::vec::Vec;`) belongs in
Expand Down
1 change: 0 additions & 1 deletion CLAUDE.md

This file was deleted.

Loading
Loading