Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Check with 

    Code Block
    languagebash
    titleLocale Git environment check
    git config -l

    that user.email is the apache.org  user e-mail address.

  • Prepare a RC for voting: Start the Maven Release Process. Assert that you are on the master/trunk/main branch (check with git status or git branch)! Following we assume as an example performing a release turbine-parent pom component. Maven release:prepare adds by default a tag <project-artifact>-<version> = turbine-parent-9. We may want to add to the tag name a postfix "-candidate".  If the voting process is done, and it is successfull, we have to rename the tag or if we want rather to have a branch, we name this new branch exactly like the released component to avoid to have a duplicate tag name (which is actually just a named commit). In this case we would keep the candidate tag name or delete it at all (you may want to check all of this with -DdryRun=true). 

    Code Block
    languagebash
    titleMaven Release
    mvn release:prepare -Papache-release -Dtag=turbine-parent-9-candidate
    // N.B. mvn release:branch seems not very appropriate, 
    mvn release:perform

    Find more details about maven release for multi module projects here (Fulcrum Build)

  • After voting is successfull, do one of the following steps:

    • Rename tag for Fulcrum Component foo

      Code Block
      languagebash
      titleRename git tag after voting
      // local
      :
      git tag turbine-parent-<version> turbine-parent<foo>-<version><foo>-<version>-candidate
      git tag -d turbine-parent<foo>-<version>-candidate
      
      // remote
      // add new tag and delete old tag (colon prefix is a shortcut for delete!)
      git push origin turbine-parent<foo>-<version> :<foo>-<version>-candidate
      
      // :turbine-parent.. output ..
      // To https://gitbox.apache.org/repos/asf/<foo>.git
      // - [deleted]         <foo>-<version>-candidate
      // * [new tag]         <foo>-<version> -> <foo>-<version>
      
        // others have to do this also
      git pull --prune --tags


    • Create a release branch a We assume, that the release is created from the master/main/trunk branch and a release branch will be created later for a maintenance release. Explicit git commands for this (with checks): 

      Code Block
      languagebash
      titleRelease branch
      git branch -a
      git tag -l
      // tag name = turbine-parent-<version>-candidate
      git checkout turbine-parent-<version>-candidate
      // create a branch from tag commit
      git checkout -b turbine-parent-<version>
      git push -u origin turbine-parent-<version>


...