proc-daemon 1.1.2

High-performance async daemon framework for Rust services: cross-platform signal handling, graceful shutdown, subsystem lifecycle management, hot-reload config, and structured logging. Tokio-first.
# 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

cargo search proc-daemon | head -3
```

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