Skip to content

Commit a4c39a0

Browse files
feat: support release inc operations
1 parent 775f4a5 commit a4c39a0

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

include/version_weaver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ enum release_type {
9898
PRE_MAJOR,
9999
PRE_MINOR,
100100
PRE_PATCH,
101+
RELEASE,
101102
// TODO: also support
102-
// - RELEASE
103103
// - PRE_RELEASE
104104
};
105105

src/version_weaver.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ std::expected<std::string, parse_error> inc(version input,
8484
result = version_weaver::version{input.major, input.minor, incremented};
8585
break;
8686
}
87+
case RELEASE: {
88+
if (!input.pre_release.has_value()) {
89+
return std::unexpected(parse_error::INVALID_INPUT);
90+
}
91+
return version_weaver::version{input.major, input.minor, input.patch};
92+
};
8793
default:
8894
return std::unexpected(parse_error::INVALID_RELEASE_TYPE);
8995
}

tests/basictests.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,18 @@ std::vector<IncTestData> inc_values = {
244244
{version_weaver::version{"1", "2", "0", "1"}, "1.2.0-1",
245245
version_weaver::release_type::PRE_PATCH, "1.2.1-0",
246246
version_weaver::version{"1", "2", "1", "0"}},
247+
{version_weaver::version{"1", "0", "0", "1"}, "1.0.0-1",
248+
version_weaver::release_type::RELEASE, "1.0.0",
249+
version_weaver::version{"1", "0", "0"}},
250+
{version_weaver::version{"1", "2", "0", "1"}, "1.2.0-1",
251+
version_weaver::release_type::RELEASE, "1.2.0",
252+
version_weaver::version{"1", "2", "0"}},
253+
{version_weaver::version{"1", "2", "3", "1"}, "1.2.3-1",
254+
version_weaver::release_type::RELEASE, "1.2.3",
255+
version_weaver::version{"1", "2", "3"}},
256+
{version_weaver::version{"1", "2", "3"}, "1.2.3",
257+
version_weaver::release_type::RELEASE, "1.2.3",
258+
std::unexpected(version_weaver::parse_error::INVALID_INPUT)},
247259
};
248260

249261
TEST(basictests, inc) {

0 commit comments

Comments
 (0)