From 62f8f5c5493d4c68a2f89efcc678372fadb6f73e Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 17 May 2025 11:56:02 +0900 Subject: [PATCH 1/2] Use swift-sdk-generator from `update-checkout` instead of submodule --- .github/dependabot.yml | 4 ---- .github/scripts/build-matrix.rb | 1 - .github/workflows/build-toolchain.yml | 5 ++--- .gitmodules | 3 --- tools/build/package-toolchain | 2 +- tools/swift-sdk-generator | 1 - 6 files changed, 3 insertions(+), 13 deletions(-) delete mode 100644 .gitmodules delete mode 160000 tools/swift-sdk-generator diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d02a28e5..8a923bf7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,7 +9,3 @@ updates: directory: '/' schedule: interval: 'weekly' - - package-ecosystem: 'gitsubmodule' - directory: '/' - schedule: - interval: 'daily' diff --git a/.github/scripts/build-matrix.rb b/.github/scripts/build-matrix.rb index f8cebe0f..650d0878 100644 --- a/.github/scripts/build-matrix.rb +++ b/.github/scripts/build-matrix.rb @@ -27,7 +27,6 @@ def affected_schemes(changes, schemes) prefixes = [ "schemes/#{scheme}/", "tools/build/", - "tools/swift-sdk-generator", "tools/git-swift-workspace", ] changes.any? do |change| diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml index b8e02083..4bdb722a 100644 --- a/.github/workflows/build-toolchain.yml +++ b/.github/workflows/build-toolchain.yml @@ -35,7 +35,6 @@ jobs: changed: - "schemes/**" - "tools/build/**" - - "tools/swift-sdk-generator" - "tools/git-swift-workspace" - name: Generate entries @@ -129,7 +128,7 @@ jobs: run: | rm -rf ${{ github.workspace }}/build \ ${{ github.workspace }}/swift \ - ${{ github.workspace }}/swiftwasm-build/tools/swift-sdk-generator/Bundles \ + ${{ github.workspace }}/swift-sdk-generator/Bundles \ ${{ github.workspace }}/build-cache \ ${{ github.workspace }}/build-sdk @@ -274,7 +273,7 @@ jobs: docker exec swiftwasm-ci-buildbot /bin/bash -lc \ "./llvm-project/llvm/utils/lit/lit.py \ --param swift-sdk=wasm32-unknown-wasi \ - --param swift-sdks-path=./swiftwasm-build/tools/swift-sdk-generator/Bundles \ + --param swift-sdks-path=./swift-sdk-generator/Bundles \ --param scheme=${{ matrix.scheme }} ./swiftwasm-build/test -vv" - name: Cleanup docker volume diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 5dc00f0b..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "tools/swift-sdk-generator"] - path = tools/swift-sdk-generator - url = https://github.com/apple/swift-sdk-generator.git diff --git a/tools/build/package-toolchain b/tools/build/package-toolchain index aef73dad..aeb064ab 100755 --- a/tools/build/package-toolchain +++ b/tools/build/package-toolchain @@ -118,7 +118,7 @@ class PackageSwiftSDKAction(Action): :param wasi_sysroot_path: The path to the WASI sysroot. """ sdk_generator_pkg_path = os.path.join( - os.path.dirname(__file__), "..", "swift-sdk-generator") + os.path.dirname(__file__), "..", "..", "..", "swift-sdk-generator") sdk_generator_args = [ "swift", "run", "--package-path", sdk_generator_pkg_path, diff --git a/tools/swift-sdk-generator b/tools/swift-sdk-generator deleted file mode 160000 index 44ea35b3..00000000 --- a/tools/swift-sdk-generator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 44ea35b383a9f362156b6c49cb6aa425574fb1aa From a064547faf428d2eaea057ff27d705c714f26ae7 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 17 May 2025 12:34:31 +0900 Subject: [PATCH 2/2] Checkout swiftlang/swift-sdk-generator manually --- tools/build/build_support/actions.py | 17 ++++++++++++----- tools/git-swift-workspace | 10 +++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/tools/build/build_support/actions.py b/tools/build/build_support/actions.py index e8b5712d..fb16c6d1 100644 --- a/tools/build/build_support/actions.py +++ b/tools/build/build_support/actions.py @@ -25,18 +25,25 @@ def system(self, *args): raise Exception('Command failed: {}'.format(' '.join(args))) class CloneAction(Action): + def __init__(self, options, repo: str, branch: str): + super().__init__(options) + self.repo = repo + self.repo_basename = repo.split('/')[-1] + self.branch = branch + def run(self): - if os.path.exists("../swift/.git"): + repo_dir = os.path.join('..', self.repo_basename) + if os.path.exists(os.path.join(repo_dir, '.git')): return print('=====> Cloning Swift repository') git_options = [] if self.options.skip_history: - git_options += ['--depth', '1', '--branch', self.options.tag] + git_options += ['--depth', '1', '--branch', self.branch] - args = ['git', 'clone'] + git_options + ['https://github.com/apple/swift.git', '../swift'] + args = ['git', 'clone'] + git_options + [f'https://github.com/{self.repo}.git', repo_dir] self.system(*args) - print('=====> Checking out Swift tag {}'.format(self.options.tag)) - self.system('git', '-C', '../swift', 'checkout', self.options.tag) + print('=====> Checking out Swift tag {}'.format(self.branch)) + self.system('git', '-C', repo_dir, 'checkout', self.branch) class UpdateCheckoutAction(Action): def run(self): diff --git a/tools/git-swift-workspace b/tools/git-swift-workspace index 4bb84ae5..7e09b250 100755 --- a/tools/git-swift-workspace +++ b/tools/git-swift-workspace @@ -21,7 +21,15 @@ def main(): default=[]) options = derive_options_from_args(sys.argv[1:], parser) actions = [ - CloneAction(options), UpdateCheckoutAction(options), + CloneAction(options, 'swiftlang/swift', options.tag), + UpdateCheckoutAction(options), + ] + if options.scheme == 'release-6.0': + # release/6.0 doesn't have swift-sdk-generator configuration in update-checkout + # so we need to clone it manually + actions.append(CloneAction(options, 'swiftlang/swift-sdk-generator', 'swift-6.1-RELEASE')) + + actions = actions + [ ApplyPatchesAction(options, 'swift'), CheckoutCorelibsAction(options), ApplyPatchesAction(options, 'swift-corelibs-foundation'),