惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
博客园 - 司徒正美
罗磊的独立博客
D
Docker
Last Week in AI
Last Week in AI
爱范儿
爱范儿
M
MIT News - Artificial intelligence
V
V2EX
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
V
Visual Studio Blog
博客园 - 叶小钗
B
Blog RSS Feed
A
About on SuperTechFans
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
P
Proofpoint News Feed

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - lightsofapollo/cargo-affect: Plan affected Rust ...
lightsofapol · 2026-05-06 · via Hacker News: Show HN

Plan affected Rust workspace checks from git changes.

cargo-affect maps changed files to Cargo workspace packages, selects those packages plus reverse workspace dependents, and emits outputs for Cargo, cargo-nextest, and CI planners.

Usage

cargo affect packages --workspace crates --base origin/main
cargo affect package-args --workspace crates --base origin/main
cargo affect nextest-expr --workspace crates --base origin/main
cargo affect explain --workspace crates --base origin/main
cargo affect plan --workspace crates --base origin/main

For scripts and tests, bypass git diff with explicit files:

cargo affect package-args \
  --workspace crates \
  --changed-file gpu/gpu-core/src/lib.rs

Policy

Add affect.toml at the workspace root when conservative defaults need project knowledge:

global = [
  "Cargo.toml",
  "Cargo.lock",
  ".cargo/**",
  ".github/workflows/**",
]

[paths]
"apps/portal/public/schema/**" = ["gpu-cli", "gpu-core"]
"docs/**" = []

[platform.macos]
exclude = ["relay-manager"]

[sets.gpu]
include = ["gpu-*", "desktop-inspect*", "relay-manager"]

[ci.profiles.gpu-linux]
set = "gpu"
platform = "linux"
backend = "warpbuild"
cache = "gpu-linux"

[[ci.profiles.gpu-linux.tasks]]
id = "build"
stage = "build"
run = "cargo build --verbose {{ package_args }}"

[[ci.profiles.gpu-linux.tasks]]
id = "nextest"
stage = "test"
run = "cargo nextest run --workspace -E '{{ nextest_expr }}' --no-fail-fast"

Then scope a plan:

cargo affect package-args --workspace crates --set gpu
cargo affect plan --workspace crates --profile gpu-linux
cargo affect ci-run --workspace crates --profile gpu-linux --stage test

GitHub Action

jobs:
  plan:
    runs-on: ubuntu-latest
    outputs:
      nextest-expr: ${{ steps.affect.outputs.nextest-expr }}
      empty: ${{ steps.affect.outputs.empty }}
      cache-key: ${{ steps.affect.outputs.cache-key }}
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - uses: lightsofapollo/cargo-affect@v0.2.5
        id: affect
        with:
          workspace: crates
          profile: gpu-linux

  test:
    needs: plan
    if: needs.plan.outputs.empty != 'true'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: taiki-e/install-action@v2
        with:
          tool: cargo-nextest
      - run: cargo nextest run -E '${{ needs.plan.outputs.nextest-expr }}'
        working-directory: crates

WarpBuild Recipe

WarpBuild is just one backend recipe. The important part is that the cache key uses stable dimensions rather than exact commit SHAs:

- uses: WarpBuilds/rust-cache@v2
  with:
    workspaces: crates/ -> target
    shared-key: rust-${{ runner.os }}-${{ steps.affect.outputs.cache-key }}

Other Backends

  • github: use GitHub-hosted runners plus Swatinem/rust-cache or actions/cache.
  • blacksmith: use Blacksmith runner labels/cache once chosen.
  • warpbuild: use WarpBuild runner labels and WarpBuilds/rust-cache.

The core planner output is the same for all of them.

Install Path

CI should not rebuild cargo-affect just to decide what changed. The GitHub Action prefers a prebuilt release binary, then a restored tool cache, and only falls back to a local release build for unreleased SHAs or local development.

The action can work with shallow checkouts. By default it fetches only the resolved diff base at depth 1. For push events, if a base SHA cannot be fetched directly, current-branch-deepen-depth controls the bounded fallback history depth. Set fetch-base: false if your workflow already checks out the needed history.

The optimized test path is cargo nextest run -E '<expr>'. package-args exists for plain Cargo commands, but large workspaces should usually consume nextest-expr.

For local installation:

cargo install --git https://github.com/lightsofapollo/cargo-affect