# proc-daemon v1.1.1 — docs.rs Build Fix
**Date:** 2026-05-19
**Compare:** `v1.1.0...v1.1.1`
## Headline
A one-line patch fixing docs.rs documentation generation, which
has been silently failing for `1.0.1` and `1.1.0`. No source
changes — `Cargo.toml` metadata only. No behavioral or API
changes. Consumers can upgrade with `cargo update -p proc-daemon`.
The failure: docs.rs builds on current nightly with
`all-features = true`. Enabling the `async-std` feature pulls
in `signal-hook-async-std 0.2.2` → `async-io 1.x` →
`rustix 0.37.28`. `rustix 0.37.28` uses internal
`rustc_layout_scalar_valid_range_start` and
`rustc_layout_scalar_valid_range_end` attributes that the
nightly compiler now rejects with *"attributes starting with
`rustc` are reserved for use by the `rustc` compiler"*.
Compilation halts before rustdoc runs, so docs aren't
generated, and the `latest` documentation URL falls back to
`v1.0.0`.
Stable builds and CI are unaffected — only nightly trips this,
and only when the full feature set is enabled. The crate itself
is unchanged.
## What changed
### Fixed — docs.rs `Cargo.toml` metadata
`[package.metadata.docs.rs]` switched from
`all-features = true` to an explicit feature list that
excludes `async-std`:
```toml
[package.metadata.docs.rs]
features = [
"tokio",
"toml",
"metrics",
"console",
"json-logs",
"config-watch",
"ipc",
"backtrace",
"serde",
"mimalloc",
"high-res-timing",
"scheduler-hints",
"scheduler-hints-unix",
"lockfree-coordination",
"profiling",
"heap-profiling",
"mmap-config",
]
default-target = "x86_64-unknown-linux-gnu"
rustdoc-args = ["--cfg", "docsrs"]
```
The list is exhaustive minus three deliberate omissions:
- **`async-std`** — root cause of the build failure;
discontinued upstream and slated for removal in v2.0.0.
- **`windows-monitoring`** — Windows-only; on docs.rs's Linux
target the feature surface isn't reachable, so including it
contributes nothing to the generated docs and only risks
noise.
- **`full`** — convenience meta-feature; its constituents are
already listed individually, so including it is redundant.
`default-target = "x86_64-unknown-linux-gnu"` is added to pin
the build target. docs.rs already builds on Linux by default,
but explicit is better when a manifest-driven feature set
diverges across platforms.
**Migration:** none. The async-std runtime continues to be
selectable via Cargo features for end-users — it just won't be
reflected in the rendered docs on docs.rs.
## Verification
Local matrix (Windows 11, `x86_64-pc-windows-msvc`, Rust 1.95.0):
- `cargo doc --no-deps --no-default-features --features "tokio toml metrics console json-logs config-watch ipc backtrace serde mimalloc high-res-timing scheduler-hints scheduler-hints-unix lockfree-coordination profiling heap-profiling mmap-config"` ✓ — matches docs.rs's exact feature resolution.
- `cargo build` (default features) ✓
- `cargo test --lib` ✓ 36 passing
- All v1.1.0 verification criteria continue to hold; no source changed.
The docs.rs rebuild will trigger automatically on publish.
## Migration from `1.1.0`
No source-level migration required.
`cargo update -p proc-daemon` is sufficient. There is no
behavior change and no API change.
If you are a downstream consumer that customizes
`[package.metadata.docs.rs]` in your own crate and pulls in
`proc-daemon` with the `async-std` feature, you may want to
mirror the same exclusion or use `targets` to restrict your
own docs build.
## Stability commitment
`1.1.1` is a patch release. No public surface change. No MSRV
change (stays at `1.82.0`). No dependency change.
## Release ceremony
```bash
git tag -a v1.1.1 -m "Release v1.1.1 — docs.rs Build Fix"
git push origin main
git push origin v1.1.1
cargo publish -p proc-daemon
GitHub release title: `v1.1.1 — docs.rs Build Fix`.
Not tagged as pre-release.
---
**Full Changelog:** https://github.com/jamesgober/proc-daemon/compare/v1.1.0...v1.1.1