Skip to content

Hoist ShopifyCheckoutKit.podspec to the repo root - relocate swift protocol to protocol/#76

Open
kieran-osgood-shopify wants to merge 2 commits into
mainfrom
kieran-osgood/ko/podspec-hoisted-to-repo-root
Open

Hoist ShopifyCheckoutKit.podspec to the repo root - relocate swift protocol to protocol/#76
kieran-osgood-shopify wants to merge 2 commits into
mainfrom
kieran-osgood/ko/podspec-hoisted-to-repo-root

Conversation

@kieran-osgood-shopify
Copy link
Copy Markdown
Contributor

@kieran-osgood-shopify kieran-osgood-shopify commented May 13, 2026

Reworks the Swift packaging layout so the protocol layer stays in protocol/languages/swift/ and the framework integration stays under platforms/swift/, with the CocoaPods spec moved to the repo root.

This keeps generated protocol code separate from the framework integration while still letting CocoaPods glob both source trees cleanly from the podspec root.

Validation:
bundle exec pod lib lint ShopifyCheckoutKit.podspec --allow-warnings

The podspec lint passes, and both Core and AcceleratedCheckouts build cleanly.

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/ko/podspec-hoisted-to-repo-root branch from 487e5eb to 61fa482 Compare May 13, 2026 10:12
@markmur markmur force-pushed the swift/remove-delegations branch 2 times, most recently from e1e9d50 to 3241a78 Compare May 13, 2026 11:50
Base automatically changed from swift/remove-delegations to main May 13, 2026 11:56
An error occurred while trying to automatically change base from swift/remove-delegations to main May 13, 2026 11:57
… in place

Reverts the file move from PR #65 so ShopifyCheckoutProtocol stays under
protocol/languages/swift/, and instead moves ShopifyCheckoutKit.podspec from
platforms/swift/ to the repository root. With the podspec at the root, both
source trees are 'inside' the pod's working directory and can be globbed
without using `..` paths:

    core.source_files = [
      'platforms/swift/Sources/ShopifyCheckoutKit/**/*.swift',
      'protocol/languages/swift/Sources/ShopifyCheckoutProtocol/**/*.swift',
    ]

Other changes:
  * License path simplified from '../../LICENSE' to 'LICENSE'.
  * AcceleratedCheckouts subspec source/resource paths re-rooted similarly.
  * Updated docs that referenced the old podspec path
    (.github/CONTRIBUTING.md, .github/pull_request_template.md).
  * Restored protocol/languages/swift/{Package.swift,README.md,.gitignore}.
  * Root Package.swift target paths point back at protocol/languages/swift.
  * #if !COCOAPODS guards in ShopifyCheckoutKit are kept (under CocoaPods both
    targets compile into one module, so the import would be unresolvable).

RESULT: works.

  bundle exec pod lib lint ShopifyCheckoutKit.podspec --allow-warnings
    -> ShopifyCheckoutKit passed validation.

Both subspecs (Core and AcceleratedCheckouts) build cleanly. The only
diagnostics are the pre-existing JSONAny Sendable warnings in the generated
Models.swift, identical to PR #65's baseline.

Lint must be invoked from the repo root, e.g.:
  BUNDLE_GEMFILE=platforms/swift/Gemfile bundle exec pod lib lint \
    ShopifyCheckoutKit.podspec --allow-warnings

Trade-offs vs PR #65:
  + No duplicated source tree; protocol files live in one place.
  + No #if !COCOAPODS source-import guards needed beyond what PR #65 already
    added (kept for safety).
  - Podspec lives at the repo root, slightly unusual for a multi-platform
    monorepo. CONTRIBUTING.md / PR template updated to reflect the new path.
  - The Gemfile remains under platforms/swift/, so contributors need to set
    BUNDLE_GEMFILE when running pod commands from the root (or we move the
    Gemfile too in a follow-up).
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/ko/podspec-hoisted-to-repo-root branch from 61fa482 to 28740fe Compare May 13, 2026 13:39
@kieran-osgood-shopify kieran-osgood-shopify marked this pull request as ready for review May 13, 2026 14:14
@kieran-osgood-shopify kieran-osgood-shopify requested a review from a team as a code owner May 13, 2026 14:14
@kieran-osgood-shopify kieran-osgood-shopify changed the title Try: hoist ShopifyCheckoutKit.podspec to the repo root, keep protocol in place Hoist ShopifyCheckoutKit.podspec to the repo root - relocate swift protocol to protocol/ May 13, 2026
@kieran-osgood-shopify kieran-osgood-shopify added the #gsd:50662 Rebase Checkout Kit on UCP label May 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#gsd:50662 Rebase Checkout Kit on UCP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants