Skip to content

RUST-CI-004: Harden Rust toolchain, feature, and supply-chain gates #8

Description

@itlezy

RUST-CI-004 - Harden Rust toolchain, feature, and supply-chain gates

Summary

Make Rust development and release inputs reproducible: pin the current stable
toolchain, exercise the diagnostics feature explicitly, centralize workspace
manifest policy, and enforce dependency source and license rules after obsolete
Git dependencies are removed.

Scope

  • Pin Rust 1.97.0 in one repository-owned toolchain file and make CI consume it.
  • Declare the workspace Rust version and verify the active compiler in CI.
  • Build/check the packet-diagnostics binary without enabling test-only
    egress-audit in product builds.
  • Set internal crates non-publishable and use GPL-2.0-only.
  • Centralize repeated direct dependencies and narrow Tokio features by crate.
  • Enforce Cargo-deny source and license policy after the dependency baseline is
    green; record justified duplicate-version exceptions separately.
  • Make maintainability advisories emphasize changed files without becoming
    source-size failures.

Acceptance Criteria

  • Local development and every CI job use Rust 1.97.0 from one pin.
  • The default daemon, diagnostics binary, and isolated egress-audit test
    configuration each have an explicit gate.
  • All internal crates are publish = false and GPL-2.0-only.
  • Cargo-deny rejects unapproved Git/registry sources and incompatible
    licenses.
  • The repository documents and checks a repeatable toolchain update cadence.
  • Policy advisories remain non-failing and prioritize changed files.

Validation

  • python tools\rust_quality_gate.py policy
  • Supported workspace Rust format, Clippy, build, and test orchestration.
  • Cargo-deny advisories, sources, licenses, and the reviewed bans baseline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status
    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions