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.
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:
VERSION- Primary version file (read by shell scripts at runtime)package.json- npm package version (for npm installations)installers/install.sh- Hardcoded for standalone installations (curl | bash)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 | bashirm 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
Automated Method (Recommended)
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:
-
VERSION file:
echo "2.4.6" > VERSION -
package.json (line 4):
"version": "2.4.6", -
installers/install.sh (line ~34):
CCS_VERSION="2.4.6" -
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:
- Shell Installation: Reads VERSION file at runtime
- npm Package: Uses package.json version
- Git Installation: VERSION file overrides installer versions
- Fallback: Installer hardcoded version used if no VERSION file
All methods report the same version number when properly synchronized.