diff --git a/swift/.gitattributes b/.gitattributes similarity index 100% rename from swift/.gitattributes rename to .gitattributes diff --git a/android/.github/CODEOWNERS b/.github/CODEOWNERS similarity index 100% rename from android/.github/CODEOWNERS rename to .github/CODEOWNERS diff --git a/swift/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from swift/.github/CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..69fa729c --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,128 @@ +# Contributing + +The following is a set of guidelines for contributing to this project. Please take a moment to read through them before submitting your first PR. + +This is a monorepo containing the iOS/Swift, Android, and (forthcoming) React Native implementations of the Shopify Checkout Kit. Each platform has its own conventions, tooling, and release process; the shared guidelines below apply to all of them. + +## Code of Conduct + +This project and everyone participating in it are governed by the [Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [opensource@shopify.com](mailto:opensource@shopify.com). + +## Welcomed contributions + +- Reporting issues with existing features +- Bug fixes +- Performance improvements +- Documentation +- Usability improvements + +## Things we won't merge + +- Additional dependencies that limit SDK use (e.g. unnecessary Swift or Android dependencies) +- Any changes that break existing tests +- Any changes without sufficient tests + +## Proposing features + +When in doubt about whether we will be interested in including a new feature, please open an issue to propose the feature so we can confirm scope before it is implemented. + +**NOTE**: Issues that have not been active for 30 days will be marked as stale, and subsequently closed after a further 7 days of inactivity. + +## How to contribute (general flow) + +1. Fork the repo and branch off of `main`. +2. Create a feature branch in your fork. +3. Make changes and add any relevant tests. +4. Run the platform-specific formatter / linter (see below). +5. Verify the changes locally (e.g. via the platform's sample app). +6. Commit your changes and push. +7. Ensure all checks (tests, lint) are passing in GitHub. +8. Open a pull request with a detailed description of what is changing and why. + +--- + +## Swift (`swift/`) + +### Prerequisites + +This project uses [Mint](https://github.com/yonaskolb/Mint) to manage Swift linting tools (SwiftLint and SwiftFormat) at pinned versions via `swift/Mintfile`. This ensures consistent formatting across all contributors and CI. + +**Shopify employees** (from `swift/`): + +```bash +dev up +``` + +**External contributors**: + +```bash +brew install mint +cd swift && mint bootstrap +``` + +### Formatting + +```bash +cd swift && ./Scripts/lint fix +``` + +### Releasing a new Swift version + +Open a pull request with the following changes: + +1. Bump the package version in `swift/Sources/ShopifyCheckoutSheetKit/ShopifyCheckoutSheetKit.swift`. +2. Bump the podspec version in `swift/ShopifyCheckoutSheetKit.podspec`. +3. Add an entry to the top of `swift/CHANGELOG.md`. + +Once merged, draft a release on GitHub: + +1. Create a tag with the bare semver name (e.g. `3.8.1`) — Swift releases use bare semver so SwiftPM consumers can resolve them with `from:` constraints. +2. Use the same tag as the release name. +3. Document the changes since the previous release in the description. +4. Check "Set as the latest release". +5. Click "Publish release". This kicks off the [Swift deploy workflow](../../actions/workflows/swift-deploy.yml) which publishes the new version to CocoaPods. + +--- + +## Android (`android/`) + +### Formatting + +This project uses [detekt](https://detekt.dev/) for Kotlin linting and formatting. From `android/`: + +```bash +./gradlew detekt --auto-correct +``` + +To check for lint issues without auto-correcting: + +```bash +./gradlew detekt +``` + +### Public API surface + +The library's public API is tracked via a committed baseline at `android/lib/api/lib.api`, managed by the [binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin. CI runs `./gradlew :lib:apiCheck` on every PR and fails if the compiled public API diverges from the baseline. + +If your change intentionally modifies the public API: + +1. Run `dev api dump` (or `./gradlew :lib:apiDump`) from `android/` to regenerate the baseline. +2. Review the diff in `android/lib/api/lib.api` alongside your code changes. +3. Commit the updated `.api` file in the same PR. + +If you did *not* intend to change public API and `apiCheck` is failing, the diff shows what your change inadvertently affected — treat it as a signal that something in your PR has consumer-visible impact. + +### Releasing a new Android version + +Open a pull request with the following changes: + +1. Bump the `versionName` in `android/lib/build.gradle`. +2. Add an entry to the top of `android/CHANGELOG.md`. + +Once merged, draft a release on GitHub: + +1. Create a tag prefixed with `android/` (e.g. `android/3.0.1`) — Android releases use the `android/` prefix so the Maven publish workflow can distinguish them from Swift releases. +2. Use the same tag as the release name. +3. Document the changes since the previous release in the description. +4. Check "Set as the latest release". +5. Click "Publish release". This kicks off the [Android deploy workflow](../../actions/workflows/android-deploy.yml). **A manual approval by a maintainer is required before publication to Maven Central.** diff --git a/swift/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml similarity index 100% rename from swift/.github/ISSUE_TEMPLATE/bug_report.yml rename to .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/android/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from android/.github/ISSUE_TEMPLATE/config.yml rename to .github/ISSUE_TEMPLATE/config.yml diff --git a/swift/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml similarity index 100% rename from swift/.github/ISSUE_TEMPLATE/feature_request.yml rename to .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/android/.github/dependabot.yml b/.github/dependabot.yml similarity index 82% rename from android/.github/dependabot.yml rename to .github/dependabot.yml index 8aef1f50..48371488 100644 --- a/android/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,10 +6,17 @@ updates: interval: weekly cooldown: default-days: 7 - - # Main library - - package-ecosystem: gradle + + - package-ecosystem: swift directory: "/" + schedule: + interval: daily + cooldown: + default-days: 7 + + # Android library + - package-ecosystem: gradle + directory: "/android" schedule: interval: daily open-pull-requests-limit: 10 @@ -28,10 +35,10 @@ updates: # Keep JUnit on 4.x (JUnit 5 incompatible with Robolectric) - dependency-name: "junit:junit" versions: [">=5.0.0"] - - # MobileBuyIntegration sample + + # Android sample app - package-ecosystem: gradle - directory: "/samples/MobileBuyIntegration" + directory: "/android/samples/MobileBuyIntegration" schedule: interval: daily open-pull-requests-limit: 5 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..8a132479 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,42 @@ +### What changes are you making? + + + +### How to test + + + +--- + +### Before you merge + +> [!IMPORTANT] +> +> - [ ] I've added tests to support my implementation +> - [ ] I have read and agree with the [Contribution Guidelines](./CONTRIBUTING.md) +> - [ ] I have read and agree with the [Code of Conduct](./CODE_OF_CONDUCT.md) +> - [ ] I've updated the relevant platform README (`swift/README.md` and/or `android/README.md`) + +--- + +
+Releasing a new Swift version? + +- [ ] I have bumped the version in `swift/ShopifyCheckoutSheetKit.podspec` +- [ ] I have bumped the version in `swift/Sources/ShopifyCheckoutSheetKit/ShopifyCheckoutSheetKit.swift` +- [ ] I have updated `swift/CHANGELOG.md` +- [ ] I have updated the SwiftPM/CocoaPods version snippets in `swift/README.md` (major version only) + +
+ +
+Releasing a new Android version? + +- [ ] I have bumped the `versionName` in `android/lib/build.gradle` +- [ ] I have updated `android/CHANGELOG.md` +- [ ] I have updated the Gradle/Maven version snippets in `android/README.md` + +
+ +> [!TIP] +> See the [Contributing documentation](./CONTRIBUTING.md) for the full release process per platform. diff --git a/android/.github/workflows/publish.yml b/.github/workflows/android-deploy.yml similarity index 86% rename from android/.github/workflows/publish.yml rename to .github/workflows/android-deploy.yml index 7977461e..5bce5e51 100644 --- a/android/.github/workflows/publish.yml +++ b/.github/workflows/android-deploy.yml @@ -1,4 +1,4 @@ -name: Deploy to Maven Central +name: Android — Deploy to Maven Central on: release: @@ -8,14 +8,21 @@ on: jobs: build: + # Only run for Android releases. Android releases are tagged `android/X.Y.Z`; + # Swift releases use bare semver (`X.Y.Z`). + if: ${{ github.event_name == 'workflow_dispatch' || startsWith(github.event.release.tag_name, 'android/') }} environment: name: Central Repository Deployment runs-on: ubuntu-latest - + env: OSSRH_API_BASE_URL: https://ossrh-staging-api.central.sonatype.com + defaults: + run: + working-directory: android + steps: - name: Checkout Repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/android/.github/workflows/check_license_headers.yml b/.github/workflows/android-license-headers.yml similarity index 68% rename from android/.github/workflows/check_license_headers.yml rename to .github/workflows/android-license-headers.yml index f2ec4b02..158e89dd 100644 --- a/android/.github/workflows/check_license_headers.yml +++ b/.github/workflows/android-license-headers.yml @@ -1,10 +1,17 @@ -name: Check License Headers +name: Android — Check License Headers -on: pull_request +on: + pull_request: + paths: + - 'android/**' + - '.github/workflows/android-license-headers.yml' jobs: build: runs-on: ubuntu-latest + defaults: + run: + working-directory: android steps: - name: Checkout Repository diff --git a/android/.github/workflows/test.yml b/.github/workflows/android-test.yml similarity index 79% rename from android/.github/workflows/test.yml rename to .github/workflows/android-test.yml index 500dadc0..81085140 100644 --- a/android/.github/workflows/test.yml +++ b/.github/workflows/android-test.yml @@ -1,15 +1,24 @@ -name: Lint, Build & Run Tests +name: Android — Lint, Build & Run Tests on: push: branches: - main + paths: + - 'android/**' + - '.github/workflows/android-test.yml' pull_request: + paths: + - 'android/**' + - '.github/workflows/android-test.yml' workflow_dispatch: jobs: test: runs-on: ubuntu-latest + defaults: + run: + working-directory: android steps: - name: Checkout Repository @@ -48,14 +57,17 @@ jobs: - name: Setup sample app environment run: cp .env.example .env - working-directory: samples/MobileBuyIntegration + working-directory: android/samples/MobileBuyIntegration - name: Build Sample App run: ./gradlew assembleDebug - working-directory: samples/MobileBuyIntegration + working-directory: android/samples/MobileBuyIntegration lint: runs-on: ubuntu-latest + defaults: + run: + working-directory: android steps: - name: Checkout Repository diff --git a/swift/.github/workflows/cla.yml b/.github/workflows/cla.yml similarity index 92% rename from swift/.github/workflows/cla.yml rename to .github/workflows/cla.yml index 6f9237c9..ffcd433c 100644 --- a/swift/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -13,10 +13,10 @@ jobs: actions: write pull-requests: write if: | - (github.event.issue.pull_request + (github.event.issue.pull_request && !github.event.issue.pull_request.merged_at && contains(github.event.comment.body, 'signed') - ) + ) || (github.event.pull_request && !github.event.pull_request.merged) steps: - uses: Shopify/shopify-cla-action@v1 diff --git a/swift/.github/workflows/stale.yml b/.github/workflows/stale.yml similarity index 100% rename from swift/.github/workflows/stale.yml rename to .github/workflows/stale.yml diff --git a/.github/workflows/swift-build-samples.yml b/.github/workflows/swift-build-samples.yml new file mode 100644 index 00000000..e42262fd --- /dev/null +++ b/.github/workflows/swift-build-samples.yml @@ -0,0 +1,26 @@ +name: Swift — Build Sample Apps + +on: + push: + branches: + - main + paths: + - 'swift/**' + - 'Package.swift' + - 'Package.resolved' + - '.github/workflows/swift-build-samples.yml' + - '.github/workflows/swift-test-workflow.yml' + pull_request: + paths: + - 'swift/**' + - 'Package.swift' + - 'Package.resolved' + - '.github/workflows/swift-build-samples.yml' + - '.github/workflows/swift-test-workflow.yml' + workflow_dispatch: + +jobs: + call-workflow-passing-data: + uses: ./.github/workflows/swift-test-workflow.yml + with: + test-path: ./Scripts/build_samples diff --git a/swift/.github/workflows/deploy.yml b/.github/workflows/swift-deploy.yml similarity index 59% rename from swift/.github/workflows/deploy.yml rename to .github/workflows/swift-deploy.yml index eafa741e..c0a3090b 100644 --- a/swift/.github/workflows/deploy.yml +++ b/.github/workflows/swift-deploy.yml @@ -1,4 +1,4 @@ -name: Deploy +name: Swift — Deploy on: release: @@ -8,7 +8,15 @@ on: jobs: cocoapods: + # Only run for Swift releases. Android releases are tagged `android/X.Y.Z`; + # Swift releases use bare semver (`X.Y.Z`). + if: ${{ github.event_name == 'workflow_dispatch' || !startsWith(github.event.release.tag_name, 'android/') }} runs-on: ${{ vars.MACOS_RUNNER }} + env: + BUNDLE_GEMFILE: ${{ github.workspace }}/swift/Gemfile + defaults: + run: + working-directory: swift steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -16,6 +24,7 @@ jobs: - uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0 with: bundler-cache: true + working-directory: swift - name: Deploy to Cocoapods run: | diff --git a/swift/.github/workflows/lint.yml b/.github/workflows/swift-lint.yml similarity index 79% rename from swift/.github/workflows/lint.yml rename to .github/workflows/swift-lint.yml index 06a3994d..067e389a 100644 --- a/swift/.github/workflows/lint.yml +++ b/.github/workflows/swift-lint.yml @@ -1,7 +1,10 @@ -name: Lint +name: Swift — Lint on: pull_request: + paths: + - 'swift/**' + - '.github/workflows/swift-lint.yml' workflow_dispatch: jobs: @@ -13,7 +16,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: norio-nomura/action-swiftlint@9f4dcd7fd46b4e75d7935cf2f4df406d5cae3684 # 3.2.1 with: - args: --strict + args: --strict swift swiftformat: name: SwiftFormat & SwiftLint @@ -21,6 +24,9 @@ jobs: env: MINT_PATH: ${{ github.workspace }}/.mint/lib MINT_LINK_PATH: ${{ github.workspace }}/.mint/bin + defaults: + run: + working-directory: swift steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -29,7 +35,7 @@ jobs: uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: .mint - key: ${{ runner.os }}-mint-${{ hashFiles('Mintfile') }} + key: ${{ runner.os }}-mint-${{ hashFiles('swift/Mintfile') }} restore-keys: | ${{ runner.os }}-mint- @@ -48,6 +54,9 @@ jobs: check-license-headers: name: License Headers runs-on: ${{ vars.MACOS_RUNNER }} + defaults: + run: + working-directory: swift steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - run: ./Scripts/ensure_license @@ -55,9 +64,15 @@ jobs: lint-podspec: name: CocoaPods runs-on: ${{ vars.MACOS_RUNNER }} + env: + BUNDLE_GEMFILE: ${{ github.workspace }}/swift/Gemfile + defaults: + run: + working-directory: swift steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0 with: bundler-cache: true + working-directory: swift - run: bundle exec pod lib lint --allow-warnings diff --git a/.github/workflows/swift-test-package.yml b/.github/workflows/swift-test-package.yml new file mode 100644 index 00000000..af9dae12 --- /dev/null +++ b/.github/workflows/swift-test-package.yml @@ -0,0 +1,26 @@ +name: Swift — Run Package Tests + +on: + push: + branches: + - main + paths: + - 'swift/**' + - 'Package.swift' + - 'Package.resolved' + - '.github/workflows/swift-test-package.yml' + - '.github/workflows/swift-test-workflow.yml' + pull_request: + paths: + - 'swift/**' + - 'Package.swift' + - 'Package.resolved' + - '.github/workflows/swift-test-package.yml' + - '.github/workflows/swift-test-workflow.yml' + workflow_dispatch: + +jobs: + call-workflow-passing-data: + uses: ./.github/workflows/swift-test-workflow.yml + with: + test-path: ./Scripts/xcode_run test ShopifyCheckoutSheetKit-Package diff --git a/swift/.github/workflows/test-workflow.yml b/.github/workflows/swift-test-workflow.yml similarity index 96% rename from swift/.github/workflows/test-workflow.yml rename to .github/workflows/swift-test-workflow.yml index 08a900fe..9504c6ed 100644 --- a/swift/.github/workflows/test-workflow.yml +++ b/.github/workflows/swift-test-workflow.yml @@ -9,6 +9,9 @@ jobs: test: runs-on: ${{ vars.MACOS_RUNNER }} timeout-minutes: 20 + defaults: + run: + working-directory: swift steps: - name: Checkout Repository diff --git a/swift/.github/workflows/update-linters.yml b/.github/workflows/swift-update-linters.yml similarity index 88% rename from swift/.github/workflows/update-linters.yml rename to .github/workflows/swift-update-linters.yml index b4424b8b..651b587d 100644 --- a/swift/.github/workflows/update-linters.yml +++ b/.github/workflows/swift-update-linters.yml @@ -1,4 +1,4 @@ -name: Update Linter Versions +name: Swift — Update Linter Versions on: schedule: @@ -21,8 +21,8 @@ jobs: - name: Read current versions from Mintfile id: current run: | - SWIFTLINT=$(grep 'realm/SwiftLint@' Mintfile | sed 's/.*@//') - SWIFTFORMAT=$(grep 'nicklockwood/SwiftFormat@' Mintfile | sed 's/.*@//') + SWIFTLINT=$(grep 'realm/SwiftLint@' swift/Mintfile | sed 's/.*@//') + SWIFTFORMAT=$(grep 'nicklockwood/SwiftFormat@' swift/Mintfile | sed 's/.*@//') echo "swiftlint=$SWIFTLINT" >> "$GITHUB_OUTPUT" echo "swiftformat=$SWIFTFORMAT" >> "$GITHUB_OUTPUT" @@ -66,10 +66,11 @@ jobs: printf '%s\n' \ "realm/SwiftLint@${{ steps.latest.outputs.swiftlint }}" \ "nicklockwood/SwiftFormat@${{ steps.latest.outputs.swiftformat }}" \ - > Mintfile + > swift/Mintfile - name: Install Mint and bootstrap new versions if: steps.check.outputs.has_updates == 'true' && steps.existing_pr.outputs.exists != 'true' + working-directory: swift run: | brew install mint echo "${{ github.workspace }}/.mint/bin" >> "$GITHUB_PATH" @@ -77,6 +78,7 @@ jobs: - name: Run lint fix if: steps.check.outputs.has_updates == 'true' && steps.existing_pr.outputs.exists != 'true' + working-directory: swift run: ./Scripts/lint fix --verbose - name: Commit and push @@ -85,7 +87,7 @@ jobs: git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add -A - git commit -m "chore: update linter versions" \ + git commit -m "chore: update Swift linter versions" \ -m "SwiftLint: ${{ steps.current.outputs.swiftlint }} -> ${{ steps.latest.outputs.swiftlint }}" \ -m "SwiftFormat: ${{ steps.current.outputs.swiftformat }} -> ${{ steps.latest.outputs.swiftformat }}" git push origin auto/update-linters @@ -113,13 +115,13 @@ jobs: BODY+="1. **Close and reopen this PR** — this fires a new \`pull_request\` event from your user, which triggers all checks.\n" BODY+="2. **Trigger workflows via CLI:**\n" BODY+="\`\`\`bash\n" - BODY+="gh workflow run build-samples.yml --ref auto/update-linters\n" - BODY+="gh workflow run lint.yml --ref auto/update-linters\n" - BODY+="gh workflow run test-package.yml --ref auto/update-linters\n" + BODY+="gh workflow run swift-build-samples.yml --ref auto/update-linters\n" + BODY+="gh workflow run swift-lint.yml --ref auto/update-linters\n" + BODY+="gh workflow run swift-test-package.yml --ref auto/update-linters\n" BODY+="\`\`\`\n" gh pr create \ - --title "chore: bump linter versions" \ + --title "chore: bump Swift linter versions" \ --body "$(echo -e "$BODY")" \ --label "dependencies" \ --head "auto/update-linters" \ diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c2b172ca --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# OS +.DS_Store + +# Editors +*.iml +.idea/ +.vscode/settings.json + +# Claude / dev tooling +.claude/ +CLAUDE.md +.dev/ +.mint + +# Swift / Xcode / SwiftPM +.build/ +.swiftpm/ +xcuserdata/ + +# Sample app secrets (Swift) +**/Storefront.xcconfig +**/*.entitlements + +# Apollo / GraphQL +*.graphqls +apollo-ios-cli + +# Android / Gradle +.gradle/ +build/ +captures/ +.externalNativeBuild +.cxx + +# Android local config / secrets +local.properties +.env +upload-keystore.jks diff --git a/swift/.ruby-version b/.ruby-version similarity index 100% rename from swift/.ruby-version rename to .ruby-version diff --git a/swift/.swiftlint.yml b/.swiftlint.yml similarity index 95% rename from swift/.swiftlint.yml rename to .swiftlint.yml index 103dbedb..7de108ef 100644 --- a/swift/.swiftlint.yml +++ b/.swiftlint.yml @@ -9,8 +9,8 @@ disabled_rules: - function_body_length included: - - Sources - - Tests + - swift/Sources + - swift/Tests opt_in_rules: - array_init diff --git a/swift/LICENSE b/LICENSE similarity index 100% rename from swift/LICENSE rename to LICENSE diff --git a/swift/Package.resolved b/Package.resolved similarity index 68% rename from swift/Package.resolved rename to Package.resolved index 61f82571..3ecd6952 100644 --- a/swift/Package.resolved +++ b/Package.resolved @@ -1,14 +1,5 @@ { "pins" : [ - { - "identity" : "apollo-ios", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apollographql/apollo-ios.git", - "state" : { - "revision" : "5936a2a7767bcd4e37db5e9015a23800c3e95ac7", - "version" : "2.1.0" - } - }, { "identity" : "swiftlintplugin", "kind" : "remoteSourceControl", diff --git a/swift/Package.swift b/Package.swift similarity index 89% rename from swift/Package.swift rename to Package.swift index e69e1c0d..5d8b4fa4 100644 --- a/swift/Package.swift +++ b/Package.swift @@ -31,16 +31,19 @@ let package = Package( .target( name: "ShopifyCheckoutSheetKit", dependencies: [], + path: "swift/Sources/ShopifyCheckoutSheetKit", resources: [.process("Assets.xcassets")] ), .target( name: "ShopifyAcceleratedCheckouts", dependencies: ["ShopifyCheckoutSheetKit"], + path: "swift/Sources/ShopifyAcceleratedCheckouts", resources: [.process("Localizable.xcstrings"), .process("Media.xcassets")] ), .testTarget( name: "ShopifyCheckoutSheetKitTests", dependencies: ["ShopifyCheckoutSheetKit"], + path: "swift/Tests/ShopifyCheckoutSheetKitTests", plugins: [ .plugin(name: "SwiftLint", package: "SwiftLintPlugin") ] @@ -51,6 +54,7 @@ let package = Package( "ShopifyAcceleratedCheckouts", .product(name: "ViewInspector", package: "ViewInspector") ], + path: "swift/Tests/ShopifyAcceleratedCheckoutsTests", plugins: [ .plugin(name: "SwiftLint", package: "SwiftLintPlugin") ] diff --git a/README.md b/README.md new file mode 100644 index 00000000..6a14e7f5 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Checkout Kit diff --git a/android/.gitattributes b/android/.gitattributes deleted file mode 100644 index 6d35a2b5..00000000 --- a/android/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.graphqls linguist-generated=true diff --git a/android/.github/CODE_OF_CONDUCT.md b/android/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 6023b84e..00000000 --- a/android/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,136 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -opensource@shopify.com. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org - -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html - -[Mozilla CoC]: https://github.com/mozilla/diversity - -[FAQ]: https://www.contributor-covenant.org/faq - -[translations]: https://www.contributor-covenant.org/translations diff --git a/android/.github/CONTRIBUTING.md b/android/.github/CONTRIBUTING.md deleted file mode 100644 index 21fa07b9..00000000 --- a/android/.github/CONTRIBUTING.md +++ /dev/null @@ -1,89 +0,0 @@ -# Contributing - -The following is a set of guidelines for contributing to the project. Please take a moment to read -through them before submitting your first PR. - -## Code of Conduct - -This project and everyone participating in it are governed by -the [Code of Conduct](./CODE_OF_CONDUCT.md). -By participating, you are expected to uphold this code. Please report unacceptable -behavior to [opensource@shopify.com](mailto:opensource@shopify.com). - -## Welcomed Contributions - -- Reporting issues with existing features -- Bug fixes -- Performance improvements -- Documentation -- Usability Improvements - -## Things we won't merge - -- Additional dependencies that limit sdk use (e.g. android dependencies) -- Any changes that break existing tests -- Any changes without sufficient tests - -## Proposing Features - -When in doubt about whether we will be interested in including a new feature in this project, please -open an issue to propose the feature so we can confirm the feature should be in scope for the -project before it is implemented. - -**NOTE**: Issues that have not been active for 30 days will be marked as stale, and subsequently closed after a further 7 days of inactivity. - -## How To Contribute - -1. Fork the repo and branch off of main -2. Create a feature branch in your fork -3. Make changes and add any relevant tests -4. Run formatting and lint checks (see below) -5. Verify the changes locally (e.g. via the sample app) -6. Commit your changes and push -7. Ensure all checks (e.g. tests) are passing in GitHub -8. Create a new pull request with a detailed description of what is changing and why - -## Formatting - -This project uses [detekt](https://detekt.dev/) for Kotlin linting and formatting. Before submitting a PR, please run the following to auto-fix formatting issues: - -```bash -./gradlew detekt --auto-correct -``` - -To check for lint issues without auto-correcting: - -```bash -./gradlew detekt -``` - -## Public API surface - -The library's public API is tracked via a committed baseline at `lib/api/lib.api`, managed by the [binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin. CI runs `./gradlew :lib:apiCheck` on every PR and fails if the compiled public API diverges from the baseline. - -If your change intentionally modifies public API (adds, removes, or changes any public class, method, or field): - -1. Run `dev api dump` (or `./gradlew :lib:apiDump`) to regenerate the baseline. -2. Review the diff in `lib/api/lib.api` alongside your code changes. -3. Commit the updated `.api` file in the same PR. - -If you did *not* intend to change public API and `apiCheck` is failing, the diff shows what your change inadvertently affected — treat it as a signal that something in your PR has consumer-visible impact. - -## Releasing a new version - -Open a pull request with the following changes: - -1. Bump the [versionName](https://github.com/Shopify/checkout-kit-android/blob/main/lib/build.gradle#L17) -2. Add an entry to the top of the [CHANGELOG](https://github.com/shopify/checkout-sheet-kit-android/blob/main/CHANGELOG.md) - -Once you have merged a pull request with these changes, you will be ready to publish a new version. - -To do so, navigate to and click "Draft a new release" then complete the following steps: - -1. Create a tag for the new version -2. Use the same tag as the name for the version -3. Document a full list of changes since the previous release, tagging merged pull requests where applicable, in the description box -4. Check "Set as the latest release" -5. When ready click "Publish release" - -This will trigger a GitHub workflow to start the process of publishing a new version of the library to maven central. **Note** - A manual approval by a maintainer is required before release to maven central. diff --git a/android/.github/ISSUE_TEMPLATE/bug_report.yml b/android/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index ca6795e0..00000000 --- a/android/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: 🐛 Bug Report -description: Something is wrong with the Checkout Sheet Kit. -labels: ["Bug", "untriaged"] -body: - - type: markdown - attributes: - value: | - ## Hi there! - - If your issue is **not** related to the Checkout Sheet Kit itself, but rather an internal checkout or storefront problem, please reach out to Shopify support directly where the issue will be triaged correctly. - - - type: dropdown - attributes: - label: What area is the issue related to? - options: - - Checkout Sheet Kit - - Storefront API - - Multipass - - Lifecycle methods - - Web Pixels - - Other / I don't know - validations: - required: true - - - type: input - attributes: - label: What version of the package are you using? - description: Please list the package version and device you are testing with. - validations: - required: true - - - type: textarea - attributes: - label: Reproducible sample code - description: Please provide examples of code relating to your issue. This might include GraphQL queries to the Storefront API to create a cart, or native code to present the checkout URL. Providing this will help us debug your issue more quickly. - validations: - required: false - - - type: textarea - attributes: - label: Steps to Reproduce - description: A list of steps to reproduce the behavior. - validations: - required: true - - - type: textarea - attributes: - label: Expected Behavior - description: A concise description of what you expected to happen. - validations: - required: true - - - type: textarea - attributes: - label: Actual Behavior - description: A concise description of what you're experiencing. - validations: - required: true - - - type: textarea - attributes: - label: Screenshots/Videos/Log output - validations: - required: false - - - type: textarea - attributes: - label: Storefront domain - placeholder: your-storefront-name.myshopify.com - description: This will expedite our search for any errors that occurred. - validations: - required: true diff --git a/android/.github/ISSUE_TEMPLATE/feature_request.yml b/android/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 00f9fee6..00000000 --- a/android/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: 💡 Feature Request -description: - An idea or suggestion for a new feature or enhancement to the Checkout Sheet - Kit -labels: ["Feature-Request", "untriaged"] -body: - - type: markdown - attributes: - value: | - ## Hi there! - - Please tell us about the new feature or enhancement you'd like to see implemented in the Checkout Sheet Kit. - - - type: textarea - attributes: - label: Description - description: A detailed description of the feature or enhancement you'd like to see. - validations: - required: true - - type: textarea - attributes: - label: Rationale - description: Explain the benefits of this feature. - validations: - required: true diff --git a/android/.github/pull_request_template.md b/android/.github/pull_request_template.md deleted file mode 100644 index 35ce2626..00000000 --- a/android/.github/pull_request_template.md +++ /dev/null @@ -1,31 +0,0 @@ -### What changes are you making? - - - -### How to test - - - ---- - -### Before you merge - -> [!IMPORTANT] -> -> - [ ] I've added tests to support my implementation -> - [ ] I have read and agree with the [Contribution Guidelines](https://github.com/shopify/checkout-sheet-kit-android/blob/main/.github/CONTRIBUTING.md). -> - [ ] I have read and agree with the [Code of Conduct](https://github.com/shopify/checkout-sheet-kit-android/blob/main/.github/CODE_OF_CONDUCT.md). -> - [ ] I've updated the [README](https://github.com/shopify/checkout-sheet-kit-android). - ---- - -
-Checklist for releasing a new version - -- [ ] I have bumped the version number in the [`build.gradle` file](https://github.com/Shopify/checkout-kit-android/blob/main/lib/build.gradle#L17) -- [ ] I have updated the versions in the [README.md](https://github.com/shopify/checkout-sheet-kit-android/blob/main/README.md) for both Gradle and Maven. - -
- -> [!TIP] -> See the [Contributing documentation](https://github.com/shopify/checkout-sheet-kit-android/blob/main/.github/CONTRIBUTING.md#releasing-a-new-version) for instructions on how to publish a new version of the library. diff --git a/android/.github/workflows/cla.yml b/android/.github/workflows/cla.yml deleted file mode 100644 index 53811187..00000000 --- a/android/.github/workflows/cla.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Contributor License Agreement (CLA) - -on: - pull_request_target: - types: [opened, synchronize] - issue_comment: - types: [created] - -jobs: - cla: - runs-on: ubuntu-latest - permissions: - actions: write - pull-requests: write - if: | - (github.event.issue.pull_request - && !github.event.issue.pull_request.merged_at - && contains(github.event.comment.body, 'signed') - ) - || (github.event.pull_request && !github.event.pull_request.merged) - steps: - - uses: Shopify/shopify-cla-action@v1 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - cla-token: ${{ secrets.CLA_TOKEN }} diff --git a/android/.github/workflows/stale.yml b/android/.github/workflows/stale.yml deleted file mode 100644 index ca1c0bb8..00000000 --- a/android/.github/workflows/stale.yml +++ /dev/null @@ -1,37 +0,0 @@ -# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. -# -# You can adjust the behavior by modifying this file. -# For more information, see: -# https://github.com/actions/stale -name: Mark stale issues and pull requests - -on: - schedule: - - cron: "35 3 * * *" - -jobs: - stale: - runs-on: ubuntu-latest - permissions: - issues: write - - steps: - - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - days-before-stale: 30 - days-before-close: 7 - - stale-issue-label: "stale" - stale-issue-message: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs in 30 days. - Thank you for your contributions. - close-issue-message: > - This issue has been automatically closed because it has not had recent activity. - Please re-open it if it is still relevant. - stale-pr-message: "Stale pull request message" - stale-pr-label: "stale" - exempt-issue-labels: "never-stale,do-not-close,do-not-mark-as-stale" - diff --git a/android/.gitignore b/android/.gitignore deleted file mode 100644 index 4bf7268e..00000000 --- a/android/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/ -.DS_Store -/build -/captures -.externalNativeBuild -.cxx -local.properties -.env -upload-keystore.jks -**/.claude/ diff --git a/android/.ruby-version b/android/.ruby-version deleted file mode 100644 index b16ae123..00000000 --- a/android/.ruby-version +++ /dev/null @@ -1,2 +0,0 @@ -3.4.4 - diff --git a/android/LICENSE b/android/LICENSE deleted file mode 100644 index 2c4f65d8..00000000 --- a/android/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright 2023-present, Shopify Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/e2e/README.md b/e2e/README.md new file mode 100644 index 00000000..290248e4 --- /dev/null +++ b/e2e/README.md @@ -0,0 +1,3 @@ +# Checkout Kit — End-to-end tests + +Placeholder. End-to-end tests covering Swift, Android, and (later) React Native will be folded into this directory in a follow-up. diff --git a/react-native/README.md b/react-native/README.md new file mode 100644 index 00000000..3305c6bf --- /dev/null +++ b/react-native/README.md @@ -0,0 +1,3 @@ +# Checkout Kit — React Native + +Placeholder. The React Native wrapper will be folded into this directory in a follow-up. Until then, see the existing repo at `Shopify/checkout-sheet-kit-react-native`. diff --git a/swift/.github/CODEOWNERS b/swift/.github/CODEOWNERS deleted file mode 100644 index 7515646a..00000000 --- a/swift/.github/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @Shopify/checkout-kit-maintainers diff --git a/swift/.github/CONTRIBUTING.md b/swift/.github/CONTRIBUTING.md deleted file mode 100644 index 6b37530e..00000000 --- a/swift/.github/CONTRIBUTING.md +++ /dev/null @@ -1,73 +0,0 @@ -# Contributing - -The following is a set of guidelines for contributing to the project. Please take a moment to read through them before submitting your first PR. - -## Code of Conduct - -This project and everyone participating in it are governed by the [Code of Conduct](/.github/CODE_OF_CONDUCT.md). -By participating, you are expected to uphold this code. Please report unacceptable -behavior to [opensource@shopify.com](mailto:opensource@shopify.com). - -## Welcomed Contributions - -- Reporting issues with existing features -- Bug fixes -- Performance improvements -- Documentation -- Usability Improvements - -## Things we won't merge - -- Additional dependencies that limit sdk use (e.g. swift dependencies) -- Any changes that break existing tests -- Any changes without sufficient tests - -## Proposing Features - -When in doubt about whether we will be interested in including a new feature in this project, please open an issue to propose the feature so we can confirm the feature should be in scope for the project before it is implemented. - -**NOTE**: Issues that have not been active for 30 days will be marked as stale, and subsequently closed after a further 7 days of inactivity. - -## Prerequisites - -This project uses [Mint](https://github.com/yonaskolb/Mint) to manage Swift linting tools (SwiftLint and SwiftFormat) at pinned versions via the `Mintfile`. This ensures consistent formatting across all contributors and CI. - -**Shopify employees:** -```bash -dev up -``` - -**External contributors:** -```bash -brew install mint -mint bootstrap -``` - -## How To Contribute - -1. Fork the repo and branch off of main -2. Create a feature branch in your fork -3. Make changes and add any relevant relevant tests -4. Run `./Scripts/lint fix` to auto-fix formatting issues -5. Verify the changes locally (e.g. via the sample app) -6. Commit your changes and push -7. Ensure all checks (e.g. tests) are passing in GitHub -8. Create a new pull request with a detailed description of what is changing and why - -## Releasing a new version - -Open a pull request with the following changes: -1. Bump the [package version](https://github.com/Shopify/checkout-sheet-kit-swift/blob/main/Sources/ShopifyCheckoutSheetKit/ShopifyCheckoutSheetKit.swift#L27) -2. Bump the [podspec version](https://github.com/Shopify/checkout-sheet-kit-swift/blob/main/ShopifyCheckoutSheetKit.podspec#L2) -3. Add an entry to the top of the [CHANGELOG](../CHANGELOG.md) - -Once you have merged a pull request with these changes, you will be ready to publish a new version. - -To do so, navigate to -https://github.com/Shopify/checkout-sheet-kit-swift/releases and click "Draft a new release" then complete the following steps: - -1. Create a tag for the new version -2. Use the same tag as the name for the version -3. Document a full list of changes since the previous release, tagging merged pull requests where applicable, in the description box. -4. Check "Set as the latest release" to ensure Swift Package Manager identifies this as the latest release. -5. When ready, click "Publish release". This will ensure SPM can identity the latest version and it will kickstart the [CI process](https://github.com/Shopify/checkout-sheet-kit-swift/actions/workflows/deploy.yml) to publish a new version of the CocoaPod. diff --git a/swift/.github/ISSUE_TEMPLATE/config.yml b/swift/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ba13e0c..00000000 --- a/swift/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/swift/.github/dependabot.yaml b/swift/.github/dependabot.yaml deleted file mode 100644 index 74c36279..00000000 --- a/swift/.github/dependabot.yaml +++ /dev/null @@ -1,14 +0,0 @@ -version: 2 -updates: - - package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly - cooldown: - default-days: 7 - - package-ecosystem: swift - directory: "/" - schedule: - interval: daily - cooldown: - default-days: 7 diff --git a/swift/.github/pull_request_template.md b/swift/.github/pull_request_template.md deleted file mode 100644 index ca0f7b3d..00000000 --- a/swift/.github/pull_request_template.md +++ /dev/null @@ -1,27 +0,0 @@ -### What changes are you making? - - - ---- - -### Before you merge - -> [!IMPORTANT] -> -> - [ ] I've added tests to support my implementation -> - [ ] I have read and agree with the [Contribution Guidelines](https://github.com/shopify/checkout-sheet-kit-swift/blob/main/.github/CONTRIBUTING.md). -> - [ ] I have read and agree with the [Code of Conduct](https://github.com/shopify/checkout-sheet-kit-swift/blob/main/.github/CODE_OF_CONDUCT.md). -> - [ ] I've updated the [README](https://github.com/shopify/checkout-sheet-kit-swift). -> -> _Releasing a new version of the kit?_ -> -> - [ ] I have bumped the version number in the [`podspec` file](https://github.com/Shopify/checkout-sheet-kit-swift/blob/main/ShopifyCheckoutKit.podspec#L2). -> -> _Releasing a new major version?_ -> -> - [ ] I have bumped the version number in the [README](https://github.com/Shopify/checkout-kit-swift/blob/main/README.md#packageswift). - ---- - -> [!TIP] -> See the [Contributing documentation](https://github.com/shopify/checkout-sheet-kit-swift/blob/main/.github/CONTRIBUTING.md#releasing-a-new-version) for instructions on how to publish a new version of the library. diff --git a/swift/.github/workflows/build-samples.yml b/swift/.github/workflows/build-samples.yml deleted file mode 100644 index 1e4c8d23..00000000 --- a/swift/.github/workflows/build-samples.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Build Sample Apps - -on: - push: - branches: - - main - pull_request: - workflow_dispatch: - -jobs: - call-workflow-passing-data: - uses: ./.github/workflows/test-workflow.yml - with: - test-path: ./Scripts/build_samples diff --git a/swift/.github/workflows/test-package.yml b/swift/.github/workflows/test-package.yml deleted file mode 100644 index 94f55e40..00000000 --- a/swift/.github/workflows/test-package.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Run Package Tests - -on: - push: - branches: - - main - pull_request: - workflow_dispatch: - -jobs: - call-workflow-passing-data: - uses: ./.github/workflows/test-workflow.yml - with: - test-path: ./scripts/xcode_run test ShopifyCheckoutSheetKit-Package diff --git a/swift/.gitignore b/swift/.gitignore deleted file mode 100644 index fef03de2..00000000 --- a/swift/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -.build -.swiftpm -.DS_Store -xcuserdata -**/Storefront.xcconfig -**/*.entitlements -.vscode/settings.json -.claude/ -CLAUDE.md - -# ShopifyAcceleratedCheckoutsApp -*.graphqls -apollo-ios-cli - -.dev/ -.mint diff --git a/swift/ShopifyCheckoutSheetKit.podspec b/swift/ShopifyCheckoutSheetKit.podspec index 393eeddb..c0b27652 100644 --- a/swift/ShopifyCheckoutSheetKit.podspec +++ b/swift/ShopifyCheckoutSheetKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.homepage = "https://github.com/Shopify/checkout-sheet-kit-swift" s.readme = "https://github.com/Shopify/checkout-sheet-kit-swift/blob/main/README.md" s.changelog = "https://github.com/Shopify/checkout-sheet-kit-swift/releases" - s.license = { :type => "MIT", :file => "LICENSE" } + s.license = { :type => "MIT", :file => "../LICENSE" } s.source = { :git => "https://github.com/Shopify/checkout-sheet-kit-swift.git", :tag => s.version.to_s