googleapis / googleapis/release-please-action

Calendar versioning (CalVer) alternatively to SemVer

Open
#1,053 1 comment 25 reactions 0 assignees View on GitHub
priority: p3 type: feature request
Dominant language
TypeScript
Stars
2.5k
Forks
327
PR merge metrics
No merged PRs in 30d

Description

# Calendar Versioning

I would like to propose for the `release-please` to support the Calendar Versioning (CalVer) approach as a seemingly popular alternative to SemVer.\
https://calver.org/

## Motivation

To my understanding, `release-please` is one of the most universal, functional and well-established release automation tools in the GitHub Actions ecosystem.
Many people actively use it and create their instruments inspired by this one.
I might assume that current and potential users may significantly benefit from CalVer adoption while still having all the functionality already in the tool.

## Alternatives

I can see how CalVer formats as `YY.MM.DD-modifier` can be simulated by enforcing version numbers through the `Release-as:` line in commits.
But this is, well, manual, i.e., it lacks automation such as auto-filling the dates.
Also, it seems to be impossible to use zero-padded blocks that way.

The generalized alternative would be to implement other popular versioning systems as well.

## Discussion

The upsides and downsides of different software versioning systems seem to be being actively discussed nowadays.
The corresponding Google search shows such blog posts among the top results regarding CalVer.\
https://www.google.com/search?q=calendar+versionng

But the most extensive discussion these days is around SemVer in the first place as the most widespread one. Seemingly, different versioning systems suit the best for different kinds of software and development cycles.

At the same time, the CalVer approach seems to be a pretty popular alternative, as showcased at [calver.org](https://calver.org/): Ubuntu, PyCharm, Unity, etc.
The lack of mature open-source tooling feels disproportional.

Contributor guide

Open the contributing guide

Research direction

No implementation files, tests, or entry points are identified in the issue. Start by locating release-please's existing SemVer handling and determine how CalVer formats, date autofill, zero-padding, and modifiers should fit the current release workflow; done means automated CalVer releases work without losing existing functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
devops, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.