Skip to content

chore(ci): enforce external type allow-list in public API#4204

Merged
dignifiedquire merged 5 commits intomainfrom
ci/enforce-external-types
Apr 30, 2026
Merged

chore(ci): enforce external type allow-list in public API#4204
dignifiedquire merged 5 commits intomainfrom
ci/enforce-external-types

Conversation

@Frando
Copy link
Copy Markdown
Member

@Frando Frando commented Apr 28, 2026

Description

Foreign types in our public API block semver-breaking updates of those
crates during 1.0. #3177 tracks reducing that surface to a curated
allow list.

This adds a check_external_types CI job that runs
cargo-check-external-types against all workspace crates against a
shared external-types.toml at the workspace root.

Closes #3177.

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.

Frando added 2 commits April 28, 2026 23:22
Foreign types in our public API block semver-breaking updates of those
crates during 1.0. #3177 tracks reducing that surface to a curated
allow list.

This adds a `check_external_types` CI job that runs
`cargo-check-external-types` against `iroh-base`, `iroh-dns`,
`iroh-dns-server`, `iroh`, and `iroh-relay` against a shared
`external-types.toml` at the workspace root.

Closes #3177.
The workflow-level RUSTDOCFLAGS turns unrelated rustdoc lints
(e.g. `private-intra-doc-links`) into hard errors during the JSON
rustdoc invocation that `cargo-check-external-types` drives, making the
job fail on pre-existing doc issues that have nothing to do with the
public API surface this job is meant to enforce.

The tool's rustdoc output is internal scaffolding for analysis, not
user-facing docs, so clearing RUSTDOCFLAGS for this job is the right
scope.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 28, 2026

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: 717d9fb

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 28, 2026

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/4204/docs/iroh/

Last updated: 2026-04-30T15:44:23Z

@n0bot n0bot Bot added this to iroh Apr 28, 2026
@github-project-automation github-project-automation Bot moved this to 🚑 Needs Triage in iroh Apr 28, 2026
@Frando Frando requested a review from dignifiedquire April 29, 2026 08:06
@Frando Frando force-pushed the ci/enforce-external-types branch from 8991101 to 4b1f8fb Compare April 29, 2026 08:19
@dignifiedquire dignifiedquire merged commit 3e0c25f into main Apr 30, 2026
36 checks passed
@github-project-automation github-project-automation Bot moved this from 🚑 Needs Triage to ✅ Done in iroh Apr 30, 2026
@dignifiedquire dignifiedquire deleted the ci/enforce-external-types branch April 30, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Review foreign types in public APIs

2 participants