We are in the process of adapting our build & release procedure of one of our Java based products to support patch / hotfix releases.
Today, we deliver a full installation package (which is a set of RPM packages wrapped in an ISO) out of our build pipeline. However, we aim to also support incremental / more fine grained upgrade / patch shipments as well.
To keep things simple as an initial step, we plan to have more fine-grained RPM packages and package a subset (only the changed ones in the scope of a release) of these RPMs in a dedicated hotfix ISO along with the full installation ISO. (We have also considered other options like binary diff - delta RPMs - creating a separate hotfix RPM etc.)
I would like to hear about how you manage your build pipeline - packaging and version control (as this is in the core a release management issue as well) in order to support this kind of hotfix deployments?
A hotfix or quick-fix engineering update (QFE update) is a single, cumulative package that includes information (often in the form of one or more files) that is used to address a problem in a software product (i.e., a software bug). Typically, hotfixes are made to address a specific customer situation.
A hotfix is code (sometimes called a patch) that fixes a bug in a product. Users of the products may be notified by e-mail or obtain information about current hotfixes at a software vendor's Web site and download the hotfixes they wish to apply.
What is a hotfix in agile? A hotfix is a term coined for a critical fix that must be deployed on production to patch the issue impacting the client business. Typically, this is a single error fix that is deployed to fix an important business scenario.
I would like to hear about how you manage your build pipeline - packaging and version control
I introduced a (working) concept:
A Bugreport as an identification like bug711 all sources touched to fix this bug will be tagged (Version Control) with the bug report no.
This tag can be used to checkout all sources required to create a patch (In cases static files like html,js,css etc. are involved) and to merge from branches into head revision.
In the case of java code the minimum to deploy would be an artifact (jar,ear,war-file). Which requires a restart of the application. In case of JBoss Application Server we discovered that the 'exploded' deploy allows us to patch without downtimes.
It really depends on the server environment and the kind of applications which approach would work best for you. I'm afraid that there is no single best-practice.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With