Files
ccs/docs/version-management.md
T
kaitranntt 296d5661d0 docs: mark native shell installers as deprecated across all documentation
Phase 02 of "Deprecate Native Installers" plan:

Documentation updates (10 files, 3 languages):
- README.md: Mark curl/irm installers as deprecated in collapsed section
- docs/en/installation.md: Add deprecation warnings, emphasize npm as primary
- docs/en/troubleshooting.md: Add FAQ for deprecation warning users see
- docs/en/usage.md: Update uninstall to show npm first, legacy second
- docs/version-management.md: Strikethrough deprecated release checklist items
- docs/ja/README.md: Japanese deprecation notice
- docs/vi/README.md: Vietnamese deprecation notice
- docs/vi/installation.vi.md: Vietnamese installation deprecation
- docs/vi/troubleshooting.vi.md: Vietnamese troubleshooting deprecation
- src/commands/help-command.ts: npm as recommended uninstall method

Code quality:
- Fixed emoji violations: replaced ⚠️ with [!] per CLAUDE.md ASCII-only rule
- Consistent messaging across EN/JA/VI translations
- Updated codebase-summary.md with Phase 02 achievements

All documentation now consistently recommends:
  npm install -g @kaitranntt/ccs

Legacy installers (curl/irm) show deprecation warning and auto-redirect
to npm installation when Node.js is available.
2025-11-28 02:39:48 -05:00

3.7 KiB

Version Management

Overview

CCS uses a centralized version management system to ensure consistency across all components including npm package and shell installers.

Version Locations

The version number must be kept in sync across these files:

  1. VERSION - Primary version file (read by shell scripts at runtime)
  2. package.json - npm package version (for npm installations)
  3. installers/install.sh - Hardcoded for standalone installations (curl | bash)
  4. installers/install.ps1 - Hardcoded for standalone installations (irm | iex)

Why Multiple Version Locations?

npm Package (package.json)

When users run npm install -g @kaitranntt/ccs, npm uses the version from package.json for package management and dependency resolution.

Shell Installers (Hardcoded versions)

When users run:

  • curl -fsSL ccs.kaitran.ca/install | bash
  • irm ccs.kaitran.ca/install.ps1 | iex

The installer script is downloaded and executed directly without other files. Therefore, installers must have a hardcoded version as fallback.

VERSION File (Runtime)

For git-based installations or shell scripts, the VERSION file is read at runtime to display accurate version information, overriding hardcoded versions.

Updating Version

Use the provided script to bump the version automatically:

# Bump patch version (2.1.1 -> 2.1.2)
./scripts/bump-version.sh patch

# Bump minor version (2.1.1 -> 2.2.0)
./scripts/bump-version.sh minor

# Bump major version (2.1.1 -> 3.0.0)
./scripts/bump-version.sh major

This updates:

  • VERSION file
  • package.json (npm package version)
  • installers/install.sh (hardcoded version)
  • installers/install.ps1 (hardcoded version)

Manual Method

If updating manually, update version in ALL four locations:

  1. VERSION file:

    echo "2.4.6" > VERSION
    
  2. package.json (line 4):

    "version": "2.4.6",
    
  3. installers/install.sh (line ~34):

    CCS_VERSION="2.4.6"
    
  4. installers/install.ps1 (line ~33):

    $CcsVersion = "2.4.6"
    

Release Checklist

When releasing a new version:

  • Update version using ./scripts/bump-version.sh X.Y.Z
  • Review changes: git diff
  • Run comprehensive tests: npm test
  • Test both installation methods if applicable (Shell installers DEPRECATED)
  • Update CHANGELOG.md with release notes
  • Commit changes: git commit -am "chore: bump version to X.Y.Z"
  • Push: git push
  • Verify CloudFlare worker serves updated installer (Shell installers DEPRECATED)
  • Publish to npm: npm publish

Version Display

After installation, users can check version:

# Shows CCS version (from VERSION file if available)
ccs --version

# Shows Claude CLI version
ccs version

Semantic Versioning

CCS follows Semantic Versioning:

  • MAJOR (X.0.0): Breaking changes
  • MINOR (0.X.0): New features (backward compatible)
  • PATCH (0.0.X): Bug fixes

Current version: 2.4.4

  • 2.4.0: Code simplification (38% reduction, 1,315→813 lines)
  • 2.4.1: Postinstall script improvements
  • 2.4.2: Cross-compatibility testing framework
  • 2.4.3: Performance optimizations
  • 2.4.4: npm package testing enhancements
  • 2.4.4: Documentation updates and bug fixes

Version Detection Priority

Different installation methods display versions differently:

  1. Shell Installation: Reads VERSION file at runtime
  2. npm Package: Uses package.json version
  3. Git Installation: VERSION file overrides installer versions
  4. Fallback: Installer hardcoded version used if no VERSION file

All methods report the same version number when properly synchronized.