There are teams that prefer to cut release "on demand", rather than with every change on master (example: linkedin/li-apache-kafka-clients, mockito-kotlin). Those teams are not supported cleanly by our plugin.
Problem statement: how do we enable teams to release on demand and provide automated changelog?
❓ Options
- a) keep shipkit-auto-version simple, let other plugins solve this use case. Problem: allegro/axion-release-plugin does not expose previous version information cleanly and it is necessary for automated changelog.
- b) enhance shipkit-auto-version to support picking the version directly from annotated tag.
💡Solution discussion:
- a) is preferred to keep shipkit-auto-version laser focused and reduce future maintenance. However, I was not able to cleanly enhance axion plugin to expose previous version information.
- b) can be designed as a simple enhancement to shipkit-auto-version ⬇️
🌱 Implementation overview:
- missing
version.properties file or missing version property is allowed and signals simplified behavior of our plugin (currently, the file and property are required).
- our plugin deducts current version this way:
- if we checked out a tag (
git checkout 1.2.3), pick that version: 1.2.3
- To find out if git repo is checked out to a tag, we can run
git describe --tags
- if we checkout out a branch (
git checkout main), pick the highest tag
- no counting commits logic is necessary in this simplified behavior
🌎 Long term goals:
- should we deprecate functionality ⬆️ when axion plugin supports previous version information? No. Shipkit-auto-version will continue to support the basic use case described in this ticket. We endorse axion plugin for complex use cases not supported out of the box by shipkit-auto-version. However, we encourage build experts to keep their automation simple (KISS 💋).
There are teams that prefer to cut release "on demand", rather than with every change on master (example: linkedin/li-apache-kafka-clients, mockito-kotlin). Those teams are not supported cleanly by our plugin.
Problem statement: how do we enable teams to release on demand and provide automated changelog?
❓ Options
💡Solution discussion:
🌱 Implementation overview:
version.propertiesfile or missingversionproperty is allowed and signals simplified behavior of our plugin (currently, the file and property are required).git checkout 1.2.3), pick that version:1.2.3git describe --tagsgit checkout main), pick the highest tag🌎 Long term goals: