We are excited to announce the release of IBM Dependency Based Build (DBB) V1.0.2. With this latest release, DBB delivers new capabilities focused on streamlining and modernizing the way we build traditional z/OS applications. Such critical features include multi-thread build support, made by possible through provided APIs. Additionally, users can now capture and store indirect dependencies, meaning that you can determine the relationships between source and build process outputs during impact analysis. Other enhancements in this release include binary and load module copy support, automatic Groovy script caching, along with new samples. Learn more about new features below:
• Multi-Thread build support – Executing two or more MVSExec commands at the same time often requires the ability to concurrently allocate the same DD name. This is generally not possible when running in a single JVM since all commands use the same address space. DBB now provides APIs to allow DD allocations to occur in separate address spaces during the build allowing for multi-threaded build scripts. For more information, see Multi-thread support with MVSJob in z/OS command API.
• Capturing and storing indirect dependencies – Since its release, DBB has included APIs to allow the capturing and storing of direct build dependencies such as COBOL copybooks and PL/I include files. Users can now capture and store indirect dependencies such as generated copybooks from BMS maps or statically linked programs in a load module. This allows build scripts to detect that a called program has changed so a load module needs to be rebuilt. For more information, see Indirect dependencies in Managing dependencies.
• Binary and load module copy support – The CopyToHFS and CopyToPDS commands now have binary and load module copy modes. The load module copy mode allows users to capture load module metadata such as ISPF stats and the alias when copying to zFS. This is useful when creating tar files to store in an artifact repository like Nexus or Artifactory for later deployment. For more details, see CopyToHFS and CopyToPDS in z/OS command API.
• ISPF Interactive Gateway support for TSOExec and ISPFExec – DBB now supports both the Legacy ISPF Gateway and the Interactive ISPF Gateway for communication during ISPFExec and TSOExec command execution. An advantage of using the Interactive ISPF Gateway is the ability to execute programs that are interactive, using a conversational pattern. Also TSO/E address spaces are started by using a TSO logon procedure. Sites can choose to use their existing TSO logon procedures for TSO/E address spaces started through the gateway. For more information on setting up and taking advantage of using the Interactive Gateway, see the ISPFExec and TSOExec section in z/OS command API.
• Automatic Groovy script caching – During build execution called Groovy scripts are compiled on the fly into Java classes and invoked. Though the compilation is very fast, it still takes time and if the build process builds hundreds or even thousands of source files, this can result in significant build processing times. DBB now provides Groovy APIs that will automatically load and cache called Groovy scripts. For instructions on how to use script caching, see Groovy build script caching in Build script organization.
• Build properties can reference other build properties – DBB BuildProperties values can now have references to other BuildProperties properties that are evaluated dynamically at run time. For more information, see Using properties and properties files in Build script organization.
• DBB configuration properties – Some DBB APIs require users to set configuration like properties on each declaration that are often the same for all declarations and never change during the build process. Examples of this can be seen in the RepositoryClient, ISPFExec, TSOExec etc. Users can now declare DBB configuration properties in their properties files that will automatically set those values without having to code them explicitly in their build scripts. For a list of supported configuration properties, see DBB configuration properties in Build script organization.
The following samples have been added to the samples that are shipped with the DBB server. They are available for download from the IBM Dependency Based Build page at MainFrame DEV.
• Multi-threaded Build Sample
• Publish Load Modules to Artifactory
• Indirect Dependency Support in Mortgage Application
• BuildManager : Used to keep the JVM alive between builds (Performance enhancement)
• Build Result Pruner
Required DBB environment variables
Beginning in V1.0.2, several Dependency Based Build toolkit APIs will require the existence of two new environment variables: DBB_HOME and DBB_CONF in order to function correctly. For more information about environment variables, see Installing and configuring toolkit on z/OS.
Want to learn more about DBB?
Attend a replay of our recent DevOps Unleashed virtual event to learn more about DBB capabilities in the session:
• Git and DBB for z/OS for COBOL and PL/I
And, don’t miss out on related practitioner sessions such as:
• AppDev Tools at 20 Paces
• Implementing Unit Testing practices for traditional mainframe development languages
• Rest API access to Z with File Manager
View the V1.0.2 Documentation, along with other helpful resources at the IBM Knowledge Center.
For sample scripts of DBB, visit Samples for use with IBM Dependency Based Build.
Visit the the DBB website to explore technical topics, and connect with the developer community.
Use the Digital Transformation Model for IBM Z to assess the current and future state of your enterprise applications