googleapis / googleapis/release-please-action
Calendar versioning (CalVer) alternatively to SemVer
- 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
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