IBM / dbb-zappbuild

zAppBuild is a generic build solution for building z/OS applications using Apache Groovy build scripts and IBM Dependency Based Build (DBB) APIs.
Apache License 2.0
40 stars 123 forks source link

Deletion of previous build outputs before new build #275

Open FALLAI-Denis opened 1 year ago

FALLAI-Denis commented 1 year ago

Hi,

In an impactBuild + full package context, we encounter use cases that require deleting the results of a previous build in the event of a new build and the features of the built file has changed.

Use cases:

Could this handling of deleting results produced by previous builds be handled by the "official" zAppbuild, or do we need to handle these cases in our own zAppbuild implementation?

dennis-behm commented 1 year ago

Hi Denis,

It is an interesting thought of having an additional flag to clean the datasets in advance. Useful in a user build context as well.

We already have a sample of deleting the datasets in the ibm community repository, which you can include into your build pipeline. Are you aware of it? https://github.com/IBM/dbb/tree/main/Utilities/DeletePDS

FALLAI-Denis commented 1 year ago

Hi Dennis,

Warning: it is not a question of deleting the PDS datasets, but of deleting members in these PDS before rebuilding.

We use impactBuild mode for building, and we produce complete packages:

dennis-behm commented 1 year ago

Hi Denis,

the way deletions are handled in zAppBuild is tricky. As you know, the build workspace can be seen as temporary; also it differs how the branching strategy is designed.

But, zAppbuild is equipped with a strategy to document deletions. It was introduced this year along with a new Record Type AnyTypeRecord. The way it is implemented, it will also try to remove the outputs from the build libraries. Please have a look to the implementation in https://github.com/IBM/dbb-zappbuild/blob/main/utilities/BuildReportUtilities.groovy .

So, with activating this feature of zAppBuild, I think you are able to complete the scenario when you are removing a source file.

However, it is not able to solve the scenario when the type of a program has changed from BATCH/DB2 to just BATCH. This is because, zAppBuild / DBB does not know about the previous characteristics or the previously produced outputs of a file. We talk about build maps which persist this information. But build maps are not available in DBB.

It is a very valid enhancement request of the product. Would you mind to please open a RFE on that on the ideas portal https://ideas.ibm.com/products/6672764845844154062