Skip to content

feat(postman): upgrade to IR v66#14481

Closed
Swimburger wants to merge 9 commits intomainfrom
devin/1775086958-postman-ir-v66-upgrade
Closed

feat(postman): upgrade to IR v66#14481
Swimburger wants to merge 9 commits intomainfrom
devin/1775086958-postman-ir-v66-upgrade

Conversation

@Swimburger
Copy link
Copy Markdown
Member

@Swimburger Swimburger commented Apr 1, 2026

Description

Upgrades the Postman generator to IR v66, which compresses the Name type into a NameOrString union (plain string or full Name object). All generator source code is updated to use runtime helpers (getWireValue(), getOriginalName(), CaseConverter) for transparent handling of both compressed and uncompressed name formats.

Changes Made

v66 IR Handling

  • Replaced all direct .wireValue accesses with getWireValue() helper (auth headers, query params, example headers)
  • Replaced all direct .originalName accesses with getOriginalName() helper (error names, subpackage names, endpoint names, path params, API name)
  • Replaced direct .camelCase.unsafeName / .screamingSnakeCase.unsafeName accesses with CaseConverter methods
  • Added CaseConverter instances in auth.ts and AbstractGeneratedRequest.ts

New IR Union Variants

  • Added inferred auth scheme handler in auth.ts and convertToPostmanCollection.ts
  • Added bytes response body handler in convertExampleEndpointCall.ts
  • Added head HTTP method handler in AbstractGeneratedRequest.ts (mapped to GET — PostmanMethod enum lacks HEAD)
  • Added filesystem publish target handler in writePostmanCollection.ts
  • Added type guard for publishConfig.target before accessing postman-specific fields

Version & Migration

  • Added 0.7.0-rc.0 entry to generators/postman/versions.yml with irVersion: 66
  • Registered POSTMAN → "0.7.0-rc.0" in migrateFromV66ToV65.ts
  • Updated seed/postman/seed.yml irVersion from v53 to v66

Testing

  • Unit tests added/updated
  • Manual testing completed
  • Seed tests pass with irVersion: v66

Human Review Checklist

  • IR migration mapping updated in migrateFromV66ToV65.ts
  • Seed test config updated to target v66 IR
  • All .wireValue / .originalName / casing accesses migrated to helper functions
  • pnpm-lock.yaml inconsistency: The lock file diff shows @fern-fern/ir-sdk changed to 66.0.0-alpha.1, but package.json was reverted to 53.9.0. The lock file may need to be regenerated (pnpm install) to stay in sync.
  • HEAD → GET mapping (AbstractGeneratedRequest.ts:102): PostmanMethod enum lacks HEAD, so head is mapped to PostmanMethod.Get as a workaround. Verify this is acceptable or if the Postman SDK should be extended.
  • Confirm version bump 0.6.1 → 0.7.0-rc.0 follows the correct convention for this generator

Link to Devin session: https://app.devin.ai/sessions/1947204928ba4bfe9b663dfe828ac3d7
Requested by: @Swimburger


Open with Devin

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration
Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

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.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Swimburger and others added 2 commits April 2, 2026 14:21
… methods

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ia runtime helpers)

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Swimburger and others added 4 commits April 2, 2026 16:12
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…n system

The Postman generator uses @fern-fern/ir-sdk@53.9.0 which doesn't have v66 types.
The migration system automatically converts v66 IR to the older format before
passing it to the generator, so no code changes are needed.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…d missing visitor variants

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@Swimburger Swimburger closed this Apr 6, 2026
@Swimburger Swimburger deleted the devin/1775086958-postman-ir-v66-upgrade branch April 6, 2026 17:51
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