Skip to content

build(release): make all new crates publishable - #2180

Merged
Benoît Cortier (CBenoit) merged 2 commits into
masterfrom
claude/irondp-agent-release-4917da
Oct 21, 2026
Merged

Benoît Cortier (CBenoit) merged 2 commits into
masterfrom
claude/irondp-agent-release-4917da

Conversation

@mamoreau-devolutions

@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Several crates added since the last release were marked publish = false or lack release metadata, so cargo publish cannot release them or the crates that depend on them, including ironrdp-agent, ironrdp-viewer, ironrdp-client, and ironrdp-server.

This makes all new crates publishable, except internal tooling and ironrdp-activex, ironrdp-rdpecam, and ironrdp-capture-replay, which stay internal:

  • Drop publish = false from ironrdp-daemon, ironrdp-rpc, ironrdp-rdpeai, and ironrdp-rdpeusb. ironrdp-client, ironrdp-server, and ironrdp-rdpsnd-native depend on ironrdp-rdpeai, and ironrdp-server depends on ironrdp-rdpeusb; Cargo rejects these even as optional dependencies.
  • Set rust-version = "1.94" on the newly published crates that lacked it.
  • Give every not-yet-published crate a CHANGELOG.md that release-plz can extend: the git-cliff header followed by an empty ## [Unreleased] section. release-plz keeps the header through that line and inserts the generated release below it. Replace the placeholder ## [0.1.0] - YYYY-MM-DD heading in ironrdp-rdpei, which release-plz would otherwise duplicate.
  • Make READMEs suitable for crates.io by linking sibling crates through docs.rs and no longer describing ironrdp-rpc as internal.
  • Render the README as crate docs for ironrdp-rpc, ironrdp-daemon, and ironrdp-rdpeusb without repeating its first sentence.
  • Update ARCHITECTURE.md: drop the "not published" note on ironrdp-daemon and add an ironrdp-rpc entry.

Crates.io Trusted Publishing cannot create new crates, which is why the Release crates workflow currently fails on ironrdp-rail. A crates.io owner must publish these manually once, in dependency order, after the bumped versions of their already-published dependencies: ironrdp-rail, ironrdp-rdpei, ironrdp-rpc, ironrdp-rdpeai, ironrdp-rdpel, ironrdp-rdpemt, ironrdp-rdpeudp, ironrdp-rdpeudp-tokio, ironrdp-usb, ironrdp-rdpeusb, ironrdp-rdpewa, ironrdp-rdpewa-native, ironrdp-vmconnect, and ironrdp-daemon (which needs the new ironrdp-client release first).

ironrdp-agent and ironrdp-viewer depend on ironrdp-daemon and
ironrdp-rpc, which were marked `publish = false`, so publishing either
binary crate fails to resolve those dependencies from crates.io.

Drop `publish = false`, set `rust-version` per the MSRV policy, add
initial changelogs, make the READMEs suitable for crates.io, render the
ironrdp-rpc README as its crate docs, and update ARCHITECTURE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 21, 2026 00:58
@github-actions github-actions Bot added automation-failed Exact-head automated classification or review failed or was unavailable risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny size/M Size: up to 449 counted lines and 10 files; exceeds S in either measure labels Oct 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused publication metadata and documentation changes introduce no runtime changes, and no blocking issues were identified.

No open issues 🎉

What changed in this PR

Makes ironrdp-daemon and ironrdp-rpc publishable so dependent IronRDP applications can resolve them from crates.io.

Changes:

  • Enables publication and declares Rust 1.94 as the minimum supported version.
  • Adds initial changelogs and publication-ready documentation.
  • Includes the RPC README in generated crate documentation.
File Description
crates/​ironrdp-rpc/​src/​lib.rs Includes README and logo in rustdoc.
crates/​ironrdp-rpc/​README.md Removes internal-only wording.
crates/​ironrdp-rpc/​CHANGELOG.md Adds initial release notes.
crates/​ironrdp-rpc/​Cargo.toml Enables publication and declares minimum Rust version.
crates/​ironrdp-daemon/​README.md Links RPC documentation through docs.rs.
crates/​ironrdp-daemon/​CHANGELOG.md Adds initial release notes.
crates/​ironrdp-daemon/​Cargo.toml Enables publication and declares minimum Rust version.
ARCHITECTURE.md Updates daemon status and documents RPC.

Review effort: Balanced

@CBenoit

Copy link
Copy Markdown
Member

I’m updating the PR

ironrdp-client, ironrdp-server, and ironrdp-rdpsnd-native depend on
ironrdp-rdpeai, and ironrdp-server depends on ironrdp-rdpeusb. Both were
publish = false, so cargo could not package any of those crates or the
ironrdp-daemon/ironrdp-agent chain built on ironrdp-client.

Make both crates publishable and give every not-yet-published crate in
the agent and viewer dependency tree a CHANGELOG.md that release-plz can
extend: the git-cliff header followed by an empty Unreleased section.
Replace the placeholder 0.1.0 heading in the ironrdp-rdpei changelog,
which release-plz would otherwise duplicate.

Also link sibling crates through docs.rs in the ironrdp-rdpeudp-tokio
README, add the docs.rs logo to ironrdp-rdpeusb, and drop the //! lines
in ironrdp-rpc and ironrdp-daemon that repeated the included README.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@CBenoit Benoît Cortier (CBenoit) changed the title build(release): make ironrdp-daemon and ironrdp-rpc publishable build(release): make agent dependency crates publishable Oct 21, 2026
@github-actions github-actions Bot added risk/low Self-contained change with no cross-crate behavioral effect scope/core Touches the core architectural tier size/XL Size: up to 1299 counted lines and 49 files; exceeds L in either measure and removed risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny size/M Size: up to 449 counted lines and 10 files; exceeds S in either measure automation-failed Exact-head automated classification or review failed or was unavailable labels Oct 21, 2026
@CBenoit Benoît Cortier (CBenoit) changed the title build(release): make agent dependency crates publishable build(release): make all new crates publishable Oct 21, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Release-metadata housekeeping PR that makes previously internal crates publishable. It removes publish = false from ironrdp-daemon, ironrdp-rpc, ironrdp-rdpeai, and ironrdp-rdpeusb (verified in head; their published dependents require this for cargo publish), adds rust-version = "1.94" consistent with the existing per-crate convention (ironrdp-rdpeai already had it), adds boilerplate CHANGELOG.md files matching the git-cliff/release-plz format and fixes the ironrdp-rdpei placeholder heading, converts sibling-crate links to docs.rs for crates.io rendering, applies the standard README-as-docs include pattern to ironrdp-rpc and ironrdp-daemon while removing the now-duplicated crate-level doc sentences, and updates ARCHITECTURE.md with an ironrdp-rpc entry. Independent inspection of all changed files in the head found no correctness, protocol, API, or maintainability issues; the manual first-publish ordering for crates.io Trusted Publishing is documented in the PR body. No findings to pub…

@github-actions github-actions Bot added ai-reviewed/1 One automated review completed needs-review A human reviewer is the current next actor labels Oct 21, 2026
@CBenoit
Benoît Cortier (CBenoit) merged commit bf5d4a4 into master Oct 21, 2026
72 of 74 checks passed
@CBenoit
Benoît Cortier (CBenoit) deleted the claude/irondp-agent-release-4917da branch October 21, 2026 17:22
@github-actions github-actions Bot removed the needs-review A human reviewer is the current next actor label Oct 21, 2026

This branch was previously deployed

1 inactive deployment
llm-providers — e83ad005 Deployed Oct 21, 2026 by CBenoit via Classify pull request #5084
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-reviewed/1 One automated review completed risk/low Self-contained change with no cross-crate behavioral effect scope/core Touches the core architectural tier size/XL Size: up to 1299 counted lines and 49 files; exceeds L in either measure

Development

Successfully merging this pull request may close these issues.

3 participants