docs: design for publishing @pod-network/trade-sdk to npm - #257
Closed
poszu wants to merge 1 commit into
Closed
Conversation
Records the decisions: public npm under @Pod-Network, publish driven by a ts-sdk-scoped tag so TS releases stay decoupled from the shared v* release that zips all three SDKs, first version 0.1.0, and npm link for cross-repo iteration. Also covers the two guards the workflow needs (tag/manifest agreement, and building the gitignored dist), prerelease dist-tag handling, the frontend switchover as a forced follow-up once 0.1.0 exists, and closing the gap that no CI anywhere currently touches the TypeScript.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Design doc only — no code, no workflow, nothing published. Opened as the review surface for the plan before any of it is built.
Records the four decisions taken: public npm under
@pod-network; publish driven by ats-sdk-v*tag so TypeScript releases stay decoupled from the sharedv*tag thatrelease.ymlalready uses to zip all three SDKs; first version0.1.0; andnpm linkfor cross-repo iteration.Why this is worth doing rather than leaving the commit pin in place:
file:../pod-sdk/ts-sdkcarries no version, and the frontend's workflow checked pod-sdk out with noref, so a build compiled against whatever the default branch happened to be. That is how the IOC fix reached the deployed app with no frontend commit — and the same mechanism would have delivered a regression just as silently.Details the doc pins down that aren't obvious:
ts-sdk/distis gitignored, so it must be built in the job; aprepublishOnlyscript also stops a laptop publish shipping a stale or missingdist/publishConfig.access: publicis required or the first publish fails or lands privatenpm publishapplieslatesteven to a prerelease, so the job passes--tag rcfor hyphenated versions, keepinglatestfor real releases^0.1.0until0.1.0exists on npmtest.yml/lint.yml/format.ymlare Rust and Solidity only), so ats-sdkjob gets added totest.ymland doubles as the release gatePrerequisites that need a human: the
@pod-networknpm org must exist with an owner holding 2FA, and a granular publish token stored as theNPM_TOKENsecret.Explicitly out of scope: publishing
rust-sdk/types/solidity-sdk, pod's stale submodule pointer, changelog automation, and adding a test runner tots-sdk.