Build & Release — SDK Build Pipeline & Publishing
Build and release the Pump SDK ecosystem: tsup TypeScript builds, Cargo release profiles, semantic release, npm publishing, and deployment.
SDK Build Pipeline (TypeScript)
npx tsup src/index.ts --format cjs,esm --dts
Output: dist/index.cjs, dist/index.mjs, dist/index.d.ts
Rust Release Profile
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
Semantic Release with Commitizen
Commit format: type(scope): description
| Type | Effect |
|---|---|
feat: |
Minor version bump |
fix: |
Patch version bump |
feat!: or BREAKING CHANGE: |
Major version bump |
chore:, docs:, style: |
No release |
Makefile Targets
| Target | Description |
|---|---|
make build |
Build SDK + Rust binary |
make test |
Run all tests |
make bench |
Run benchmarks |
make lint |
Run all linters |
make clean |
Clean build artifacts |
make release |
Build release binary |
Linting
| Tool | Language | Config |
|---|---|---|
| ESLint/tsup | TypeScript | tsconfig.json |
cargo clippy |
Rust | Default warnings |
cargo fmt |
Rust | rustfmt.toml |
| ShellCheck | Bash | Default rules |
npm Publishing
npm publish --access public
# Package: @nirholas/pump-sdk
Vercel Website Deployment
# website/ directory — static HTML/CSS/JS
vercel --prod
MCP Server Distribution
npm publish --access public
# Package: @pump-fun/mcp-server
# Usage: npx -y @pump-fun/mcp-server
Patterns to Follow
- Use conventional commits for automated changelog generation
- Run
cargo clippyandcargo fmtbefore every Rust commit - Build TypeScript with both CJS and ESM output
- Test release builds before publishing
- Pin dependencies with lockfiles
Common Pitfalls
tsupmay not pick up all type exports — verify.d.tsoutputcargo build --releasetakes significantly longer than debug builds- npm
prepublishOnlyscripts should run tests and lint - Vercel deployment requires matching Node.js version