How to release openHAB

Thomas Eichstädt-Engelen edited this page Jan 10, 2016 · 23 revisions

Follow these steps if you want to release a new version of openHAB. Later we plan to leverage the Maven Release Plugin to facilitate these steps.

  1. Pull the latest state from the repository into a fresh and empty directory

     git clone https://github.com/openhab/openhab.git
    
  2. Open a command-line and go to the openhab directory

  3. Set project version to release version with the Tycho Versions plugin

     export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=1024m"; mvn -P prepare-release initialize -DnewVersion=1.x.0
    
  4. Execute a Maven build

     mvn -P deploy clean deploy
    
  5. Install and extensively test the created binaries

  6. Commit the changed files

     git commit -a -m "prepare for 1.x.0 release"
    
  7. Create a release tag with pattern v<version>

     git tag v1.x.0
    
  8. Increment to next development version

     mvn -P prepare-next-snapshot initialize -DnewVersion=1.y.0.qualifier
    
  9. Execute a Maven build with goals clean verify to assure that everything builds

     mvn clean verify
    
  10. Commit the changes

     git commit -a -m "increment to next development version 1.y.0"
    
  11. Push the changes including the tag to the server

     git push origin master --tags
    
  12. Switch to the root directoy of openHAB

Manual Steps to walk through after the Release-Build

  • check if start.sh and start_debug.sh has been unpacked with correct file permissions (0755)
  • Issue a rough Smoke-Test (unpack runtime and demo, start runtime, access Classic-UI)
  • check if Designer (for at least xxx and Windows) works
  • upload deb and p2 Repository
  • add new bindings to http://www.openhab.org/features-tech.html

Upload the deb Repository to bintray

Fake packages

The fake packages are a workaround for triggering the metadata generation for the arm and mips architectures (e.g. https://bintray.com/openhab/apt-repo/openhab/view#files/dists/1.7.1/main binary-armhf, binary-armel, ..)

For every new release once-only the fake packages have to be uploaded.

  • open a command-line
  • the fake packages must be available in the current working directory
  • you can download the fake packages from bintray https://bintray.com/openhab/apt-repo/fake/fake-0.1/view#files/pool/main/fake
  • execute the distribution/src/deb/bintray-upload-fake-packages.sh script from your openHAB git clone
  • executing without arguments will print the usage information
  • all packges are automatically published
  • Examples
sh bintray-upload-fake-packages.sh theoweiss bintray-api-key-abc gpgsecret-xyz 1.8.0.RC1
sh bintray-upload-fake-packages.sh theoweiss bintray-api-key-abc gpgsecret-xyz 1.8.0

openHAB packages

  • open a web browser go to the bintray openHAB organisation, step into the apt-repo repository, add a new Version to the openhab package: e.g. 1.7.0.RC2
  • open a command-line and go to the local apt-repo directory
  • execute the distribution/src/deb/bintray-upload-debs.sh script from your openHAB git clone
  • executing without arguments will print the usage information
  • the first argument is your bintray username
  • the second argument is your bintray api key
  • the third argument is the gpg key passphrase
  • the fourth argument is the openHAB version
  • the fifth argument is the distribution name. Use:
    • "stable" for releases
    • "testing" for release canditates
    • "unstable" for snapshots
  • all packges are automatically published
  • Examples
sh bintray-upload-debs.sh theoweiss bintray-api-key-abc gpgsecret-xyz 1.7.0-RC2 testing
sh bintray-upload-debs.sh theoweiss bintray-api-key-abc gpgsecret-xyz 1.7.0 stable

Channels to inform about the new Release

  1. News-Section on index.html
  2. Google-Group
  3. Twitter
  4. Google+ Page
  5. Google Community
  6. KNX-User-Forum

to be continued …

feature overview

Installation

Setup intro

Linux and OS X

Windows

FreeBSD


Configuration

Automation*

User Interfaces

Persistence


Community

(link to openHAB forum)

Development


Bindings


Application Integration

Misc


Samples

A good source of inspiration and tips from users gathered over the years. Be aware that things may have changed since they were written and some examples might not work correctly.

Please update the wiki if you do come across any out of date information.

Binding configurations

Use case examples

Item definition examples

Sitemap definition examples

Collections of Rules on a single page

Single Rules

Scripts

Syntax highlighting for external editors


Release Notes

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.