Skip to content

fix(release): skip existing SDK package versions#104

Merged
Lythaeon merged 1 commit intomainfrom
fix/ts-sdk-release-skip-existing
Apr 12, 2026
Merged

fix(release): skip existing SDK package versions#104
Lythaeon merged 1 commit intomainfrom
fix/ts-sdk-release-skip-existing

Conversation

@Lythaeon
Copy link
Copy Markdown
Owner

Description

Hardens the TypeScript SDK release workflow so already-published package versions skip before build/setup work, and bumps the next publish target to 0.1.2 with clearer npm-facing SDK messaging.

Changes

  • .github/workflows/release-typescript-sdk.yml: check npm first and skip SDK/native release work when the exact version already exists; native jobs now skip before Rust setup and build, and SDK publish skips before install/publish work.
  • .github/workflows/release-typescript-sdk.yml: standardize npm visibility checks on pnpm view in the release flow.
  • sdks/typescript/package.json: bump SDK version to 0.1.2 and replace the vague package description with an npm-facing description that says this is for Node.js Solana observer apps on SOF.
  • sdks/typescript/native/*/package.json: bump all native runtime packages to 0.1.2.
  • sdks/typescript/README.md: clarify what kind of “app” this SDK builds and runs.
  • sdks/typescript/RELEASING.md: update the documented tag example to ts-sdk-v0.1.2.

Motivation

Business motivation:
Avoid wasting CI time and release retries on package versions that are already published, and make the npm package page understandable to users who do not know what “app SDK” means.

Technical motivation:
The release pipeline should short-circuit on already-published versions before native toolchain setup or Rust builds, especially during tag retries and partial recovery attempts.

Alternative approaches considered:
Keeping the skip logic only inside publish-package.mjs was insufficient because that still let the workflow install dependencies and set up Rust before discovering the version already existed.

Scope and impact

  • Affected slices: TypeScript SDK release workflow and npm-facing SDK metadata/docs.
  • Data/API changes: Version bump from 0.1.1 to 0.1.2 for the SDK and native packages.
  • Backward compatibility: No public API change; release behavior only skips duplicate-version work.
  • Performance impact: Release retries are faster because existing package versions skip before build/setup.
  • Security impact: No new secret handling; existing npm checks remain read-only.

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

pnpm --dir sdks/typescript run check:release-metadata
cd sdks/typescript && pnpm publish --dry-run --access public --no-git-checks
act workflow_dispatch -W .github/workflows/release-typescript-sdk.yml -j publish-native -n
act workflow_dispatch -W .github/workflows/release-typescript-sdk.yml -j publish-sdk -n

Results:

  • check:release-metadata passed with 0.1.2 across the SDK/native package set.
  • pnpm publish --dry-run passed for @lythaeon-sof/sdk@0.1.2.
  • act --dryrun parsed the updated release workflow successfully. As expected, it cannot execute the real Windows/macOS matrix jobs locally and reports those platforms as unsupported.

Related issues and documentation

  • Fixes: duplicate-version release retries still doing unnecessary SDK/native setup and build work.
  • Related: 0.1.2 TypeScript SDK release preparation.
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR: Not applicable.
  • Operations/runbook updates: sdks/typescript/RELEASING.md

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

I also canceled the stale ts-sdk-v0.1.1 release runs so they do not race each other while 0.1.2 is being prepared.

@Lythaeon Lythaeon merged commit 1442f5e into main Apr 12, 2026
1 of 3 checks passed
@Lythaeon Lythaeon deleted the fix/ts-sdk-release-skip-existing branch April 12, 2026 13:28
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.

1 participant