nielsbasjes commented on PR #104:
URL: https://github.com/apache/maven-release/pull/104#issuecomment-1140416016

   > > The Conventional Commits part has specific configuration. That "next 
version calculator" is a plugin for the maven-release plugin.
   > 
   > I know see, it is not a plugin in Maven sense, since it is not a Maven 
plugin with mojos. 
   
   Correct, this VersionPolicy is not a maven plugin, and as a consequence my 
editor (IntelliJ) does not support me in setting the right options.
   
   > You simply provide a new implementation for an interface pluggable at 
runtime, no?
   
   Yes, and for this implementation there can be implementation specific 
configuration. I would like to offer settings configuration in the pom.xml of 
the project at hand.
   Right now (and this is the best I was able to get running) you can see in 
`maven-release-plugin/src/it/projects/prepare/ccsemver-policy/pom.xml` that the 
config for this VersionPolicy is a single string in projectVersionPolicyConfig 
which contains an XML as CDATA... which I don't really like.
   
   My question is simply: Is there a better way to do this?
   
   ```
   <configuration>
     <projectVersionPolicyId>CCSemVerVersionPolicy</projectVersionPolicyId>
   
     <!-- projectVersionPolicyConfig is an XML structure:  -->
     <!-- versionTag: A regex with 1 capture group that MUST extract the 
project.version from the SCM tag. -->
     <!-- minorRules: A list regexes that will be matched against all lines in 
each commit message since   -->
     <!--             the last tag. If matched the next version is at least a 
MINOR update.                -->
     <!-- majorRules: A list regexes that will be matched against all lines in 
each commit message since   -->
     <!--             the last tag. If matched the next version is at least a 
MAJOR update.                -->
     <!-- If a match is found the commit will trigger either a minor or major 
version increase             -->
     <!-- instead of only a patch increase.  -->
     <projectVersionPolicyConfig>
       <![CDATA[
       <cCSemverConfig>
         <versionTag>^v([0-9]+(?:\.[0-9]+(?:\.[0-9]+)?)?)$</versionTag>
         <majorRules>
           <majorRule>^[a-zA-Z]+!(?:\([a-zA-Z0-9_-]+\))?: .*$</majorRule>
           <majorRule>^BREAKING CHANGE:.*$</majorRule>
         </majorRules>
         <minorRules>
           <minorRule>^feat(?:\([a-zA-Z0-9_-]+\))?: .*$</minorRule>
         </minorRules>
       </cCSemverConfig>
       ]]>
     </projectVersionPolicyConfig>
   
   </configuration>
   ```
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to