Skip to content

Conversation

@evan-masseau
Copy link
Contributor

@evan-masseau evan-masseau commented Nov 12, 2025

Description

The prior implementation of configure-sdk.sh was interactive only. Its slick but not as convenient for shorthand. It also means AI agents can't run it, because their bash tools don't typically allow answering prompts. This will also make it easier to have the test app's configure script automatically configure the local SDK by invoke this script.

It also now "remembers" the prior configured values for the native SDKs by keeping the prior version around in a comment, so for example you could do
./configure-sdk.sh -lia to use local on bother platforms, and then
./configure-sdk.sh -ia will default you back to the version in the podspec / prior gradle.properties files.

Due Diligence

  • I have tested this on a simulator/emulator or a physical device, on iOS and Android (if applicable).
  • I have added sufficient unit/integration tests of my changes.
  • I have adjusted or added new test cases to team test docs, if applicable.
  • I am confident these changes are implemented with feature parity across iOS and Android (if applicable).

Release/Versioning Considerations

  • Patch Contains internal changes or backwards-compatible bug fixes.
  • Minor Contains changes to the public API.
  • Major Contains breaking changes.
  • Contains readme or migration guide changes.
    • If so, please merge to a feature branch so documentation updates only go live upon official release.
  • This is planned work for an upcoming release.
    • If no, author or reviewer should account for this in a release plan, or describe why not below.

Changelog / Code Overview

Added arguments for everthing so that you can just run it one-shot instead of having to be interactive. Makes it easier to run quickly, and it makes it possible for AI agents to execute the script for us.

Test Plan

EXAMPLES:

    # Configure both platforms to default local paths
    ./configure-sdk.sh -l

    # Configure only Android to default local path (iOS skipped)
    ./configure-sdk.sh -la
    ./configure-sdk.sh -l -a

    # Configure only iOS to default local path (Android skipped)
    ./configure-sdk.sh -li
    ./configure-sdk.sh -l -i

    # Configure Android to custom path, skip iOS
    ./configure-sdk.sh -l -a ../../custom-android-sdk

    # Configure remote Android to master branch, skip iOS
    ./configure-sdk.sh -ra
    ./configure-sdk.sh -r -a

    # Configure remote Android version, skip iOS
    ./configure-sdk.sh -r -a 1.2.3

    # Configure both platforms to specific versions
    ./configure-sdk.sh -r --android=1.2.3 --ios=2.0.0

    # Configure to feature branch
    ./configure-sdk.sh -r --android=feat/new-feature --ios=skip

    # Skip pod install after configuration
    ./configure-sdk.sh -l --skip-pod-install

Related Issues/Tickets

Part of ongoing effort to AI-ify the repos, and I want to enable the test-app repo to configure the SDK from its own configure-sdk script by calling to this one, when targeting local.

…nts for remote vs local, and path/version/branch/commit spec for android/ios SDKs.
@evan-masseau evan-masseau requested a review from a team as a code owner November 12, 2025 22:09
Copy link

@amber-klaviyo amber-klaviyo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few questions to clarify my understanding of the code & expected behaviors, but overall looks good and the questions are non blocking

Evan Masseau and others added 4 commits November 12, 2025 19:42
- Remove --remote flag (no longer needed)
- Keep --local/-l as convenience shortcut for default local paths
- Make short flags context-aware based on -l flag:
  * -i/-a with -l → default local paths
  * -i/-a without -l → master branch
- Auto-detect local vs remote from value patterns
- Update help documentation with new behavior

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…omment so we can reset to it when not specified.
@evan-masseau
Copy link
Contributor Author

@amber-klaviyo FYI I pretty drastically cleaned this up if you wanted to take another look.

@evan-masseau evan-masseau merged commit 3101d78 into master Nov 25, 2025
12 checks passed
@evan-masseau evan-masseau deleted the ecm/config-script-arguments branch November 25, 2025 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants