About JGDMS Project

Infrastructure for providing secured micro services, that are dynamically discoverable and searchable over ipv6 networks.

The prior static site docs can be viewed here: Static Site

Introduction docs are also available.

Release Process

The release process uses the maven-release-plugin to update all the versions at once auto-magically. See: Using the Maven Release plugin for an overview.

  1. First do a “dryRun” of the release:prepare goal to make sure initial changes look valid:

    mvn release:prepare -DdryRun=true
    

    Below is a snippet showing the type of prompts to expect during this step:

    [INFO] Checking dependencies and plugins for snapshots ...
    What is the release version for "JGDMS Project"? (au.net.zeus:jgdms) 3.0: : 3.0.1-RC-03
    What is SCM release tag or label for "JGDMS Project"? (au.net.zeus:jgdms) jgdms-3.0.1-RC-03: :
    What is the new development version for "JGDMS Project"? (au.net.zeus:jgdms) 3.0.1-RC-04-SNAPSHOT: : 3.0.2-SNAPSHOT
    

    After this completes, examine the parent pom version, and spot check the various sub-module pom versions. You can see more details in the pom.xml.next, pom.xml.releaseBackup, and pom.xml.tag files created by this step.

    If something goes wrong, or look amiss, you can revert the “prepare” changes via the following command. Even if all looks good, do a “release:clean” before proceeding to step 2.

    mvn release:clean
    
  2. Perform a “real” release:prepare goal

    mvn release:prepare
    
  3. Perform the release:

    One-time setup is required for you to publish to Central. Be sure the following exists in your ~/.m2/settings.xml file. Your OSSRH Jira ID and passwrod are needed. See OSSRH Guide for details

    ...
    <servers>
        <server>
            <id>ossrh</id>
            <username>YOUR_OSSRH_JIRA_ID</username>
            <password>YOUR_YOUR_OSSRH_JIRA_PASSWORD</password>
        </server>
        ...
    </servers>
    

    In my case, I also needed to export the following in my shell in order for gpg to work correctly:

    export GPG_TTY=$(tty)
    

    Then:

    mvn release:perform  (or mvn release:stage?)
    

    If things go “badly(tm)”, you can undo the release process via:

    mvn release:rollback
    
  4. (temporary) Manually publish the docs:

    Eventually, this step should become obsolete, and the docs would be published during the prior “release:perform” step. For now though, we need to jump through some additional hoops to publish the docs to the github gh-pages site. See: “Doc Publishing” in Documentation Documentation (and yes, I did mean to say it twice. ;) ).

    The idea is to checkout the just released “tag”, and run:

    mvn site site:stage
    mvn scm-publish:publish-scm