---
id: IR-11
title: "plexus-macros: rebless trybuild .stderr fixtures for post-IR-4 deprecation warnings"
status: Complete
type: implementation
blocked_by: [IR-4]
unlocks: []
severity: Low
target_repo: plexus-macros
---

## Problem

IR-4 marked `PluginSchema.children`, `PluginSchema::is_hub()`, and `ChildCapabilities` with `#[deprecated]`. Several trybuild compile-test fixtures in plexus-macros now produce additional deprecation warnings in their stderr output — enough to diverge from the committed `.stderr` expectations. The affected fixtures include at least:

- `tests/compile/activation_param_type_mismatch.stderr`
- `tests/compile/activation_request_field_type_mismatch.stderr`
- `tests/compile/activation_param_field_name_mismatch.stderr`

`cargo test` in plexus-macros currently surfaces these as test failures because trybuild compares expected vs actual stderr line-by-line. `cargo build -p plexus-macros` is unaffected — this is a test-harness issue only.

The IR-4 agent confirmed that `TRYBUILD=overwrite cargo test` blesses the fixtures cleanly, but the agent was scoped to plexus-core only.

## Context

trybuild's reblessing workflow: `TRYBUILD=overwrite cargo test` runs the compile-fail suite and overwrites each `.stderr` file with the actual observed output. Subsequent `cargo test` runs then compare against the new expectations.

The reblessed stderr additions will be `warning: use of deprecated ...` lines for each deprecated surface the fixture touches. No error output changes — the fixtures still fail for the same reason they failed before; the deprecation warnings just appear alongside.

## Required behavior

Run `TRYBUILD=overwrite cargo test` in plexus-macros. Inspect the diff of each modified `.stderr` file. Verify that the **only** additions are deprecation warning lines; no existing error lines are removed or reordered. Commit the reblessed fixtures.

## Risks

| Risk | Mitigation |
|---|---|
| Reblessing masks a real regression in error output. | Reviewer inspects the diff manually. If any non-deprecation-warning line changes, the fixture is NOT reblessed automatically — investigate whether the change is expected. Acceptance 3 pins this. |
| Future IR tickets (IR-5, IR-6) add more deprecations and invalidate the rebless. | Accept — this is an iterative cleanup. Re-rebless as needed in follow-up tickets with the same review discipline. |

## What must NOT change

- No changes to the fixture `.rs` source files.
- No changes to plexus-macros source — this is a `.stderr` file update only.
- All non-trybuild plexus-macros tests continue to pass.
- Reblessed stderr contains the same error lines (type-mismatch messages, `E0xxx` codes) in the same order as before. Only deprecation-warning lines are additive.

## Acceptance criteria

1. `cargo test -p plexus-macros` passes.
2. `git diff plexus-macros/tests/compile/*.stderr` shows only additive lines containing `warning:` and `deprecated` substrings — no line removals, no reordering of existing content.
3. The PR description lists each `.stderr` file touched with a one-line summary of the warning added.
4. Fixtures that weren't affected by IR-4's deprecations remain byte-identical to their pre-ticket versions.

## Completion

PR against plexus-macros reblessing the affected fixtures. CI green. Status flipped from `Ready` to `Complete` in the same commit.
