apache / apache/maven-release

[MRELEASE-954] maven-release-plugin should push less often to git server

Open
#1,134 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
128
Forks
145
Avg merge
7h 7m
Merged PRs (30d)
3

Description

**[Markus Karg](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=mkarg)** opened **[MRELEASE-954](https://issues.apache.org/jira/browse/MRELEASE-954?redirect=false)** and commented

mvn release:prepare runs three times git push which is bad:

A single push at the end is enough to bring all commits and tags to the server finally
It consumes more time than essentially necessary
It is risky, because in case the first POM change A-SNAPSHOT -> A is pushed to the server but an error happens (bug in plugin, crash of client, whatever) then a "half prepared" state is on the server (the second POM change A -> B-SNAPSHOT is missing) and you cannot auto-recover from that without manual action (as mvn release:clean does not undo the tag). If there is only one single push at the end, then EVERYTHING, two commits and a tag, is pushed as a single transaction to the server, which is much better!

---

**Affects:** 2.5.3

**Issue Links:**
- [SCM-970](https://issues.apache.org/jira/browse/SCM-970) Have separate APIs for distributed and centralized version control
(_**"depends upon"**_)

5 votes, 4 watchers

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the maven-release-plugin entry point mvn release:prepare and trace its SCM interactions. Read the linked SCM-970 dependency before changing behavior. Done means the prepare workflow performs one final push containing both commits and the tag, without leaving a partially prepared remote state.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, java
Domain
build-system, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.