@@ -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 ( / - b e t a \. \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 ( / - r c / ) ) {
61- newVersion = semver . inc ( version , 'prerelease' ) ;
62- } else if ( version . match ( / - b e t a \. \d + $ / ) ) {
63- newVersion = version . replace ( / - b e t a \. \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 ( / - b e t a \. \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 ( / - r c / ) ) {
79- newVersion = semver . inc ( version , 'prerelease' ) ;
80- } else if ( version . match ( / - b e t a \. \d + $ / ) ) {
81- newVersion = version . replace ( / - b e t a \. \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 ( / - b e t a \. \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 ( / - r c / ) ) {
52+ return semver . inc ( version , 'prerelease' ) || version ;
53+ } else if ( version . match ( / - b e t a \. \d + $ / ) ) {
54+ return version . replace ( / - b e t a \. \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 ( / - b e t a \. \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 ( / - r c / ) ) {
66+ return semver . inc ( version , 'prerelease' ) || version ;
67+ } else if ( version . match ( / - b e t a \. \d + $ / ) ) {
68+ return version . replace ( / - b e t a \. \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
114100export 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