Version 52

    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.


    Documentation (GitBook/GitHub Pages):


    For a full release the appropriate projects need branched - primarily this is GitHub - teiid/teiid-documents: Community documents for Teiid Engine and Teiid Server


    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.  Using the jar built from GitHub - teiid/javacc: Customization of JavaCC for Documentation as a patch for JavaCC 6.1.2, run jjdoc against the SQLParser.jj file and copy the resulting contents from SQLParser.html into the BNF_For_SQL_Grammar.adoc.


    The docs will publish automatically based upon the associated travis job.


    Teiid Web Site (GitHub Pages):


    Follow the instructions at GitHub - teiid/ Teiid gitpages community website (Test:  to get changes into the dev staging environment for promotion into master.




    Run the script at the project root.  It will perform all of the actions listed below.  The artifacts pushed to the repository will automatically be released.  You will need to have configured your system for pgp signing, access to the repository, and jboss file servers.


    Older Versions:


    Maven Build:


    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 -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:<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 -P release  release:prepare -Dmaven.javadoc.skip


    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


    TODO: release:perform should probably automatically include the release profile and the doc generation, see


    Artifacts are automatically copied to the nexus repository. 


    Pre 10.0 releases use

    10.0+ releases use [[TEIID-4924] Push Teiid artifacts to maven central - JBoss Issue Tracker ]- which requires that artifacts are signed.  Please make sure that gpg2 is setup correctly on your system: Apache Maven GPG Plugin – Introduction


    Artifact Upload:

    You can find the release artifacts in the target/checkout/build/target directory.


    If copying to the JBoss Release Site:


    echo "mkdir <Version>" | sftp<Version>

    scp target/checkout/build/target/*.zip target/checkout/build/target/*-jdbc*.jar<Version>


    If just relying on maven, then just ensure the staging repository has been closed and release.


    The download page should be updated and published as shown below.


    Typically the api Javadoc and docs are not posted for a non-Final release.


    Docker Image:

    Creating and publishing the image requires that docker is installed and the docker daemon is running - removed as part of the project build for Teiid 11.1.


    As of Teiid 10.0 building and pushing the image will happen as part of the maven build.  This requires specifying the repository information, typically you would do this with a server element with id and credentials in your settings.xml file.


    For prior releases, you need to run a shell script:


    $cd target/checkout/build/target/teiid-<version>-docker



    Choose y to push the image to Docker Hub.

    Use the teiid account with the email address.


    Java Docs:

    Generate the Javadocs from target/checkout with:


    $cd target/checkout


    $mvn javadoc:aggregate


    After setting up your id, you can use sftp, scp, rsynch, etc. to copy the files, e.g. to copy the docs:


    rsync --recursive --protocol=29 --exclude='.*' target/site/apidocs<Version>


    For Teiid 12+:

    unzip -d target wildfly/wildfly-build/target/teiid-wildfly-<Version> docs/teiid/teiid-releasenotes.html



    unzip -d target build/target/teiid-<Version> docs/teiid/teiid-releasenotes.html


    scp target/docs/teiid/teiid-releasenotes.html<Version>


    Teiid Web Site (Awestruct Obsolete):

    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/*


    *Awestruct installation requires ruby and a host of gems.  Installation on Fedora:


    curl -L | bash -s stable

    rvm install 2.1.1

    /bin/bash --login

    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


    Confluence (Obsolete):

    The project documents are in confluence at location, 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 restrict the access to this space to only project leads so that community users do not accidentally delete any content.


    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.).