Skip to content

Migrate to v3.2 - #604

Merged
ariesclark merged 18 commits into
vrchatapi:redocly-plugin-downlevelfrom
C0D3-M4513R:feature/websocket-3.1
Sep 23, 2026
Merged

ariesclark merged 18 commits into
vrchatapi:redocly-plugin-downlevelfrom
C0D3-M4513R:feature/websocket-3.1

Conversation

@C0D3-M4513R

@C0D3-M4513R C0D3-M4513R commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Migrate to Openapi Spec version 3.1

Anything where a property looks like:

$ref: ./Type.yaml
nullable: true

Has not been rewritten!
Trying to do so causes a ton of verification errors.

Copilot AI lite review requested due to automatic review settings September 22, 2026 16:46
@pkg-pr-new

pkg-pr-new Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
pnpm add https://pkg.pr.new/vrchatapi/specification/vrchat@a313c72

commit: a313c72

This comment was marked as outdated.

This comment was marked as resolved.

@ariesclark
ariesclark force-pushed the feature/websocket-3.1 branch from 7aae1bd to f43ef46 Compare September 23, 2026 17:17
@ariesclark
ariesclark changed the base branch from main to redocly-plugin-downlevel September 23, 2026 17:22
@ariesclark ariesclark changed the title Migrate to v3.1 Migrate to v3.2 Sep 23, 2026
@ariesclark
ariesclark force-pushed the feature/websocket-3.1 branch 2 times, most recently from 2b5a0f7 to d4e8725 Compare September 23, 2026 17:38
C0D3-M4513R and others added 13 commits September 23, 2026 14:04
First search: `\n(\s*)type: (.*)\n\1nullable: true`
First replace: `\n$1type: ['null', '$2']`

Second search: `\n(\s*)type: (.*)\n\1description:(.*)\n\1nullable: true`
Second replace: `\n$1type: ['null', '$2']\n$1description:$3`
# Conflicts:
#	redocly/plugin.ts
Signed-off-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>
Signed-off-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>
@ariesclark
ariesclark force-pushed the feature/websocket-3.1 branch from d4e8725 to 3d26ed6 Compare September 23, 2026 18:05
binn added a commit to vrchatapi/vrchatapi-csharp that referenced this pull request Sep 23, 2026
vrchatapi/specification#604 renames the openapi-legacy.* bundles to
openapi-3.0.*, so the legacy name stops being published once it releases.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
C0D3-M4513R added a commit to vrchatapi/vrchatapi-rust that referenced this pull request Sep 23, 2026
#47)

* Template Changes for vrchatapi/specification#601

* Fix examples

* fmt

* More robust template

* Implement/Use C0D3-M4513R/specification@db4c9c3

* Fix examples

* Use openapi-3.1 spec

* Change vendor-specific namings
@ariesclark
ariesclark merged commit 4062c85 into vrchatapi:redocly-plugin-downlevel Sep 23, 2026
60 of 74 checks passed
ariesclark added a commit to C0D3-M4513R/specification that referenced this pull request Sep 23, 2026
* feat: add redocly-plugin-downlevel to lower OpenAPI 3.x releases

* fix(downlevel): keep a nullable oneOf exclusive by widening one member

* fix(downlevel): report a version YAML read as a number

* feat(downlevel): write a nullable reference as $ref beside nullable: true

* Migrate to v3.2 (vrchatapi#604)

* Fix "InlineObject<n>" Names

* Regex-Replace usages of `nullable: true`

First search: `\n(\s*)type: (.*)\n\1nullable: true`
First replace: `\n$1type: ['null', '$2']`

Second search: `\n(\s*)type: (.*)\n\1description:(.*)\n\1nullable: true`
Second replace: `\n$1type: ['null', '$2']\n$1description:$3`

* Lint

* Allow empty then in `x-if`

# Conflicts:
#	redocly/plugin.ts

* `pnpm update`

* Migrate $ref's and nullable

* Delete empty descriptions

* Delete more empty descriptions

* Actually increase openapi-version

Signed-off-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>

* Revert "Migrate $ref's and nullable"

This reverts commit 0e91f85.

* Missed one

Signed-off-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>

* Address issues

* feat: build the legacy bundles with downlevel/openapi instead of x-if

* feat: move the description to OpenAPI 3.2.1

* feat!: replace the legacy bundles with one bundle per OpenAPI version

* fix: write nullable references as an anyOf with null

* fix: title the login response CurrentUserLoginResponse, after its component

* fix: constrain only the string branch of DynamicContentRow.name to minLength 1

---------

Signed-off-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>
Co-authored-by: Aries Clark <me@ariesclark.com>

* fix(downlevel): drop a rule beside a loosened union that its type cannot take

* fix: type DynamicContentRow.platform as a string, not a device Platform

* style(downlevel): name the rule filter in loosenUnions to satisfy operator-linebreak

* fix(downlevel): resolve references when pinning form encoding

* fix: accept null recurrence only on CalendarEvent, not in calendar requests

---------

Signed-off-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>
Co-authored-by: C0D3 M4513R <28912031+C0D3-M4513R@users.noreply.github.com>
@C0D3-M4513R
C0D3-M4513R deleted the feature/websocket-3.1 branch September 23, 2026 22:36
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.

3 participants