Skip to content

[Feature Request] Publish the library to npm via a GitHub Actions release workflow — no releases have been published despite npm install instructions in the README #265

Description

@prince-pokharna

Summary

The README instructs users to install sketchbook-ui via npm install sketchbook-ui, and the repository contains a properly configured vite.config.lib.ts, .npmignore, and package.json with a files field — all the infrastructure needed for npm publishing. However, the "Releases" section on GitHub shows no releases have been published, meaning the npm package is either stale or the publish step is entirely manual with no documented process. A GitHub Actions release workflow would automate versioning, build, and publish on every tagged release.

Problem

  • There is no automated npm publish workflow in .github/workflows/.
  • The current .github/workflows/ directory appears to contain only the Storybook deploy action, not a release pipeline.
  • Without an automated release workflow, the npm package can only be published by the maintainer running npm publish manually — with no changelog, no version tag on GitHub, and no reproducible process.
  • Contributors cannot tell what version is currently published on npm, whether it matches main, or how to trigger a release.
  • For a library with 287 stars and active contributions, this gap means user-facing fixes may sit merged on main for an unknown amount of time before reaching npm consumers.

Impact

  • Bug fixes and new components merged into main do not reach npm consumers until the maintainer manually remembers to publish.
  • There is no CHANGELOG connecting npm versions to specific commits or features.
  • New contributors cannot understand the release process or confidently target a specific version.

Proposed Solution

Add a GitHub Actions release workflow that triggers on a version tag push (v*.*.*), builds the library, and publishes to npm using a stored NPM_TOKEN secret.

# .github/workflows/release.yml
name: Release

on:
  push:
    tags:
      - 'v*.*.*'

jobs:
  publish:
    name: Build & Publish to npm
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          registry-url: 'https://registry.npmjs.org'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Type check
        run: npx tsc --noEmit

      - name: Build library
        run: npm run build:lib

      - name: Publish to npm
        run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Create GitHub Release
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true

Additional notes:

  • The NPM_TOKEN secret needs to be added to the repository settings by the maintainer once — the workflow handles everything else.
  • generate_release_notes: true will automatically produce a changelog from PR titles and commit messages since the last tag.
  • I will also add a brief RELEASING.md document explaining how to cut a release (tag + push) so the process is documented for maintainers and future contributors.

Could you please assign this issue to me?

Labels: enhancement, ci/cd, release, GSSoC 2026

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions