Skip to content

Commit 4a08ee8

Browse files
feat: support release inc operations
1 parent 391a662 commit 4a08ee8

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
@@ -83,6 +83,12 @@ std::expected<std::string, parse_error> inc(version input,
8383
std::to_string(incremented_patch_int)};
8484
break;
8585
}
86+
case RELEASE: {
87+
if (!input.pre_release.has_value()) {
88+
return std::unexpected(parse_error::INVALID_INPUT);
89+
}
90+
return version_weaver::version{input.major, input.minor, input.patch};
91+
};
8692
default:
8793
return std::unexpected(parse_error::INVALID_RELEASE_TYPE);
8894
}

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)