openHAB Milestone builds

All,

I promised it since a while, but it has cost us quite some efforts to get the whole process working smoothly: We are now in a position to do almost “one-click” releases of openHAB with our Jenkins release pipeline - big thanks to @pfink for setting this up!
Just as some background information: To create a distro release, 9 different Github repos need to be built and released individually, with versions being changed in the sources, git tags being created, p2 repos published, etc.
Doing that manually usually took me around 10 hours, while it is now done fully automatically in around 1:45h.

Being able to have the technical release process simplified does not automatically mean that we directly reduce our release frequency - after all, besides the technical artifacts a release involves many more efforts like a testing/stabilisation phase, the compilation of release notes, annoucements & informing the press, etc.

So the first step for which we use our new ability is to provide milestone releases from now on. The plan is to have roughly one milestone release per month. They are meant to be a pretty good compromise between the nightly snapshots and the official releases. I know that many of you are using snapshots even for their production system (me included) and you continuously run the risk that you catch a snapshot that completely breaks your system. Waiting for a new release is no option either, if you want to use new features that only recently made it into the code base. With the new milestone builds, we will make sure that those builds work in general and that they should not have any (known) critical issues. They should therefore be a nice option if you want to be on the latest&greatest, but want to avoid the risks that are associated with snapshots builds.

We are publishing the milestone builds to the linux “testing” repositories, so if you switch to “testing”, you should automatically receive the milestones upon an package upgrade. For everyone who isn’t using linux packages, you can get the zip/targz archives from our Artifactory instance at https://openhab.jfrog.io/openhab/libs-milestone-local/org/openhab/distro/openhab/.

Please forgive us if there are maybe a few hiccups in the beginning as we will have to get into this new process (You will notice that the latest milestone is 2.4.0.M3, which is a sign that we needed a few iterations for it already) - but I hope you welcome these new builds as a step in the right direction!

Best regards,
Kai

P.S.: The 2.4.0.M2 has been published to the Linux “unstable” repos yesterday by accident, so if you have updated your snapshot over the last hours, you might have ended up with that version. Please note that if this is the case, no further snapshots will be picked up, but you have to once manually choose a current snapshot to install again - please see these instructions on how to do so.

55 Likes

One additional remark: We would also like to automate the compilation of the release notes - until then, you can check the Jenkins release build page for the changes that are included in each milestone; while not pretty, it should give you a good idea whether a certain change is in or not.

1 Like

Thus is great progress for the platform! Thanks!

Milestone builds! :+1:

A difficulty I have with the snapshots, and I see it would be the same with the milestones, is determining which build of ESH is included so that I can look up the release notes for it. Most of the changes that I am anxious to test tend to be from ESH. Why do the ESH merges not show in the Jenkins changes, and will/could they be included in the automated OH release notes?

That’s a good question.
@pfink As we are building ESH ourselves in that pipeline, is there a chance to have the changes listed next to the others as well?

As i want to migrate to docker in the future I am wondering if this new release circle will also be available via docker hub.
https://hub.docker.com/r/openhab/openhab/

1 Like

It would be great if you opened an issue to add a tag to build one. Right now only release and snapshot are supported. The changes are pretty minor I believe.

That is a very great step forward for the whole framework. I think we will become a lot more flexible with an automated CD pipeline. And it is possible to release new features faster for everyone.

I am thinking about switching my live environment to the testing repos too.

2 Likes

I have upgraded to The snapshot build in openhabian. Will this get the m2 build? I am showing build 1341 but no reference to m2 or m3.

I can update manually if required, I was just not sure the exact process.

Someone should open an issue over on the openHABian repo to add a testing option under openHAB related to change the repo to the testing repo. It looks like openhabian-config only supports release and snapshot right now.

1 Like

You’re still on the correct snapshots, so won’t need to do anything manually unless you want to change to the testing branch. :slight_smile:

When you next upgrade on a snapshot, it will be the newest nightly build.

1 Like

Thanks guys. I am going to try to submit a request on the openhabian git to add the repo.

In the meantime I am on the correct build so I am good.

Good idea, I actually thought that this was already possible in openhabian… Ftr, here’s the issue.

I’ve submitted a pull request.
(I fear though that @ThomDietrich is too busy to review it right away)

1 Like

@Kai thanks for clarifying. I only knew the high level details.

It’s available now in openHABian (thanks to @Benjy and @elias_gabrielsson for their quick review).
Mind you unlike the OH packages, openhabian-config always updates itself on startup so every openHABian user is now offered that right away.

4 Likes

Is there any way to get a notification when there is a new Milestone build available? Just a post in some thread (this one?) would be sufficient :wink:

1 Like

You can use the RSS feed… https://openhab.ci.cloudbees.com/job/openhab2-release/rssAll. Combine it with the Feed binding, and you can setup alerts when there are updates.

3 Likes

Ah, that’s even better! Thanks a lot!