Uploaded image for project: 'Maven Release Plugin'
  1. Maven Release Plugin
  2. MRELEASE-956

Release Strategy Interface

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-M1
    • perform

    Description

      The release plugin has built-in strategies for preparation and performing of a release. For example, the strategy for preparation contains increasing versions numbers, comitting to SCM, tagging in SCM, and so.

      Not all users share the same strategies in real life. For example, some companies might want to have a tag AND and a branch created in SCM when preparing a release. Or other companies might want to have tag created for "prepared-release-1.0.0" at preparation, and replace it by "release-1.0.0" as part of release:perform.

      To provide better flexibility of such company-wide strategies, it might be a solution to introduce an interface "ReleaseStrategy" which acts as a worker for the prepare and perform goals (and possibly others). The current built-in strategy could be refactored to be a default-included "DefaultReleaseStrategy" for backwards compatibility, while users could configure a new property "releaseStrategy" to point to an Extension which provides a differently working strategy.

      To make this work, certainly the Strategy implementation needs to get passed a context which allows to fire actions like "tag version", "create branch", "change pom version" and so on, just as the current built-in strategy has.

      Attachments

        Issue Links

          Activity

            People

              rfscholte Robert Scholte
              mkarg Markus Karg
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: