Complete this checklist before publishing your Smart TV packages to npm.
- Read through
README.md- ensure accuracy - Review
CONTRIBUTING.md- customize if needed - Check
CODE_OF_CONDUCT.md- appropriate for your project - Update
SECURITY.md- ADD YOUR CONTACT EMAIL⚠️ - Review
CHANGELOG.md- correct version and date - Verify
LICENSE- BSD 3-Clause license is appropriate
-
packages/player/README.md- exists and accurate -
packages/query/README.md- exists and accurate -
packages/create-smart-tv/README.md- exists and accurate
-
package.jsonhas correct version (0.1.0) -
package.jsonhas "license": "BSD-3-Clause" -
package.jsonhas repository URL -
package.jsonhas keywords -
package.jsonhas "publishConfig": { "access": "public" } - README.md exists
- Build output in
dist/folder exists - Contains: index.js, index.mjs, index.d.ts, styles.css
-
package.jsonDOES NOT have "private": true⚠️ -
package.jsonhas correct version (0.1.0) -
package.jsonhas "license": "BSD-3-Clause" -
package.jsonhas repository URL -
package.jsonhas keywords -
package.jsonhas "publishConfig": { "access": "public" } - README.md exists
- Build output in
dist/folder exists - Contains: index.js, index.mjs, index.d.ts
-
package.jsonhas correct version (1.0.0) -
package.jsonhas "license": "BSD-3-Clause" -
package.jsonhas repository URL -
package.jsonhas keywords -
package.jsonhas proper bin configuration -
bin/cli.jsexists and has shebang (#!/usr/bin/env node) -
bin/cli.jsis executable - README.md exists
-
template/folder exists with project template
- Run
pnpm install- no errors - Run
pnpm lint- passes - Run
pnpm check-types- passes - Run
pnpm build- succeeds - Run
pnpm test- passes (or confirms no tests) - All build artifacts in
dist/folders
- Run
pnpm verify- all checks pass - No uncommitted changes (
git statusclean) - On main/master branch
- All changes pushed to GitHub
- npm account created (https://www.npmjs.com/signup)
- Email verified
- Run
npm login- successful - Run
npm whoami- shows your username
- Organization
smart-tvexists on npm, OR - Changed package names to
@yourname/package, OR - Changed to non-scoped names
-
cd packages/player && npm pack --dry-run- review output -
cd packages/query && npm pack --dry-run- review output -
cd packages/create-smart-tv && npm pack --dry-run- review output
- All dependencies installed
- All packages built
- All tests passing
- No TypeScript errors
- No ESLint errors
- Player version: 0.1.0
- Query version: 0.1.0
- CLI version: 1.0.0
- CHANGELOG.md updated with version
- Git status clean
Choose one method:
- Run
pnpm publish:packages- publish all at once
- Run
pnpm publish:player - Run
pnpm publish:query - Run
pnpm publish:cli
-
cd packages/player && npm publish --access public -
cd packages/query && npm publish --access public -
cd packages/create-smart-tv && npm publish --access public
- Run
npm view @smart-tv/player- shows package info - Run
npm view @smart-tv/query- shows package info - Run
npm view create-smart-tv-app- shows package info
- Create test directory
- Run
npm install @smart-tv/player- installs successfully - Run
npm install @smart-tv/query- installs successfully - Run
npx create-smart-tv-app test-app- creates project
- Run
git tag -a v0.1.0 -m "Release v0.1.0" - Run
git push origin v0.1.0 - Verify tag appears on GitHub
- Go to https://github.com/smarttv-dev/smart-tv/releases/new
- Select tag: v0.1.0
- Title: "v0.1.0 - Initial Release"
- Copy content from CHANGELOG.md
- Add any additional notes
- Click "Publish release"
- Release appears on GitHub
- Release notes are accurate
- Links work correctly
- Add npm badges to README.md
- Update installation instructions if needed
- Update any version references
- Post on Twitter/X
- Share on Reddit (r/react, r/javascript, r/opensource)
- Post on Dev.to
- Share on LinkedIn
- Notify in relevant Discord/Slack communities
- Enable GitHub notifications
- Watch npm download stats
- Monitor GitHub issues
- Check npm package pages
- Generate npm token (Automation type)
- Add NPM_TOKEN to GitHub secrets
- Test publish workflow
- Verify workflow permissions
- Update SECURITY.md with your contact email
- Remove "private": true from @smart-tv/query package.json
- Login to npm with
npm login - Verify npm organization access (if using @smart-tv scope)
- Run
pnpm verifyto check everything
- ❌ Don't publish without testing locally
- ❌ Don't publish with uncommitted changes
- ❌ Don't republish the same version number
- ❌ Don't skip the verification step
- ❌ Don't forget to create git tags
If all checks above are complete, run this sequence:
# 1. Verify
pnpm verify
# 2. Login (if not already)
npm login
# 3. Publish
pnpm publish:packages
# 4. Tag
git tag -a v0.1.0 -m "Release v0.1.0"
git push origin v0.1.0
# 5. Create GitHub Release (via web interface)
# https://github.com/smarttv-dev/smart-tv/releases/newBefore publishing, confirm:
- I have read all documentation
- I have tested all packages locally
- I have verified package configurations
- I am logged into npm
- I have organization access (if needed)
- I have updated SECURITY.md with contact info
- I have run
pnpm verifysuccessfully - I am ready to publish to npm
- I understand I cannot unpublish easily
Signed: ****_**** Date: ****_****
If any step is unclear or fails:
- Read
COMPLETE_GUIDE.mdfor detailed instructions - Check
PUBLISHING.mdfor troubleshooting - Review
CONTRIBUTING.mdfor development setup - Check npm documentation: https://docs.npmjs.com/
- Open an issue on GitHub (after publishing)
You will have:
- ✅ Published 3 packages to npm
- ✅ Created git tags
- ✅ Published GitHub release
- ✅ Professional open-source project
- ✅ Ready for contributors
Congratulations! 🚀
Save this checklist and use it for every release!