Once the release criteria have been met, which will minimally include no test failures and no unresolved issues, the following can be used from your current working copy to create the target release.
If there have been grammar changes, the reference grammar confluence page should be updated with the changes. Currently this is done as a manual process using a customized wiki version of the jjdoc output. Adding the attached patch to the jjdoc classpath will instead produce wiki markup output. This output will need to replace the grammar page. At some point we will want to stop using the generated approach as output is somewhat lacking (non-reserved words are not displayed, there are no comments, etc.).
Update the release notes detailed section with the appropriate release notes from JIRA.
NOTE: if you have not created your own settings.xml for maven, then your maven commands below will need an additional -s settings.xml when executed from the root of the Teiid project.
NOTE: there is an enforcer issue that the initial release:prepare will not complete. After the poms have been modified simply perform a full build and then re-run release:prepare
Do a dry run of the release process:
$mvn -DautoVersionSubmodules=true -DMAVEN_OPTS=-XX:MaxPermSize=384m -DdryRun=true -P release clean package release:prepare
$mvn -DdryRun=true -P release release:clean
If not already explicitly on the appropriate branch, use you should perform a "git checkout <branch>" and make sure you a rebased to HEAD.
If you are performing a release from an SVN branch and using Maven 3, the root pom scm links must be to the appropriate branch, e.g. <developerConnection>scm:svn:https://svn.jboss.org/repos/teiid/branches/<version></developerConnection>
Prepare the release, which will actually create the tag with modified poms and update the current working copy poms to the next version:
$mvn -DautoVersionSubmodules=true -DMAVEN_OPTS=-XX:MaxPermSize=384m -P release release:prepare
Perform the release to generate all of the repository artifacts. release:perform will check out the release tag into target/checkout. Your settings.xml file should include a property defining the jboss repository location used in the distributionmanagement section of the parent pom. See the JBoss Maven Release Doc for more.
$mvn release:perform -DMAVEN_OPTS=-XX:MaxPermSize=384m
TODO: release:perform should probably automatically include the release profile and the doc generation, see http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html
Artifacts are automatically copied to the nexus repository. To manage their promotion, use https://repository.jboss.org/nexus/index.html. Typically we'll just drop non-final releases.
You can find the release artifacts to copy to Sourceforge and the doc site in the target/checkout/build/target directory.
echo "mkdir 7.2/Final" | sftp <user>,email@example.com:/home/pfs/project/t/te/teiid/teiid/
scp target/checkout/build/target/*.zip target/checkout/build/target/*-jdbc*.jar <user>,firstname.lastname@example.org:/home/pfs/project/t/te/teiid/teiid/7.2/Final
Note the version is number/qualifier.
If you have to create the release directory, be sure to give group writable (775) permissions.
The download page should be updated through magnolia https://www.jboss.org/author/teiid/ to reflect the new bits.
Typically the api and docs are not posted for a non-Final release.
Generate the Javadocs from target/checkout with:
After setting up your id: https://docspace.corp.redhat.com/docs/DOC-25936 you can use sftp, scp, rsynch, etc. to copy the files, e.g. to copy the docs:
Create the appropriate version directory on the remote server, then:
scp -r target/site/apidocs email@example.com:docs_htdocs/teiid/<Version>/apidocs
unzip -d target build/target/teiid-<Version>-jboss-dist.zip docs/teiid/teiid-releasenotes.html
scp target/docs/teiid/teiid-releasenotes.html firstname.lastname@example.org:docs_htdocs/teiid/<Version>
The project documents are in confluence at location https://docs.jboss.org/author/display/TEIID/Home, go to this location and select Browse ->Space Admin. Then choose to copy the space, and give the new space release name and edit the home page for any additional notes. Also using space admin retrict the access to this space to only project leads so that community users do not accidentally delete any content.
Teiid Web Site (Awestruct):
The documentation page and the quick start link should be updated through the community-website git repository - teiid/community-website at Teiid · GitHub Use a regex pattern/replacement such as the following to generate new list entries.
To upload the site, run awestruct* on the modified source:
$ awestruct -P production -g
$ rsync --recursive --protocol=29 --exclude='.*' _site/* email@example.com:/www_htdocs/teiid/
*Awestruct installation requires ruby and a host of gems. Installation on Fedora:
curl -L https://get.rvm.io | bash -s stable
rvm install 2.1.1
rvm --default use 2.1.1
gem install asciidoctor
gem install uglifier
gem install therubyracer
gem install cssminify
gem install htmlcompressor
gem install redcarpet
gem install awestruct