News combit Dev Blog

How We Release a New Version

Posted: Tuesday, October 6, 2020 | 0 comment(s)
List & Label 26 is gearing towards RTM. We've been blogging about the progress and upcoming new features for some time now. This time, however, I'd like to share some insights into what happens as we shift near RTM.

First Stage – Alpha Version

The first stage of our release cycle as always is the release of our Alpha version used by some key partners and customers to adapt their additions to List & Label. The Alpha provides a first metric for the stability of the coming version. This milestone was hit by the end of July. Based on the Alpha feedback we were able to fine-tune some of the features and make it to the public beta program in early September.

By that time, we already had fixed some 500 tickets in the Redmine ticketing system which we're using as bug management tool. BTW – if you're also using Redmine make sure to check out the free reporting solution for Redmine we've donated to the community a couple of years ago. This is what our current progress looks like for the last 60 days:

Redmine Open/Close Tickets

As you can see, my will to keep the number of open tickets at or below 100 is a bit pathological ;). This is a fact that's known by the whole team and everyone acts accordingly. We're now starting to burn down rapidly to reach the zero-bug-count in time with the end of the beta phase.

Beta Phase – Code Freeze

In the second phase, the beta version is released to all our Enterprise subscribers. This offers ample opportunity to see if our latest bits still work nicely in your own application. We're getting loads of useful feedback through this channel and even get an opportunity to shape the final touches of newly added features.

During the beta phase we've hit the code freeze for UI resources. Translation takes some time and we're releasing List & Label in a number of languages (English, German, French, Italian, Spanish and Chinese). These "core" languages are being translated by a professional translation service. Other languages are provided by selected partners and customers and may become available shortly after release.

The actual code freeze is just after the end of the beta phase. We only fix killer bugs after this milestone, and only on a peer-peer-review base.

Of course we run an intense and thorough in-house beta test in addition to our external beta program. This internal process is repeated for each sprint in our agile planning process to enable incremental releases at any stage.

Automated Builds and Tests

Manual testing is complemented by automated tests. Both UI and reporting engine are subject to automated testing for most of our nightly builds. The builds and tests are fully automated by our CI server – we use TeamCity for that purpose. We use commercial tools as well as validation tools we've created just for this purpose. The main reporting engine tests consist of several hundred reports which are run by the engine and validated against references. Each deviation from the reference files is automatically reported and raises yet another ticket in Redmine. The QA process also includes performance tests to make sure there are no latencies induced by accident. This way we have been able to provide high quality releases with the most recent versions.

This is a live view of our TeamCity project:

TeamCity Project List & Label

As you can see, the last List & Label 26 Core build failed. The reason was a failed regression test that can easily be verified by looking at the build's artifacts:

TeamCity Test List & Label

The file itself is a "before/after" comparison of the last build's output vs. the stored reference. To get an impression of the number of tests, here's a scroll over the results of a typical build:

Regression Test List & Label


So this is how we're heading towards our 26th version already. Despite the pandemic craze and everyone still working from home, we've been able to stick to our usual processes, although our standups now have a different look and feel:

combit Dev Team

We've come a long way since the initial release of List & Label back in 1992 when the tool was born out of the need for a professional reporting component to use with combit's CRM applications. Our great team has grown through the years to offer professional services you've come to expect from us. I'd like to take this opportunity to thank everyone involved in-house as well as all of our faithful customers. It's been a pleasure to work with you through the last 25 versions, and I'm looking forward to yet another great release very soon.

How do you release a new software version in your company? We appreciate your comments.

Author: Jochen Bartlau
Head of Development List & Label

Jochen Bartlau leads the development at combit as Managing Director. He's a Microsoft .NET enthusiast driving innovation & agile project management. The mobile devices geek who used to be a physicist in his first life loves to spend his spare time with his family.


combit Development BlogRSS
What’s this blog for?
A place to share updates about the ongoing development of our products. General musings on the software industry included.
June 2021 (1)
May 2021 (1)
April 2021 (2)
March 2021 (1)
February 2021 (2)
January 2021 (1)
December 2020 (2)
November 2020 (1)
October 2020 (2)
September 2020 (1)
August 2020 (2)
July 2020 (1)
June 2020 (1)
May 2020 (2)
April 2020 (2)
March 2020 (2)
February 2020 (1)
January 2020 (1)
December 2019 (1)
November 2019 (2)
October 2019 (2)
September 2019 (2)
August 2019 (2)
July 2019 (2)
June 2019 (2)
May 2019 (1)
April 2019 (0)
April 2019 (1)
March 2019 (1)
February 2019 (1)
January 2019 (1)
December 2018 (1)
November 2018 (2)
October 2018 (4)
September 2018 (4)
August 2018 (2)
July 2018 (2)
June 2018 (2)
May 2018 (1)
April 2018 (1)
March 2018 (1)
February 2018 (2)
January 2018 (1)
December 2017 (1)
November 2017 (2)
October 2017 (3)
September 2017 (3)
August 2017 (2)
July 2017 (2)
June 2017 (1)
May 2017 (2)
April 2017 (1)
March 2017 (1)
February 2017 (1)
January 2017 (2)
December 2016 (1)
November 2016 (1)
October 2016 (4)
September 2016 (5)
August 2016 (2)
July 2016 (2)
June 2016 (3)
May 2016 (2)
April 2016 (3)
March 2016 (3)
February 2016 (1)
January 2016 (2)
December 2015 (2)
November 2015 (1)
October 2015 (4)
September 2015 (5)
August 2015 (2)
July 2015 (2)
June 2015 (2)
May 2015 (1)
April 2015 (2)
March 2015 (1)
February 2015 (1)
January 2015 (1)
December 2014 (2)
November 2014 (1)
October 2014 (1)
September 2014 (2)
August 2014 (1)
July 2014 (2)
June 2014 (1)
May 2014 (2)
April 2014 (1)
March 2014 (2)
+1 800 256 3608 (toll-free North America only)