PicketLink 2.1.x release procedure


    • your local git repository has following remotes:
    $ git remote -v show
    origin  git@github.com:<git_user>/federation.git (fetch)
    origin  git@github.com:<git_user>/federation.git (push)
    rhgit   git+ssh://git.app.eng.bos.redhat.com/srv/git/picketlink/federation.git (fetch)
    rhgit   git+ssh://git.app.eng.bos.redhat.com/srv/git/picketlink/federation.git (push)
    upstream        git@github.com:picketlink/federation.git (fetch)
    upstream        git@github.com:picketlink/federation.git (push)


    Pre-release steps:

    use this section when you don't have latest changes from upstream repository


    1. fetch the latest changes from upstream remote repository using: git fetch upstream
    2. make sure you are in master branch by git checkout master
    3. rebase mater to upstream/master using git rebase -i upstream/master
    4. inspect master branch using for example gitk --all
      Find exact commit you want to place your master pointer at.
    5. Move master pointer to the commit selected from previous step.
      git reset --hard <commit>
      It can be done directly from gitk right-clicking desired commit line and selecting "Reset master branch to here". Choose hard mode.
      Make sure you have no uncomited changes, because they will go away ;-)



    Ensure that you have created a JIRA release task such as https://issues.jboss.org/browse/PLFED-297


    Release: git repo part

    if your master is already at last commit you want to release


    1. change <version> in all appropriate files:
      perl -pi -e 's/2.1.0-SNAPSHOT/2.1.0.Final/g' `find . -name \*.xml -or -name \*.java`
    2. do mvn clean install to see if all is OK.
    3. if all is OK, commit the changes git commit -m "release version change: 2.1.0.Final"
    4. tag the release: git tag -a v2.1.0.Final -m 'version 2.1.0.Final'
    5. eventually merge commits left aside in pre-release steps to master
      1. push all changes in master upstream: git push --tags upstream master
    6. push all changes in master to rhgit (internal git repository): git push --tags rhgit master


    Release: push artifacts to JBoss Nexus Repository

    <Anil, can you please fill this part?>



    Party time:

    Spread the word about new release.

    - user forum, blog, the core, twitter, G+, #whateveryouareusing

    - in case of twitter consider: direct message @JBossNews to get a release pushed on all the social media streams