From 69eaf982a4ed26226c3b27596ee5a7aba66d2614 Mon Sep 17 00:00:00 2001 From: Pete Cook Date: Wed, 10 Jul 2019 21:34:01 +0100 Subject: [PATCH] Infer semver versions from numeric tags Fixes https://github.com/CookPete/auto-changelog/issues/126 --- src/releases.js | 8 ++------ test/releases.js | 2 ++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/releases.js b/src/releases.js index 009c3f5e..576d7108 100644 --- a/src/releases.js +++ b/src/releases.js @@ -3,7 +3,6 @@ import { niceDate } from './utils' const MERGE_COMMIT_PATTERN = /^Merge (remote-tracking )?branch '.+'/ const COMMIT_MESSAGE_PATTERN = /\n+([\S\s]+)/ -const NUMERIC_PATTERN = /^\d+(\.\d+)?$/ export function parseReleases (commits, remote, latestVersion, options) { let release = newRelease(latestVersion) @@ -53,9 +52,6 @@ export function sortReleases (a, b) { if (semver.valid(tags.a) && semver.valid(tags.b)) { return semver.rcompare(tags.a, tags.b) } - if (NUMERIC_PATTERN.test(tags.a) && NUMERIC_PATTERN.test(tags.b)) { - return parseFloat(tags.a) < parseFloat(tags.b) ? 1 : -1 - } if (tags.a === tags.b) { return 0 } @@ -67,11 +63,11 @@ export function sortReleases (a, b) { } function inferSemver (tag) { - if (/^v\d+$/.test(tag)) { + if (/^v?\d+$/.test(tag)) { // v1 becomes v1.0.0 return `${tag}.0.0` } - if (/^v\d+\.\d+$/.test(tag)) { + if (/^v?\d+\.\d+$/.test(tag)) { // v1.0 becomes v1.0.0 return `${tag}.0` } diff --git a/test/releases.js b/test/releases.js index 128dc79e..37b2062c 100644 --- a/test/releases.js +++ b/test/releases.js @@ -120,6 +120,8 @@ describe('sortReleases', () => { expect(sortReleases({ tag: '22.0' }, { tag: '22.1' })).to.equal(1) expect(sortReleases({ tag: '123.0' }, { tag: '22.1' })).to.equal(-1) expect(sortReleases({ tag: '0.1' }, { tag: '0.01' })).to.equal(-1) + expect(sortReleases({ tag: '0.14' }, { tag: '0.2' })).to.equal(-1) + expect(sortReleases({ tag: '0.2' }, { tag: '0.14' })).to.equal(1) }) it('supports partial semver tags', () => {