Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version with branch name if not on master #466

Open
torsten-github opened this issue Jan 21, 2020 · 2 comments
Open

Version with branch name if not on master #466

torsten-github opened this issue Jan 21, 2020 · 2 comments

Comments

@torsten-github
Copy link

Describe your idea

A proeprty which displays the feature branch name. It's empty if on master. A leading dash is needed to use it as postfix.

Expected Behavior

Default Release is mostly: artifact-v1.0.0
Release on feature branch is now: artifact-v1.0.0-7
Better would be: artifact-v1.0.0-7-my-new-featuer

<version>${artifact-id}-${git.commit.id.describe-short}${git.feature.dashed}</version>

Additional context

Please also have a look at this tool, doing the same in the MS world:
https://gitversion.net/docs/more-info/variables

@TheSnoozer
Copy link
Collaborator

Hello,
thanks for opening your issue here.
That sounds like a very specific property and the properties linked in https://gitversion.net/docs/more-info/variables are also very specific to the branch or tagging pattern used. Not everyone uses or follows that pattern. However you still probability can get away by using the replacementProperties:

<replacementProperties>
  <!--
      example:
      apply replacement only to the specific property git.branch and replace '/' with '-'
      see also [issue 138](https://github.com/git-commit-id/maven-git-commit-id-plugin/issues/138)
  -->
  <replacementProperty>
    <property>git.branch</property>
    <propertyOutputSuffix>something</propertyOutputSuffix>
    <token>^([^\/]*)\/([^\/]*)$</token>
    <value>$1-$2</value>
    <regex>true</regex>
    <forceValueEvaluation>false</forceValueEvaluation>
  </replacementProperty>
</replacementProperties>

When looking at the https://gitversion.net/docs/more-info/variables it seems that all variables can be generated from InformationalVersion using regex expressions following a similar pattern.

@torsten-github
Copy link
Author

Thanks for the prompt feedback. That works.

Didn't know about the <replacementPrperty>. With them I managed to build the desired properties:

  • git.branch.feat // empty if master
  • git.branch.feat.dashed // prefixed with a dash if not empty

--
By the way:

I realize it's not that easy to build a semantic compatible version (https://semver.org/)
A tagged 1.2.3 with an additional commit would need to increment the patch part like:
1.2.4+1
On a branch: 1.2.4-feature-xyz+1

https://gitversion.net/docs/git-branching-strategies/githubflow-examples

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants