From b5d835e14c947d2d2eba70f09b778e8f9f71e3b0 Mon Sep 17 00:00:00 2001 From: Rene Weteling Date: Tue, 21 Dec 2021 09:51:55 +0100 Subject: [PATCH 1/2] fix(gemspec): build the gemfile with the correct name --- src/prepare.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/prepare.js b/src/prepare.js index 5b52c73..74c344e 100644 --- a/src/prepare.js +++ b/src/prepare.js @@ -31,7 +31,7 @@ const buildGem = async ({ gemspec, gemName, version, cwd, env, logger, stdout, s const gemFile = `${gemName}-${version}.gem`; // TODO: Parse the gem file name from the output? logger.log('Building gem `%s`', gemFile); - const buildResult = execa('gem', ['build', gemspec], { cwd, env }); + const buildResult = execa('gem', ['build', gemspec, '-o', gemFile], { cwd, env }); buildResult.stdout.pipe(stdout, { end: false }); buildResult.stderr.pipe(stderr, { end: false }); await buildResult; From 4b0ba9c0db4a325cd8f006a9bd1fcc3077a7660c Mon Sep 17 00:00:00 2001 From: Rene Weteling Date: Tue, 21 Dec 2021 14:18:05 +0100 Subject: [PATCH 2/2] fix: also update the gemspec version --- src/prepare.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/prepare.js b/src/prepare.js index 74c344e..73b378b 100644 --- a/src/prepare.js +++ b/src/prepare.js @@ -4,7 +4,7 @@ const execa = require('execa'); const { move } = require('fs-extra'); const { VERSION_REGEX } = require('./common'); -const writeVersion = async ({ versionFile, nextVersion, logger, cwd }) => { +const writeVersion = async ({ versionFile, nextVersion, logger, cwd, gemspec }) => { // Rubygems replaces all `-` with `.pre.`, which causes odd version differences between tags/releases // and the published gem version. Replacing `-` with `.` is a smaller difference. const gemVersion = nextVersion.replace('-', '.'); @@ -14,6 +14,12 @@ const writeVersion = async ({ versionFile, nextVersion, logger, cwd }) => { logger.log('Writing version %s to `%s`', nextVersion, versionFile); await writeFile(fullVersionPath, newContents, 'utf8'); + const fullGemSpecPath = path.resolve(cwd, gemspec); + const gemSpecContents = await readFile(fullGemSpecPath, 'utf8'); + const newGemSpecContents = gemSpecContents.replace(/(.version\s+=\s)(.+)/, `$1'${gemVersion}'`); + logger.log('Writing gemspec %s to `%s`', nextVersion, gemspec); + await writeFile(fullGemSpecPath, newGemSpecContents, 'utf8'); + return { gemVersion }; }; @@ -44,7 +50,7 @@ module.exports = async function prepare( { nextRelease: { version }, cwd, env, logger, stdout, stderr }, { versionFile, gemspec, gemName }, ) { - const { gemVersion } = await writeVersion({ versionFile, nextVersion: version, logger, cwd }); + const { gemVersion } = await writeVersion({ versionFile, nextVersion: version, logger, cwd, gemspec }); if (updateGemfileLock) { await bundleInstall({ updateGemfileLock, cwd, env, logger, stdout, stderr });