Skip to content

Release

Shakeel Mohamed edited this page Jan 28, 2015 · 72 revisions

Splunk SDK for Java Release Instructions

These are instructions on the various steps necessary to cut out a new release of the Splunk SDK for Java. Even though the instructions are public, these steps are only meant to be taken by the SDK maintainers.

Prerequisites

  • Read through all of these release instructions.
    • Update if necessary. (For example, the version numbers will need updating.)
    • For updates that could apply to other SDKs as well, update the release instructions page for every other SDK.
  • Update changelog.
  • If you've added any new examples, update the build.xml file
  • Run test suite on full test matrix.
  • Install random_numbers.spl (found in dist/ after running ant dist on the repository) on Linux (32-bit and 64-bit), MacOS X (64-bit), and Windows (32-bit and 64-bit), for all supported versions of Splunk in the test matrix, create a new random_numbers input, and check that it generates events by running the search "*" with time range "Real time (all time)".
  • Run all examples.
  • Run all dev.splunk.com code samples.
  • Remove old temporary branches. This includes feature branches, old release branches, and most branches that have been merged to develop.
    • Do not remove gh-pages or any branch that isn't related to the develop branch.

Release Steps

  • Create release branch off of develop (release/1.3.2).

    • git checkout develop
    • git pull
    • git checkout -b release/1.3.2
  • Update the version number:

    • Update the version.number property in the build.xml file in the root directory.
    • Update the User-Agent field of the HttpService class.
    • Update README.md
    • Update the line declare -r version="??" in deploy.
    • Update the version everywhere in deploy.md.
  • Make sure the version number change didn't break anything:

    • Have Jenkins run the release/1.3.2 branch on its test matrix.
    • Run the SDK examples.
  • Build a new JAR and ZIP of the SDK:

    • Make sure the JAR is built with JDK 6.
    • Make sure the files reflect the current version (for example, splunk-sdk-java-1.3.2.zip, splunk-1.3.2.jar).
    • Commit the change to the release/1.3.2 branch.
    • Send the JAR and ZIP files to your Docs team.
  • Merge to master locally. Ensure the commit message is "Release 1.3.2".

    • git checkout master
    • git merge --no-ff -m "Release 1.3.2" release/1.3.2
    • git commit
  • Tag the above commit as 1.3.2.

    • git tag 1.3.2
  • Push the master and the 1.3.2 tag to GitHub.

    • git push origin master
    • git push --tags
  • Delete the release branch:

    • git push origin :release/1.3.2
    • git branch -d release/1.3.2
  • Sanity check that released version works (clone SDK afresh, build, and run an example).

    • git clone git@github.com:splunk/splunk-sdk-java.git
    • cd splunk-sdk-java
    • git checkout master
    • ant dist
    • java -jar dist/examples/pivot.jar
  • Deploy to ArtifactoryOnline

  • Work with Docs team to:

    • Post ZIP and JAR files.
    • Update Readme. For point releases, the version number needs to be updated at a minimum.
    • Update Changelog, includes a list of changes for the current version.
    • Update Dev Portal and push. For point releases, the "What's new" page and download links need to be updated at the very least.
    • Publish the API Reference (docs.splunk.com/Documentation/SDK).
    • Create both MD5 and SHA-512 hashes from final ZIP download. Docs will contact the Web team to upload these files.
  • Verify the posted JAR:

    • Download the JAR and make sure the checksum matches the original file.
  • Hand off to marketing to announce. See next section.

Announce!

Hurrah, the new release is basically done! You can now announce it on the following channels:

Clone this wiki locally