rust-learner

SKILL.md

Version Update Strategy

Stable Updates

# Check current version
rustc --version

# Update Rust
rustup update stable

# View changelog
rustup doc --changelog

When to Upgrade

Scenario Recommendation
New project Use latest stable
Production project Follow 6-week cycle
Library project Consider MSRV policy

MSRV (Minimum Supported Rust Version)

[package]
rust-version = "1.70"  # Declare minimum version

[dependencies]
# MSRV-sensitive dependencies require care
serde = { version = "1.0", default-features = false }

Solution Patterns

Pattern 1: Following Stable Releases

# Quarterly update routine
rustup update stable
cargo outdated
cargo audit
cargo test --all-features

# Read release notes
rustup doc --changelog

Pattern 2: Tracking Ecosystem Changes

# Check for breaking changes
cargo update --dry-run

# Security audit
cargo audit

# License check
cargo deny check licenses

# Check dependency tree
cargo tree

Pattern 3: Learning New Features

// Edition 2024 features

// Inline const (1.79+)
const fn compute() -> [u8; 32] {
    let mut arr = [0u8; 32];
    // compute at compile time
    arr
}

// Never type improvements (1.82+)
fn diverge() -> ! {
    panic!("never returns")
}

// Async fn in trait (1.75+)
trait Repository {
    async fn fetch(&self, id: u64) -> Result<Data, Error>;
}

Learning Path

Beginner → Advanced

Basics → Ownership, lifetimes, borrow checker
Intermediate → Trait objects, generics, closures
Concurrency → async/await, threads, channels
Advanced → unsafe, FFI, performance optimization
Expert → Macros, type system, design patterns

Information Sources

Official Channels

Source Content Frequency
This Week in Rust Weekly digest, RFCs, blogs Weekly
Rust Blog Major releases, deep dives As released
Rust RFCs Design discussions Ongoing
Release Notes Version changes Every 6 weeks

Community Resources

Resource Content
docs.rs Documentation search
crates.io Package search
lib.rs Find alternative crates
Rust Analyzer IDE plugin

Dependency Management

Regular Updates

# Check outdated dependencies
cargo outdated

# Update compatible versions
cargo update

# Update to latest (may break)
cargo upgrade

Security Audit

# Check for known vulnerabilities
cargo audit

# Check dependency licenses
cargo deny check licenses

# Analyze dependency tree
cargo tree -d  # Show duplicates

Workflow

Quarterly Checklist

Every 3 months:
- [ ] Upgrade to latest stable Rust
- [ ] Run cargo outdated
- [ ] Run cargo audit
- [ ] Check dependencies for breaking changes
- [ ] Evaluate new features worth adopting
- [ ] Update tooling (clippy, rustfmt)

Annual Checklist

Every year:
- [ ] Consider edition upgrade
- [ ] Refactor deprecated patterns
- [ ] Evaluate MSRV policy
- [ ] Update development toolchain
- [ ] Review architecture patterns

Learning Resources

Beginner

Intermediate

Advanced

Practice

Edition Update Strategy

Edition Released Key Features
2015 Original -
2018 Dec 2018 Module system, NLL
2021 Oct 2021 Disjoint captures, IntoIterator
2024 TBD Gen blocks, async drop

Upgrading Editions

# Check if upgrade possible
cargo fix --edition

# Update Cargo.toml
# edition = "2024"

# Test thoroughly
cargo test --all-features

Review Checklist

When learning new Rust features:

  • Feature is stable (not experimental)
  • Understand the problem it solves
  • Know when NOT to use it
  • Aware of trade-offs
  • Tested in small project first
  • Read release notes thoroughly
  • Checked ecosystem adoption
  • Updated team documentation

Verification Commands

# Check Rust version
rustc --version
rustup show

# Update toolchain
rustup update

# Check outdated dependencies
cargo outdated

# Security audit
cargo audit

# License compliance
cargo deny check

# Check for deprecated features
cargo clippy -- -W deprecated

Common Pitfalls

1. Chasing Shiny Features

Symptom: Using unstable features in production

# ❌ Avoid: nightly features in production
#![feature(generic_associated_types)]

# ✅ Good: wait for stabilization
# Use stable alternatives

2. Ignoring MSRV

Symptom: Breaking downstream users

# ✅ Good: declare MSRV
[package]
rust-version = "1.70"

# Test against MSRV in CI
# cargo +1.70 test

3. Not Reading Release Notes

Symptom: Surprised by breaking changes

# ✅ Good: read before updating
rustup doc --changelog

# Check crate changelogs
cargo info <crate> --version <version>

Related Skills

  • rust-ecosystem - Crate selection and tools
  • rust-coding - Best practices and conventions
  • rust-performance - Performance improvements
  • rust-async - Async/await patterns
  • rust-error - Error handling evolution

Localized Reference

  • Chinese version: SKILL_ZH.md - 完整中文版本,包含所有内容
Weekly Installs
7
GitHub Stars
20
First Seen
Jan 28, 2026
Installed on
gemini-cli6
claude-code4
github-copilot4
amp4
cline4
codex4