async run({v1}) { const semver = require('semver'); const {loadVersions} = require('../utils/version'); const instance = this.system.getInstance(); if (instance.version) { const {latest, latestMajor} = await loadVersions(); const versionToCheck = v1 ? latestMajor.v1 : latest; if (semver.gt(versionToCheck, instance.version)) { const diff = semver.diff(instance.version, versionToCheck); this.ui.log(`New ${diff} version available: ${versionToCheck}`); } } }
checkActiveVersion(activeVersion, versionToUse, latestV1, opts = {}) { const activeMajor = semver.major(activeVersion); if (opts.v1 && activeMajor > 1) { throw new CliError({ message: 'The --v1 flag was provided, but the current version of Ghost is v2 or greater', help: 'Re-run the command without the --v1 flag', log: false }); } if (semver.lte(versionToUse, activeVersion) && !opts.force) { return null; } if (activeMajor === 1 && activeVersion !== latestV1 && semver.diff(activeVersion, versionToUse) === 'major') { const majorToUse = semver.major(versionToUse); throw new CliError({ message: `You are trying to update to Ghost v${majorToUse}, but your blog is not on the latest Ghost 1.0 version`, help: 'Instead run "ghost update v1".' }); } return versionToUse; }
/** * Publishes a package to NPM, if its version has changed */ export async function npmPublish(opts: Options = {}): Promise<Results> { let options = normalizeOptions(opts); // Get the old and new version numbers let manifest = await readManifest(options.package, options.debug); let publishedVersion = await npm.getLatestVersion(manifest.name, options); // Determine if/how the version has changed let diff = semver.diff(manifest.version, publishedVersion); if (diff || !options.checkVersion) { // Publish the new version to NPM await npm.publish(manifest, options); } let results: Results = { package: manifest.name, type: diff || "none", version: manifest.version.raw, oldVersion: publishedVersion.raw, dryRun: options.dryRun }; options.debug("OUTPUT:", results); return results; }
if (parsed.prerelease.length && (!usePre || useRel)) continue; const diff = semver.diff(tempVersion, parsed.version); if (!diff || !semvers.has(diff)) continue;
(['patch', 'prepatch', 'prerelease', 'minor'].indexOf(semver.diff(database, code)) === -1) ) { unlock(function() {
version: current.version, peers: Object.keys(latest.peerDependencies || {}), diff: semver.diff(current.version, latest.version), targetVersion: latest.version, repo,
const diff = semver.diff(oldVersion, latestTag); if (diff && diff !== "prerelease" && !opts.semvers.has(diff.replace(/^pre/, ""))) { return version;
let semverDiff = null; try { semverDiff = semver.diff(oldVersion, newVersion); if (semverDiff === 'patch') { title = title.green;