Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/allegro/axion-release-plugin
Gradle release & version management plugin.
https://github.com/allegro/axion-release-plugin
gradle gradle-plugin gradle-release hacktoberfest release release-automation semantic-versioning versioning
Last synced: 5 days ago
JSON representation
Gradle release & version management plugin.
- Host: GitHub
- URL: https://github.com/allegro/axion-release-plugin
- Owner: allegro
- License: apache-2.0
- Created: 2014-09-16T09:09:16.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2025-01-13T13:27:14.000Z (16 days ago)
- Last Synced: 2025-01-17T02:03:28.222Z (12 days ago)
- Topics: gradle, gradle-plugin, gradle-release, hacktoberfest, release, release-automation, semantic-versioning, versioning
- Language: Groovy
- Homepage: https://axion-release-plugin.readthedocs.io/
- Size: 2.69 MB
- Stars: 570
- Watchers: 15
- Forks: 157
- Open Issues: 89
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
axion-release-plugin
====*gradle release and version management plugin*
[![Build Status](https://github.com/allegro/axion-release-plugin/actions/workflows/ci.yml/badge.svg)](https://github.com/allegro/axion-release-plugin/actions/workflows/ci.yml)
[![readthedocs](https://readthedocs.org/projects/axion-release-plugin/badge/?version=latest) ](http://axion-release-plugin.readthedocs.org/en/latest/)
![Maven Central](https://img.shields.io/maven-central/v/pl.allegro.tech.build/axion-release-plugin)
[![Gradle Plugin Portal](https://img.shields.io/gradle-plugin-portal/v/pl.allegro.tech.build.axion-release?versionPrefix=1.1)](https://plugins.gradle.org/plugin/pl.allegro.tech.build.axion-release)Releasing versions in Gradle is very different from releasing in Maven. Maven came with
[maven-release-plugin](http://maven.apache.org/maven-release/maven-release-plugin/) which
did all the dirty work. Gradle has no such tool and probably doesn't need it anyway. Evolution of software craft came
to the point, when we start thinking about SCM as ultimate source of truth about project version. Version should not be
hardcoded in **pom.xml** or **build.gradle**.**axion-release-plugin** embraces this philosophy. Instead of reading project version from buildfile, it is derived
from nearest tag in SCM (or set to default if nothing was tagged). If current commit is tagged commit, project has
a release version. If there were any commits after last tag, project is in SNAPSHOT version. This very simple and
intuitive philosophy, alongside with [Semantic Versioning](http://semver.org/) rules, makes it a lot easier to manage
project versions along SCM tag versions.JDK11+ & Gradle 7+ required.
## Basic usage
```kotlin
plugins {
id("pl.allegro.tech.build.axion-release") version "1.18.7"
}version = scmVersion.version
``````
$ git tag$ ./gradlew currentVersion
0.1.0-branch-SNAPSHOT$ ./gradlew release
$ git tag
v0.1.0$ ./gradlew cV
0.1.0$ git add -A && git commit -m "Updates something" && ./gradlew release
$ git tag
v0.1.0
v0.1.1$ ./gradlew cV
0.1.1
```## Documentation
Documentation is available at [axion-release read the docs](https://readthedocs.org/docs/axion-release-plugin/en/latest).
## License
**axion-release-plugin** is published under [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).