From: Doug Coleman Date: Thu, 25 Aug 2022 02:12:35 +0000 (-0400) Subject: semver: fix semver-inc-patch, add some unit tests X-Git-Tag: 0.99~1109 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=cda1e5f9ad1d6b55077b7a88f18e89e882e8ffef semver: fix semver-inc-patch, add some unit tests --- diff --git a/extra/semver/semver-tests.factor b/extra/semver/semver-tests.factor index ce459ccb15..0e7effe575 100644 --- a/extra/semver/semver-tests.factor +++ b/extra/semver/semver-tests.factor @@ -141,3 +141,14 @@ CONSTANT: semver-gt-comparisons { values [ +lt+ = ] all? ] unit-test +{ "1.2.4-dev.0" } [ "1.2.3" semver-inc-prepatch semver>string ] unit-test +{ "1.2.4" } [ "1.2.3" semver-inc-patch semver>string ] unit-test + +{ "1.3.0-dev.0" } [ "1.2.3" semver-inc-preminor semver>string ] unit-test +{ "1.3.0" } [ "1.2.3" semver-inc-minor semver>string ] unit-test + +{ "2.0.0-dev.0" } [ "1.2.3" semver-inc-premajor semver>string ] unit-test +{ "2.0.0-dev.1" } [ "1.2.3" semver-inc-premajor semver-inc-prerelease semver>string ] unit-test +{ "2.0.0" } [ "1.2.3" semver-inc-major semver>string ] unit-test + +{ "1.2.3-erg.0" } [ "1.2.3" "erg" semver-inc-prerelease-id semver>string ] unit-test diff --git a/extra/semver/semver.factor b/extra/semver/semver.factor index 6826136065..92f3f998dd 100644 --- a/extra/semver/semver.factor +++ b/extra/semver/semver.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2020 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays assocs combinators combinators.smart +USING: accessors arrays assocs combinators combinators.smart io kernel math math.order math.parser multiline peg.ebnf sequences sequences.deep sequences.extras splitting strings ; IN: semver @@ -32,6 +32,8 @@ TUPLE: semver [ "." split [ string>number ] map first3 ] 2dip semver boa ; +: ( str -- semver ) parse-semver ; inline + : first-semver-slot ( semver -- class ) { { [ dup major>> 0 > ] [ drop major ] } @@ -63,6 +65,9 @@ TUPLE: semver } cleave ] "" append-outputs-as ; +: semver. ( semver -- ) + semver>string print ; + : semver-inc-major ( semver -- semver ) dup prerelease>> [ [ 1 + ] change-major @@ -91,7 +96,6 @@ TUPLE: semver : semver-inc-patch ( semver -- semver ) dup prerelease>> [ [ 1 + ] change-patch - 0 >>patch "" >>prerelease "" >>build ] [