nebula-plugins / nebula-plugins/nebula-release-plugin

Using a different release branch naming convention

Open
#231 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Groovy
Stars
236
Forks
60
Avg merge
10m
Merged PRs (30d)
4

Description

I'm porting an existing set of projects to use nebula-release-plugin. Historically their release branch naming convention is release-x.y, for example release-3.2. The nebulaRelease extension allows you to set releaseBranchPatterns and that is helpful in it won't allow you to release from other branch names. However, setting releaseBranchPatterns does not change the list of branch patterns in NetflixOssStrategies.getScopes. Those strategies determine the default handling of version increments for snapshot, final, etc. The README.md talks about this:

We attempt to pick up on the fact that you're on certain release branches.

Examples:

On release/1.x - The plugin will default to versioning you 1.0.0-SNAPSHOT
On 3.x - The plugin will default to versioning you 3.0.0-SNAPSHOT
On 4.2.x - The plugin will default to versioning you 4.2.0-SNAPSHOT

The default versioning only works if you use branch names ending with .x.

Is there way to use our legacy branch naming convention and get the versioning behavior of the ReleasePlugin? I supposed I could start with BaseReleasePlugin and configure new strategies that use our legacy branch naming, but there is a huge gap between the base plugin and ReleasePlugin. I really want all of the goodness in ReleasePlugin just with this little tweak :)

Either way, thanks! I've been testing the plugin and checking out the code over the last few days and it's really impressive. I'm thankful that it exists.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with README.md and the nebulaRelease extension, then inspect NetflixOssStrategies.getScopes, BaseReleasePlugin, and ReleasePlugin to understand how branch patterns select versioning strategies. Done means legacy release-x.y branches receive the same snapshot, final, and increment behavior as the existing .x conventions without losing ReleasePlugin functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
groovy
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.