Skip to content

Move the quickstart to the samples repository and add a playground - #39

Merged
brionmario merged 1 commit into
thunder-id:mainfrom
brionmario:move-quickstarts-to-samples
Oct 21, 2026
Merged

brionmario merged 1 commit into
thunder-id:mainfrom
brionmario:move-quickstarts-to-samples

Conversation

@brionmario

@brionmario brionmario commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Purpose

Moves the Android quickstart to thunder-id/samples (thunder-id/thunderid#5904).

Approach

  • Removed the in-repo quickstart.
  • E2E and the PR builder fetch the quickstart from thunder-id/samples and point it at this checkout. THUNDERID_SAMPLES_REF picks another branch or tag (needed when an SDK change and a sample change land together), THUNDERID_SAMPLES_DIR uses a local samples checkout (copied, never modified), and THUNDERID_SAMPLES_REPO overrides the repository. The fetched copy is gitignored.
  • tests/e2e/scripts/prepare-sample.sh (plus a .ps1 for run-e2e.ps1) copies quickstarts/android into tests/e2e/.samples and adds an includeBuild of this checkout that substitutes com.github.thunder-id:android-sdks. The build-sample job and the E2E runners both use it.
  • Release workflow: no longer packages a quickstart archive. thunder-id/samples releases it now, and the docs offer that release (Point the docs at the samples repository and document the SDK playgrounds thunderid#5910).
  • AGENTS.md, README.md and the E2E README point at the new location.

Verified locally: ./gradlew ktlintCheck and ./gradlew build -x test pass. The prepared sample's assembleDebug resolves com.github.thunder-id:android-sdks:v1.4.0 -> project :android. The .ps1 scripts were parsed with pwsh but not executed. The Maestro suite was not run.

Playground

playground/ replaces the quickstart for exercising the SDK from source (thunder-id/thunderid#5919). It is a standalone Jetpack Compose build that uses includeBuild("..") to substitute dev.thunderid:android with this checkout:

  • Checks: 12 capabilities (Custom Tabs and app-native sign-in, passkey, sign-out, redirect callback, token refresh, encrypted storage, user info, theming, translations, and more). You can run one or all, and each shows pass or fail with a reason, plus server health.
  • Components: the real Compose components with story chips, live controls and a generated Compose snippet.
  • Session: a token countdown, refresh and sign-out, tokens with reveal and copy, decoded claims, and events.
  • Logs: a filterable event log.

The new build-playground job runs ./gradlew ktlintCheck assembleDebug in playground/. It was run on an emulator against a local server. Setup is in playground/README.md.

Shown as unavailable because the SDK has no API for them yet: biometric unlock and organizations. There is also no public read of the ID token, refresh token or expiry, no forced refresh, no event emitter, and no SDK version constant. The playground reads tokens through a storage adapter, so it depends on the SDK's internal key names.

Screenshots

Checks Components Session
Checks tab Components tab Session tab

Android emulator (API 36). The Checks tab is from a run without config.properties; Components and Session are from an earlier run against the local server, whose seeded Console app does not allow app-native flows.

Related Issues

Related PRs

Merge order: thunder-id/samples#7 first. The SDK PRs' E2E suites and sample builds fetch the quickstarts from samples main, so they fail at the fetch step until it merges. Re-run their checks afterwards.

Checklist

  • Followed the contribution guidelines.
  • Manual test round performed and verified.
  • Documentation provided. (Add links if there are any)
  • Tests provided. (Add links if there are any)
    • Unit Tests
    • Integration Tests
  • Breaking changes. (Fill if applicable)
    • Breaking changes section filled.
    • breaking change label added.
  • Cross-SDK parity. Exactly one of parity/prs-raised or parity/prs-not-needed added.
    • If parity/prs-raised, the port links are posted as a reply on the parity check's comment.

Security checks

  • Followed secure coding standards.
  • Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets.

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

🔀 Cross-SDK feature parity, ports raised

This pull request is labelled parity/prs-raised, so the capability it introduces is expected in the other ThunderID SDKs as well.

Ports (DO NOT EDIT)

  • thunder-id/javascript-sdks, JavaScript (React, Vue, Nuxt, Next.js, Express, React Router, TanStack Router, Browser, Node) => #126
  • thunder-id/ios-sdks, iOS => #32
  • thunder-id/flutter-sdks, Flutter => #50

3 of 3 sibling SDKs accounted for.

Every sibling SDK is accounted for.

The contract is in the SDK development specification.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: thunder-id/android-sdks/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2ac98094-71b4-4ff6-974d-31accb23b632
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@brionmario
brionmario force-pushed the move-quickstarts-to-samples branch 2 times, most recently from fc49f95 to 7ab1db2 Compare October 20, 2026 05:02
@brionmario brionmario changed the title Move the SDK quickstart samples to the samples repository Move the quickstart to the samples repository and add a playground Oct 20, 2026
@brionmario
brionmario force-pushed the move-quickstarts-to-samples branch from 7ab1db2 to 1eb1d3b Compare October 20, 2026 12:52
The quickstart now lives in thunder-id/samples and uses the published SDK. The E2E suite and the PR builder fetch it from there and point it at this checkout through tests/e2e/scripts/prepare-sample.sh. The release no longer attaches a quickstart archive.

playground/ takes its place for exercising the SDK from source: capability checks, a component explorer with Compose snippets, and a session inspector, linted and built by the PR builder.

Refs thunder-id/thunderid#5904

Refs thunder-id/thunderid#5919

Signed-off-by: Brion <info@brionmario.com>
@brionmario
brionmario force-pushed the move-quickstarts-to-samples branch from 1eb1d3b to 0d37ebe Compare October 20, 2026 12:58
@brionmario
brionmario merged commit 386409f into thunder-id:main Oct 21, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parity/prs-raised Ports exist in the other SDKs, or are recorded as not applying there

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants