apache / apache/maven-release

[MRELEASE-560] Check for changed subprojects (in multimodule projects) and release only the projects which have changed

Open
#788 0 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

**[Peter Simon](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=molotov)** opened **[MRELEASE-560](https://issues.apache.org/jira/browse/MRELEASE-560?redirect=false)** and commented

This feature makes it possible for multimodule projects to configure if the subprojects that have no changes since the last release shell be released or not. By setting the argument -DreleaseOnlyChanged=true only the changed submodules will be released (default -DreleaseOnlyChanged=false).
To compare the workingcopy with the last release, the poms are modified by adding a property lastReleaseRev which contains the revision of the last release. If this property doesn't exist (as it is for the first release) the project will be released.
If only the changed subprojects shall be released, the different phases (f.ex. RewritePomsPhase) will be skipped for those projects.

This patch also includes the patch for MRELEA[SE-550](https://issues.apache.org/jira/browse/SE-550).

---

**Affects:** 2.1

**Attachments:**
- [releaseOnlyChangedProjects.patch](https://issues.apache.org/jira/secure/attachment/12718170/releaseOnlyChangedProjects.patch) (_36.52 kB_)

1 votes, 2 watchers

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the attached releaseOnlyChangedProjects.patch and the release phases, especially RewritePomsPhase. Trace how multimodule POMs are modified and how the releaseOnlyChanged argument is handled. Done means unchanged subprojects skip release phases while first releases and changed projects still release normally.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.