Skip to content

Releasing Kimesh

Overview

Kimesh uses automated GitHub Actions workflows for releasing packages to npm. This guide covers the release process for maintainers.

Release Types

Production Release

  • Triggered by pushing a version tag (e.g., v1.0.0)
  • Publishes all packages to npm with @latest tag
  • Includes npm provenance for supply chain security

Nightly Release

  • Triggered automatically on every push to main branch
  • Publishes packages with -nightly suffix (e.g., @kimesh/kit-nightly)
  • Uses @nightly tag on npm

PR Preview

  • Triggered automatically on pull requests
  • Uses pkg-pr-new for instant preview packages
  • Allows testing changes before merging

How to Release

1. Prepare the Release

bash
# Bump version (choose one)
bun run bump patch  # 0.0.x → bug fixes
bun run bump minor  # 0.x.0 → new features
bun run bump major  # x.0.0 → breaking changes

2. Commit and Tag

bash
git add .
git commit -m "chore: release v1.0.0"
git tag v1.0.0
git push origin main --tags

3. Monitor the Release

  • Go to GitHub Actions tab
  • Watch the "Release" workflow
  • Check npm for published packages

Packages Published

Core Packages (packages/)

PackageDescription
kimeshUmbrella package (re-exports router-runtime, query, head)
@kimesh/kitBuild-time engine: config loading, module system, Vite plugin
@kimesh/cliCLI commands (dev, build, prepare, init, layer)
@kimesh/router-runtimeRuntime router: components, composables, middleware, plugins
@kimesh/router-generatorFile-based route generation from directory structure
@kimesh/queryData fetching: $fetch, loaders, TanStack Query integration
@kimesh/headHead meta management: useHead, useSeoMeta, head components
@kimesh/auto-importOXC-powered auto-import system with layer support
@kimesh/layersLayer discovery, resolution, and configuration merging
@kimesh/sharedShared utilities and types across packages
create-kimeshProject scaffolding tool (bun create kimesh)

Official Modules (modules/)

ModuleDescription
@kimesh/piniaPinia state management integration
@kimesh/tailwindcssTailwindCSS integration with layer support
@kimesh/shadcnshadcn/ui component auto-registration

Setup Requirements

NPM Token

  1. Generate token at npmjs.com → Access Tokens
  2. Add to GitHub repo: Settings → Secrets → Actions → NPM_TOKEN

Repository Settings

  • Ensure id-token: write permission is enabled for OIDC provenance

Scripts Reference

ScriptCommandDescription
Releasebun run releasePublish all packages (CI only)
Bump Patchbun run bump patchIncrement patch version
Bump Minorbun run bump minorIncrement minor version
Bump Majorbun run bump majorIncrement major version
Nightlybun run bump:nightlyGenerate nightly version

Troubleshooting

Release Failed

  1. Check GitHub Actions logs
  2. Ensure NPM_TOKEN is valid
  3. Verify package.json has correct publishConfig

Package Not Found

  • Nightly packages use -nightly suffix
  • Install with: npm i @kimesh/kit-nightly@nightly

Released under the MIT License.