From bdc8efe216d5ab5b693ae437a08bd0d8396b40a1 Mon Sep 17 00:00:00 2001 From: Dino Constantinou Date: Wed, 23 Sep 2026 19:47:07 +0100 Subject: [PATCH 1/2] Upgrade Swift OpenAPI Generator To 1.13.0 Moves the generator from 1.10.2 to 1.13.0 and raises the swift-openapi-runtime floor from 1.8.2 to 1.11.0, the minimum the generator has required since 1.12.0. Package.resolved already has 1.12.1, so nothing re-resolves. The CI cache keys carry the new version. OpenAPIKit v6 accepts the spec without diagnostics, and the generated code only gains public imports and Swift-qualified stdlib types. 1.13.1 is skipped: its namespace file splitting emits unused public import warnings (apple/swift-openapi-generator#946, fix in #947). Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/ci.yml | 2 +- .github/workflows/linux.yml | 2 +- .github/workflows/macos.yml | 2 +- Makefile | 2 +- Package.swift | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5066b14..2668839 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,7 +85,7 @@ jobs: uses: actions/cache@v5 with: path: .swift-openapi-generator - key: openapi-generator-1.10.2 + key: openapi-generator-1.13.0 - name: Cache SPM build if: steps.detect.outputs.skip != 'true' diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 8b4fe44..a4a269a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -42,7 +42,7 @@ jobs: uses: actions/cache@v5 with: path: .swift-openapi-generator - key: openapi-generator-1.10.2-${{ runner.os }}-${{ runner.arch }}-${{ env.SWIFT_BUILD_ID }} + key: openapi-generator-1.13.0-${{ runner.os }}-${{ runner.arch }}-${{ env.SWIFT_BUILD_ID }} - name: Cache static Linux SDK id: sdk-cache diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index cb95347..8288b89 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -36,7 +36,7 @@ jobs: uses: actions/cache@v5 with: path: .swift-openapi-generator - key: openapi-generator-1.10.2 + key: openapi-generator-1.13.0 - name: Cache SPM build uses: actions/cache@v5 diff --git a/Makefile b/Makefile index 914caeb..7e6581e 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # The following values can be changed here, or passed on the command line. SWIFT_OPENAPI_GENERATOR_GIT_URL ?= https://github.com/apple/swift-openapi-generator -SWIFT_OPENAPI_GENERATOR_GIT_TAG ?= 1.10.2 +SWIFT_OPENAPI_GENERATOR_GIT_TAG ?= 1.13.0 SWIFT_OPENAPI_GENERATOR_CLONE_DIR ?= $(CURRENT_MAKEFILE_DIR)/.swift-openapi-generator SWIFT_OPENAPI_GENERATOR_BUILD_CONFIGURATION ?= debug OPENAPI_YAML_PATH ?= $(CURRENT_MAKEFILE_DIR)/openapi-bundled.yaml diff --git a/Package.swift b/Package.swift index 29b77f9..f018c82 100644 --- a/Package.swift +++ b/Package.swift @@ -23,7 +23,7 @@ let package = Package( .package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.5.0"), .package(url: "https://github.com/apple/swift-configuration.git", from: "1.2.1"), .package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"), - .package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.8.2"), + .package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.11.0"), .package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.3.0"), .package(url: "https://github.com/tuist/Noora", from: "0.50.0"), .package(url: "https://github.com/swhitty/FlyingFox", from: "0.27.1"), From 0c6fac0d58a9455ef12ea53cb8f05d29ca47b9c2 Mon Sep 17 00:00:00 2001 From: Dino Constantinou Date: Wed, 23 Sep 2026 19:47:07 +0100 Subject: [PATCH 2/2] Re-Clone The Generator And Clear Generated Sources When The Tag Changes The clone target had no prerequisites, so bumping SWIFT_OPENAPI_GENERATOR_GIT_TAG kept running the old generator from an existing clone. The clone is now keyed on a .cloned- stamp. A missing stamp deletes the clone and the generated sources, then re-clones and rebuilds. The generated sources go too because the generator never deletes files it no longer emits. Switching from 1.13.1 back to 1.13.0 left its split files behind and failed the build with a redeclaration of Components. Co-Authored-By: Claude Opus 5.5 (1M context) --- Makefile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 7e6581e..a123e56 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ OPENAPI_SOURCE_ROOT ?= $(OPENAPI_SOURCE_DIR)/openapi.yaml CURRENT_MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) CURRENT_MAKEFILE_DIR := $(patsubst %/,%,$(dir $(CURRENT_MAKEFILE_PATH))) SWIFT_OPENAPI_GENERATOR_BIN := $(SWIFT_OPENAPI_GENERATOR_CLONE_DIR)/.build/$(SWIFT_OPENAPI_GENERATOR_BUILD_CONFIGURATION)/swift-openapi-generator +SWIFT_OPENAPI_GENERATOR_CLONE_STAMP := $(SWIFT_OPENAPI_GENERATOR_CLONE_DIR)/.cloned-$(SWIFT_OPENAPI_GENERATOR_GIT_TAG) OPENAPI_BUNDLER_BIN := $(CURRENT_MAKEFILE_DIR)/.build/debug/OpenAPIBundler OPENAPI_SOURCE_FILES := $(shell find $(OPENAPI_SOURCE_DIR) -name '*.yaml' 2>/dev/null) API_VERSION := $(shell grep -m1 '^ version:' "$(OPENAPI_SOURCE_ROOT)" | tr -d " '\"" | cut -d: -f2) @@ -78,6 +79,7 @@ dump: # Dump all derived values used by the Makefile. @echo "SWIFT_OPENAPI_GENERATOR_CLONE_DIR = $(SWIFT_OPENAPI_GENERATOR_CLONE_DIR)" @echo "SWIFT_OPENAPI_GENERATOR_BUILD_CONFIGURATION = $(SWIFT_OPENAPI_GENERATOR_BUILD_CONFIGURATION)" @echo "SWIFT_OPENAPI_GENERATOR_BIN = $(SWIFT_OPENAPI_GENERATOR_BIN)" + @echo "SWIFT_OPENAPI_GENERATOR_CLONE_STAMP = $(SWIFT_OPENAPI_GENERATOR_CLONE_STAMP)" @echo "OPENAPI_YAML_PATH = $(OPENAPI_YAML_PATH)" @echo "OPENAPI_GENERATOR_CONFIG_PATH = $(OPENAPI_GENERATOR_CONFIG_PATH)" @echo "OUTPUT_DIRECTORY = $(OUTPUT_DIRECTORY)" @@ -86,16 +88,18 @@ dump: # Dump all derived values used by the Makefile. @echo "OPENAPI_SOURCE_DIR = $(OPENAPI_SOURCE_DIR)" @echo "OPENAPI_SOURCE_ROOT = $(OPENAPI_SOURCE_ROOT)" -$(SWIFT_OPENAPI_GENERATOR_CLONE_DIR): +$(SWIFT_OPENAPI_GENERATOR_CLONE_STAMP): + rm -rf "$(SWIFT_OPENAPI_GENERATOR_CLONE_DIR)" "$(OUTPUT_DIRECTORY)" git \ -c advice.detachedHead=false \ clone \ --branch "$(SWIFT_OPENAPI_GENERATOR_GIT_TAG)" \ --depth 1 \ "$(SWIFT_OPENAPI_GENERATOR_GIT_URL)" \ - $@ + "$(SWIFT_OPENAPI_GENERATOR_CLONE_DIR)" + touch "$@" -$(SWIFT_OPENAPI_GENERATOR_BIN): $(SWIFT_OPENAPI_GENERATOR_CLONE_DIR) +$(SWIFT_OPENAPI_GENERATOR_BIN): $(SWIFT_OPENAPI_GENERATOR_CLONE_STAMP) swift \ build \ --package-path "$(SWIFT_OPENAPI_GENERATOR_CLONE_DIR)" \