Skip to content

Commit 0a4baed

Browse files
hanslvikerman
authored andcommitted
build: move release script to use the new version
1 parent 876c82e commit 0a4baed

1 file changed

Lines changed: 49 additions & 64 deletions

File tree

scripts/release.ts

Lines changed: 49 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -40,80 +40,65 @@ function _showVersions(logger: logging.Logger) {
4040
}
4141

4242

43-
function _upgrade(release: string, force: boolean, logger: logging.Logger) {
44-
for (const pkg of Object.keys(packages)) {
45-
const hash = packages[pkg].hash;
46-
const version = packages[pkg].version;
47-
const dirty = packages[pkg].dirty || force;
48-
let newVersion: string | null = version;
49-
50-
if (release == 'minor-beta') {
51-
if (dirty) {
52-
if (version.match(/-beta\.\d+$/)) {
53-
newVersion = semver.inc(version, 'prerelease');
54-
} else {
55-
newVersion = semver.inc(version, 'minor') + '-beta.0';
56-
}
57-
}
58-
} else if (release == 'minor-rc') {
59-
if (dirty) {
60-
if (version.match(/-rc/)) {
61-
newVersion = semver.inc(version, 'prerelease');
62-
} else if (version.match(/-beta\.\d+$/)) {
63-
newVersion = version.replace(/-beta\.\d+$/, '-rc.0');
64-
} else {
65-
newVersion = semver.inc(version, 'minor') + '-rc.0';
66-
}
67-
}
68-
} else if (release == 'major-beta') {
69-
if (dirty) {
70-
if (version.match(/-beta\.\d+$/)) {
71-
newVersion = semver.inc(version, 'prerelease');
72-
} else {
73-
newVersion = semver.inc(version, 'major') + '-beta.0';
74-
}
75-
}
76-
} else if (release == 'major-rc') {
77-
if (dirty) {
78-
if (version.match(/-rc/)) {
79-
newVersion = semver.inc(version, 'prerelease');
80-
} else if (version.match(/-beta\.\d+$/)) {
81-
newVersion = version.replace(/-beta\.\d+$/, '-rc.0');
82-
} else {
83-
newVersion = semver.inc(version, 'major') + '-rc.0';
84-
}
85-
}
86-
} else if (dirty || release !== 'patch') {
87-
newVersion = semver.inc(version, release as semver.ReleaseType);
43+
function _upgradeSingle(release: string, version: string): string {
44+
if (release == 'minor-beta') {
45+
if (version.match(/-beta\.\d+$/)) {
46+
return semver.inc(version, 'prerelease') || version;
47+
} else {
48+
return semver.inc(version, 'minor') ? semver.inc(version, 'minor') + '-beta.0' : version;
8849
}
89-
90-
let message = '';
91-
if (!(pkg in monorepo.packages)) {
92-
message = `${pkg} is new... setting v${newVersion}`;
93-
monorepo.packages[pkg] = {
94-
version: newVersion,
95-
hash: hash,
96-
};
97-
} else if (newVersion && version !== newVersion) {
98-
message = `${pkg} changed... updating v${version} => v${newVersion}`;
99-
monorepo.packages[pkg].version = newVersion;
100-
monorepo.packages[pkg].hash = hash;
50+
} else if (release == 'minor-rc') {
51+
if (version.match(/-rc/)) {
52+
return semver.inc(version, 'prerelease') || version;
53+
} else if (version.match(/-beta\.\d+$/)) {
54+
return version.replace(/-beta\.\d+$/, '-rc.0');
10155
} else {
102-
message = `${pkg} SAME: v${version}`;
56+
return semver.inc(version, 'minor') ? semver.inc(version, 'minor') + '-rc.0' : version;
10357
}
104-
105-
if (packages[pkg].private) {
106-
logger.debug(message);
58+
} else if (release == 'major-beta') {
59+
if (version.match(/-beta\.\d+$/)) {
60+
return semver.inc(version, 'prerelease') || version;
10761
} else {
108-
logger.info(message);
62+
return semver.inc(version, 'major') ? semver.inc(version, 'major') + '-beta.0' : version;
63+
}
64+
} else if (release == 'major-rc') {
65+
if (version.match(/-rc/)) {
66+
return semver.inc(version, 'prerelease') || version;
67+
} else if (version.match(/-beta\.\d+$/)) {
68+
return version.replace(/-beta\.\d+$/, '-rc.0');
69+
} else {
70+
return semver.inc(version, 'major') ? semver.inc(version, 'major') + '-rc.0' : version;
10971
}
72+
} else {
73+
return semver.inc(version, release as semver.ReleaseType) || version;
74+
}
75+
}
76+
77+
function _upgrade(release: string, logger: logging.Logger) {
78+
// Update stable.
79+
const stable = monorepo.versions.stable;
80+
const experimental = monorepo.versions.experimental;
81+
if (!stable) {
82+
throw new Error('Should have a version.stable key.');
83+
}
84+
if (!experimental) {
85+
throw new Error('Should have a version.experimental key.');
11086
}
87+
const newStable = _upgradeSingle(release, stable);
88+
const newExperimental = _upgradeSingle(release, experimental);
89+
monorepo.versions = {
90+
stable: newStable,
91+
experimental: newExperimental,
92+
};
93+
94+
logger.info(`Updated versions:`);
95+
logger.info(` stable: ${stable} => ${newStable}`);
96+
logger.info(` experimental: ${experimental} => ${newExperimental}`);
11197
}
11298

11399

114100
export interface ReleaseOptions {
115101
_: string[];
116-
'force'?: boolean;
117102
'dry-run'?: boolean;
118103
}
119104

@@ -133,7 +118,7 @@ export default function(args: ReleaseOptions, logger: logging.Logger) {
133118
case 'major':
134119
case 'minor':
135120
case 'patch':
136-
_upgrade(maybeRelease, args.force || false, logger);
121+
_upgrade(maybeRelease, logger);
137122
if (!dryRun) {
138123
fs.writeFileSync(path.join(__dirname, '../.monorepo.json'),
139124
JSON.stringify(monorepo, null, 2) + '\n');

0 commit comments

Comments
 (0)