Skip to content

feat(cli): allow absolute API spec paths in generators.yml#16063

Open
FedeZara wants to merge 1 commit into
mainfrom
feat/allow-absolute-api-spec-paths
Open

feat(cli): allow absolute API spec paths in generators.yml#16063
FedeZara wants to merge 1 commit into
mainfrom
feat/allow-absolute-api-spec-paths

Conversation

@FedeZara
Copy link
Copy Markdown
Contributor

@FedeZara FedeZara commented May 22, 2026

Summary

  • Allow absolute paths in generators.yml for OpenAPI, GraphQL, OpenRPC, and protobuf specs, plus overrides and overlays.
  • Add shared path helpers in @fern-api/fs-utils and propagate resolved paths through workspace loading, OSS validation, generation prep, and fern api update.

Context

This is the feature follow-up to #15953, which intentionally rejects absolute OpenAPI paths with a user-facing config error to fix Sentry CLI-18 / CLI-46 without changing supported configuration semantics yet.

Linear: https://linear.app/buildwithfern/issue/FER-10741/allow-absolute-api-spec-paths-in-generatorsyml

Test plan

  • pnpm turbo run test --filter @fern-api/fs-utils --filter @fern-api/workspace-loader --filter @fern-api/lazy-fern-workspace --filter @fern-api/oss-validator --filter @fern-api/cli
  • Manual: generators.yml with absolute OpenAPI path loads and fern generate --local succeeds when the file exists locally

Resolve absolute OpenAPI, GraphQL, OpenRPC, and protobuf paths (plus
overrides and overlays) at workspace load time and propagate them through
loading, validation, generation, and fern api update.

Co-authored-by: Cursor <cursoragent@cursor.com>
@FedeZara FedeZara requested a review from amckinney as a code owner May 22, 2026 12:49
@FedeZara FedeZara self-assigned this May 22, 2026
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@github-actions
Copy link
Copy Markdown
Contributor

Docs Generation Benchmark Results

Comparing PR branch against median of 5 nightly run(s) on main (latest: 2026-05-22T05:19:54Z).

Fixture main PR Delta
docs 211.4s (n=5) 207.9s (35 versions) -3.5s (-1.7%)

Docs generation runs fern generate --docs --preview end-to-end against the benchmark fixture with 35 API versions (each version: markdown processing + OpenAPI-to-IR + FDR upload).
Delta is computed against the nightly baseline on main.
Baseline from nightly run(s) on main (latest: 2026-05-22T05:19:54Z). Trigger benchmark-baseline to refresh.
Last updated: 2026-05-22 13:20 UTC

@github-actions
Copy link
Copy Markdown
Contributor

SDK Generation Benchmark Results

Comparing PR branch against median of 5 nightly run(s) on main (latest: 2026-05-22T05:19:54Z).

Full benchmark table (click to expand)
Generator Spec main (generator) main (E2E) PR (generator) Delta
csharp-sdk square 73s (n=5) 109s (n=5) 62s -11s (-15.1%)
go-sdk square 136s (n=5) 294s (n=5) 131s -5s (-3.7%)
java-sdk square 209s (n=5) 286s (n=5) 181s -28s (-13.4%)
php-sdk square 62s (n=5) 80s (n=5) 52s -10s (-16.1%)
python-sdk square 128s (n=5) 229s (n=5) 129s +1s (+0.8%)
ruby-sdk-v2 square 92s (n=5) 118s (n=5) 82s -10s (-10.9%)
rust-sdk square 170s (n=5) 164s (n=5) 157s -13s (-7.6%)
swift-sdk square 63s (n=5) 746s (n=5) 47s -16s (-25.4%)
ts-sdk square 234s (n=5) 240s (n=5) 224s -10s (-4.3%)

main (generator): generator-only time via --skip-scripts (includes Docker image build, container startup, IR parsing, and code generation — this is the same Docker-based flow customers use via fern generate). main (E2E): full customer-observable time including build/test scripts (nightly baseline, informational). Delta is computed against generator-only baseline.
⚠️ = generation exited with a non-zero exit code (timing may not reflect a successful run).
Baseline from nightly runs on main (latest: 2026-05-22T05:19:54Z). Trigger benchmark-baseline to refresh.
Last updated: 2026-05-22 13:23 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant