- Fix version-check.js to use git tag version for releases - Add new-version.js script for proper version/tag synchronization - Update package.json to correct version 1.1.0 The new-version.js script ensures package.json and git tags are always synchronized by: 1. Updating package.json with new version 2. Committing the change 3. Tagging the commit This prevents version mismatches and git dirty states.
49 lines
1.6 KiB
JavaScript
Executable File
49 lines
1.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const { execSync } = require('child_process');
|
|
|
|
// Read package.json for base version
|
|
const packagePath = './package.json';
|
|
const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
|
|
let version = pkg.version;
|
|
let isRelease = false;
|
|
|
|
try {
|
|
// Check if current commit is tagged
|
|
const gitTag = execSync('git tag --points-at HEAD', { encoding: 'utf8' }).trim();
|
|
|
|
if (gitTag) {
|
|
// We're at a tagged commit - extract version from tag
|
|
const tagVersion = gitTag.replace(/^v/, ''); // Remove 'v' prefix if present
|
|
version = tagVersion;
|
|
console.log(`✅ Building release version ${version} (tagged: ${gitTag})`);
|
|
isRelease = true;
|
|
} else {
|
|
// We're not at a tagged commit - add -dev suffix
|
|
version = `${version}-dev`;
|
|
console.log(`📦 Building development version ${version}`);
|
|
isRelease = false;
|
|
}
|
|
} catch (error) {
|
|
// Git command failed (maybe not in a git repo)
|
|
version = `${version}-dev`;
|
|
console.log(`⚠️ Cannot determine git status, using development version ${version}`);
|
|
isRelease = false;
|
|
}
|
|
|
|
// Generate version.js file
|
|
const versionFile = path.join('./src', 'version.js');
|
|
const versionContent = `// Auto-generated version file - do not edit manually
|
|
// Generated at: ${new Date().toISOString()}
|
|
|
|
export const VERSION = '${version}';
|
|
export const IS_RELEASE = ${isRelease};
|
|
export const BUILD_TIME = '${new Date().toISOString()}';
|
|
`;
|
|
|
|
fs.writeFileSync(versionFile, versionContent);
|
|
console.log(`📝 Generated ${versionFile} with version ${version}`);
|