Have you been seeking the latest enhancements of Dependency Based Build (DBB)? Are you looking to understand if DBB fits the needs of your organization? Do you want to get more details on some of the hidden gems in our latest release? Wait no more as you are about to find out what’s hot and happening the land of DBB. So, let’s dive in!
When we shipped DBB v3 in October of 2024, the major highlight was the introduction of zBuilder which is a configuration-based framework based on YAML files. In comparison to the pre-existing open-source based zAppBuild framework which was based on groovy scripting, zBuilder is a major and significant step forward in simplifying and easing adoption of an automated build solution for our customers.
With the release of DBB v3.0.2, the first enhancement I want to cover is that we have added support for Java 21, specifically IBM Semeru Runtime Certified Edition for z/OS 21. This is in addition to supporting Java 11 and Java 17, which was available from prior releases.
The zBuilder framework of DBB v3 is almost at parity with the zAppBuild framework (which is tailored towards DBB v2), and now includes the following latest enhancements:
Metadata store CLI JSON output format – the metadata store already had a command-line interface (CLI) to easily access stored build metadata which is generated during the DBB build process. In prior releases, the output from the CLI was in plain text but now you can obtain this metadata in JSON format, which allows for easier processing by third party tools.
Integrated Build Map support – Build maps are a type of build metadata that store information about how each individual program was built, including Git repo information as well as additional source files and binary inputs from previous builds. This was originally introduced in DBB v2.0.2 and is now available in the zBuilder.
Metadata lifecycle (Scan Only) – In order to build applications incrementally, DBB creates and stores build metadata during the build process. This ensures that programs are built either when they are modified or when source files that the programs have a dependency on are modified. This new capability allows you to run a “scan only” option which in essence creates the build metadata without actually building any programs. This takes away the need to run a “full build” during the adoption process.
IBM z/OS Connect Task – z/OS Connect allows you to create a REST API interface to your z/OS applications. This new task allows for easier interaction with z/OS connect to create the API layer and it supports both OpenAPI v2 and v3.
zAppBuild metadata format migration – zAppBuild with DBB v2.0.2 built applications using an old structure where Collections were independent of the BuildGroups and used naming conventions to map the Collections to their respective BuildGroups. This caused problems when using zBuilder to build an application that was previously built by zAppBuild. What we have now introduced is automatic detection of whether the application was previously built by zAppBuild or not. Additionally, we can automatically migrate the application collections to the expected locations from zAppBuild to zBuilder.
JCL -> language YAML migration tool – We had previously released some YAML language samples for languages such as Cobol, PL/I and HLASM and have now added REXX and C++ language samples to our library. The challenge we saw with some customer build processes was that there were some third-party or user developed pre-compilers or custom JCL procedures for which we had no samples. This led to the need of developing a migration tool that takes build JCL files and generates a zBuilder language YAML file template. Once this template is reviewed and validated, it can be used by the zBuilder.
Merge build lifecycle – some customers have requested for the ability to build modified programs in a topic branch on a test system to validate that their application executes correctly before merging the topic branch into the main build branch. This latest version of DBB v3.0.2 now allows for this via the merge build lifecycle.
New pre-defined variables – This release also introduces three new global pre-defined variables (${USER}, ${SYSTEM}, ${SYSPLEX}) which can be used in configuration files.
There have also been some new YAML configuration enhancements added, such as defining DD statements in a variable and creation of a new copy step build report record, which can be used in build post-processing tools.
Last but not least, we have shipped 13 APAR fixes and implemented 7 new enhancements based on direct feedback and IDEAs submitted by our customers.
Your feedback is very important to us. We continue to work very closely with our customers to drive implementation and adoption efforts. As such, please reach out to me at shabbirm@ca.ibm.com for any questions and stay tuned for more updates on DBB as the year progresses.
As always, as I end the blog, let me link you to some valuable DBB and IBM Z DevOps resources:
· My previous blogs on the releases of DBB v3.0.0 and v3.0.1
· Official DBB v3.0 Documentation
· DBB Product Page
· DBB v3.0.2 “New and Noteworthy” Documentation
· “Learn about zBuilder as a zAppBuild user” blog
· IDz v17.0.2 and DBB v3.0.2 official announcement
· ADFz v5.0.0 and IDzEE v17.0.2 official announcement
· A prescriptive guide to applying DevOps to IBM Z
· “Day in the life” of a developer animated video series
Shabbir Moledina - Product Manager (DBB, Wazi Deploy, IDz on VS Code)