Prepare the v0.1.0 release: CI, docs, backend fallback, tests - #2
Merged
Conversation
Remove the leaked rust_out/stdin ELF binaries from the working tree and gitignore them at the repo root. Correct the Cargo.toml repository URL to the real remote (freeoxide/wake; the old freeoxide/oxiwake does not resolve) and add the readme and authors fields for crates.io/docs.rs metadata.
Runs on push to main and pull requests. fmt job gates rustfmt; linux job runs the documented verify matrix (test default + linux-x11, wayland check, both clippy variants); windows-gnu-cross type-checks the Windows backend from Linux; windows job builds and tests on windows-latest MSVC.
Fix the README state-path listing to match the code (pending.{pid}.json,
oxiwake.lock) for both Linux and Windows, add an Installation section, and a
CI badge. Add CHANGELOG.md (Keep a Changelog) with the v0.1.0 entry and
CONTRIBUTING.md documenting the verify matrix, feature model, and the shared
CARGO_TARGET_DIR convention.
pick_and_acquire walks supported_backends() in priority order, skipping BackendUnavailable/AcquireFailed and propagating other errors, so a host whose primary backend refuses the lock falls through to weaker ones. The daemon selects via this path with the singleton lock taken before acquire (split into run_daemon_impl). doctor_all() now emits an available=false row for a backend whose doctor() errors instead of dropping it silently. doctor.rs splits os_release parsing from file I/O for unit testing.
Add DoctorReport snapshot tests across every backend, Paths::resolve tests via a pure resolve_under helper, and an end-to-end CLI smoke suite (spawning the real ow binary for help/version/status/doctor). Document the forward-looking but currently-unused API surface (WakeMode::Delay/BlockWeak, DoctorReport::not_compiled, OxiwakeError::AlreadyRunning) as reserved.
hmziqrs
approved these changes
Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Completes the v0.1.0 release preparation: ships CI, release docs, a backend-fallback feature, and broadens test coverage 38 → 98 tests. Verified locally on a host without Polkit/X/Windows (the Windows MSVC job runs on CI).
Commits
rust_out/stdinbuild artifacts and gitignore them; fixCargo.tomlrepository→freeoxide/wake, addreadme/authors..github/workflows/ci.yml:fmt,linux(test default +linux-x11,linux-waylandcheck, both clippy variants),windows-gnucross-check,windows-latestMSVC build+test.CHANGELOG.md,CONTRIBUTING.md; README state-path fix (pending.{pid}.json,oxiwake.lock), Installation section, CI badge.pick_and_acquirewalks the priority list with automatic fallback (skip unavailable/failed, propagate other errors); daemon selects via this path with singleton-lock-before-acquire preserved (run_daemon_impl);doctor_all()surfaces errored probes asavailable=falserows instead of dropping them silently.Paths::resolvetests via a pureresolve_underhelper, end-to-end CLI smoke suite (tests/cli_smoke.rs); reserved-but-unused API documented.Verification
--all-targets&--no-default-features --lib(-D warnings)cargo test/--features linux-x11cargo check --features linux-wayland/--target x86_64-pc-windows-gnu/--all-featurescargo fmt --checkBehavior changes
ow doctorshows a row for every compiled-in backend, including ones whose probe errored.Notes / out of scope
authors = ["Freeoxide"]is a placeholder — easy to amend before merge.v0.1.0, GitHub Release, branch protection onmain, crates.io publish.