Skip to content

Publishing

Spotlight uses Craft for release management. Craft automatically determines version bumps from conventional commits and generates changelogs.

Release Workflow

1. Trigger the Release

Go to the Release GitHub Action and click “Run workflow”.

You can specify:

  • Version: Leave as auto to determine from commits, or specify major, minor, patch, or an explicit version like 4.10.0
  • Force: Check this to release even if there are release-blockers

2. Review the Release Branch

Craft creates a release branch (e.g., release/4.10.0) with:

  • Updated version in packages/spotlight/package.json
  • Generated changelog in packages/spotlight/CHANGELOG.md

The CI will build and test this branch automatically.

3. Merge and Publish

Once the release branch CI passes:

  1. Review the changelog and version bump
  2. Merge the release branch to main
  3. The publish workflow triggers automatically and:
    • Publishes to NPM
    • Creates a GitHub release with binaries
    • Tags the Docker image as latest
    • Builds and signs the Electron app

Version Determination

Craft analyzes commits since the last release to determine the version bump:

Commit TypeExampleVersion Bump
Breaking changefeat!: remove APIMajor (1.0.0 → 2.0.0)
New featurefeat: add dark modeMinor (1.0.0 → 1.1.0)
Bug fixfix: handle errorPatch (1.0.0 → 1.0.1)

Manual Publishing

If you need to manually trigger a publish (e.g., to re-publish a specific target):

  1. Go to the Publish workflow
  2. Click “Run workflow”
  3. Enter the version and select which targets to publish

Targets

TargetDescription
npmPublishes @spotlightjs/spotlight to NPM registry
dockerTags Docker image as latest and version tag
electronBuilds, signs, and uploads macOS Electron app