Skip to content

feat(windows): add SDIO driver step - #1338

Closed
niStee wants to merge 9 commits into
topgrade-rs:mainfrom
niStee:split/windows-sdio-core
Closed

feat(windows): add SDIO driver step#1338
niStee wants to merge 9 commits into
topgrade-rs:mainfrom
niStee:split/windows-sdio-core

Conversation

@niStee

@niStee niStee commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

What does this PR do

  • add a Windows-only Snappy Driver Installer Origin step that auto-detects SDIO, generates scripts for dry-run/interactive/automatic flows, and keeps the console output concise via print_info
  • gate the step behind new enable_sdio/sdio_path config knobs, document them in config.example.toml, and ensure the example config keeps risky defaults disabled
  • localize new user-facing text, restructure the Windows step module (windows/mod.rs), and wire Step::Sdio into the runner/default Windows step list (including a clearer "Update WSL" label)

Standards checklist

  • The PR title is descriptive
  • I have read CONTRIBUTING.md
  • Optional: I have tested the code myself
  • If this PR introduces new user-facing messages they are translated

For new steps

  • Optional: Topgrade skips this step where needed
  • Optional: The --dry-run option works with this step
  • Optional: The --yes option works with this step if it is supported by the underlying command

Testing

  • cargo fmt
  • cargo clippy
  • cargo test
  • /home/nils/.venvs/pre-commit/bin/pre-commit run --all-files (from WSL, skipping gitleaks per Windows limitation)
  • cargo run -- --dry-run --only sdio --config tmp/sdio_topgrade_config.toml
  • cargo run -- --only sdio --config tmp/sdio_topgrade_config.toml
  • cargo run -- --yes --only sdio --config tmp/sdio_topgrade_config.toml
  • cargo run -- --only sdio --config tmp/sdio_topgrade_config.toml -v
  • cargo run -- --yes --only sdio --config tmp/sdio_topgrade_config.toml -v

@niStee
niStee marked this pull request as ready for review September 26, 2025 20:22
@niStee

niStee commented Sep 26, 2025

Copy link
Copy Markdown
Contributor Author

@GideonBear, please take a look.

@GideonBear

Copy link
Copy Markdown
Member

Hi, sorry for the wait.
Could you send me an example of what it looks like for the step to run? E.g. can you install an outdated driver, run topgrade --only sdio, and show that it updates, and updated the driver, with screenshots or a screencap?
I'm not going to test SDIO myself, but I want to know what the UX would be like.

@niStee
niStee force-pushed the split/windows-sdio-core branch from 838f24e to 67b1d45 Compare October 3, 2025 23:37
niStee and others added 4 commits October 4, 2025 01:45
# Conflicts:
#	locales/app.yml
#	src/config.rs
…tallation process

Improves SDIO driver selection and installation control

Updates SDIO script commands to enhance the driver update process.

Adds `newer` to the `select` command, ensuring that the tool prioritizes newer drivers in addition to missing or better ones.

Explicitly controls installation enabling via `enableinstall off` during analysis and `enableinstall on` during actual installation. This prevents unintended installations during dry-runs or analysis and ensures proper execution during the installation phase.
@niStee
niStee marked this pull request as draft October 11, 2025 12:25
barkleesanders added a commit to barkleesanders/topgrade that referenced this pull request Mar 8, 2026
Implements Snappy Driver Installer Origin (SDIO) support for Windows.
SDIO is opt-in and disabled by default due to its invasive nature
(driver updates can brick hardware). Includes vulnerability assessment.

From PRs topgrade-rs#1338 and topgrade-rs#1339 by niStee.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@niStee niStee closed this May 8, 2026
@niStee
niStee deleted the split/windows-sdio-core branch May 8, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants