@@ -4,16 +4,16 @@ const execa = require('execa');
4
4
const { VERSION_REGEX } = require ( './common' ) ;
5
5
6
6
const writeVersion = async ( { versionFile, nextVersion, logger, cwd } ) => {
7
+ // Rubygems replaces all `-` with `.pre.`, which causes odd version differences between tags/releases
8
+ // and the published gem version. Replacing `-` with `.` is a smaller difference.
9
+ const gemVersion = nextVersion . replace ( '-' , '.' ) ;
7
10
const fullVersionPath = path . resolve ( cwd , versionFile ) ;
8
11
const versionContents = await readFile ( fullVersionPath , 'utf8' ) ;
9
- const newContents = versionContents . replace (
10
- VERSION_REGEX ,
11
- // Rubygems replaces all `-` with `.pre.`, which causes odd version differences between tags/releases
12
- // and the published gem version. Replacing `-` with `.` is a smaller difference.
13
- `$1${ nextVersion . replace ( '-' , '.' ) } $2` ,
14
- ) ;
12
+ const newContents = versionContents . replace ( VERSION_REGEX , `$1${ gemVersion } $2` ) ;
15
13
logger . log ( 'Writing version %s to `%s`' , nextVersion , versionFile ) ;
16
14
await writeFile ( fullVersionPath , newContents , 'utf8' ) ;
15
+
16
+ return { gemVersion } ;
17
17
} ;
18
18
19
19
const bundleInstall = async ( { updateGemfileLock, cwd, env, logger, stdout, stderr } ) => {
@@ -43,13 +43,22 @@ module.exports = async function prepare(
43
43
{ nextRelease : { version } , cwd, env, logger, stdout, stderr } ,
44
44
{ versionFile, gemspec, gemName } ,
45
45
) {
46
- await writeVersion ( { versionFile, nextVersion : version , logger, cwd } ) ;
46
+ const { gemVersion } = await writeVersion ( { versionFile, nextVersion : version , logger, cwd } ) ;
47
47
48
48
if ( updateGemfileLock ) {
49
49
await bundleInstall ( { updateGemfileLock, cwd, env, logger, stdout, stderr } ) ;
50
50
}
51
51
52
- const gemFile = await buildGem ( { gemspec, gemName, version, cwd, env, logger, stdout, stderr } ) ;
52
+ const gemFile = await buildGem ( {
53
+ gemspec,
54
+ gemName,
55
+ version : gemVersion ,
56
+ cwd,
57
+ env,
58
+ logger,
59
+ stdout,
60
+ stderr,
61
+ } ) ;
53
62
54
63
return { gemFile } ;
55
64
} ;
0 commit comments