Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strategy to record logical files but skip scanning them #308

Merged
merged 25 commits into from
Jun 1, 2023
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
99624f6
Merge pull request #256 from IBM/develop
drbruce-git Oct 17, 2022
83fbf19
Merge pull request #300 from IBM/zappbuild_301
dennis-behm Dec 16, 2022
be0b0fa
Introduce a method to record files as logicalFiles but skip scanning
dennis-behm Jan 10, 2023
875ce3c
property not relevant
dennis-behm Jan 11, 2023
b55c42b
set file extension as language for logical files
dennis-behm Jan 11, 2023
fcf900d
Merge remote-tracking branch 'upstream/develop' into
dennis-behm Jan 16, 2023
9c54dfb
minor README updates
dennis-behm Jan 16, 2023
8997ca5
Include reviewer feedback to keep it in a comment.
dennis-behm Jan 16, 2023
e2bfa98
Belongs to Merge commit of upstream/develop
dennis-behm Jan 16, 2023
5a649f0
Merge pull request #294 from IBM/develop
dennis-behm Mar 7, 2023
5b4fc97
Merge remote-tracking branch 'upstream/develop' into 200_skipscanning…
dennis-behm Mar 15, 2023
cff561b
Use DependencyScannerRegistry rather than a new mapping
dennis-behm Mar 15, 2023
27cde19
Updated readme
dennis-behm Mar 16, 2023
1098cab
skip configuration of dependency scanner configuration rather then
dennis-behm Mar 16, 2023
020f587
minor wording
dennis-behm Mar 16, 2023
5742e39
Use dependency scanner helper
dennis-behm Mar 31, 2023
6e0e847
updated readme.md
dennis-behm Mar 31, 2023
dc428ae
fix variable name
dennis-behm Apr 5, 2023
85e0df0
Merge pull request #354 from IBM/develop
dennis-behm May 15, 2023
c0abcb5
move from JSON to a string representation of the scanner mapping
dennis-behm May 22, 2023
b5c00a5
Merge remote-tracking branch 'upstream/main' into
dennis-behm May 22, 2023
e01bfe4
Cleanup of languageHint settings
dennis-behm May 26, 2023
06975fb
remove scanner mapping
dennis-behm May 26, 2023
abaadae
renamed utility reference for better readability
dennis-behm May 30, 2023
3168c0c
reorganize the location where to store build and default app config
dennis-behm May 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions build-conf/Assembler.properties
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,6 @@ assembler_eqalangx=EQALANGX
assembler_pgm=ASMA90
assembler_linkEditor=IEWBLINK

# ASM scanner language hint
dbb.DependencyScanner.languageHint=ASM :: **/*.asm, **/*.mac

#
# additional libraries for assembler SYSLIB concatenation, comma-separated, see definitions in application-conf
# assembler_assemblySyslibConcatenation=
Expand Down
4 changes: 0 additions & 4 deletions build-conf/Cobol.properties
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,6 @@ cobol_compileErrorFeedbackXmlOptions=tracks space(200,40) dsorg(PS) blksize(2799
# List of output datasets to document deletions
cobol_outputDatasets=${cobol_loadPDS}

#
# COBOL scanner language hint
dbb.DependencyScanner.languageHint=COB :: **/*.cbl, **/*.cpy

#
# Set filter used to exclude certain information from the link edit scanning.
# The value contains a comma separated list of patterns.
Expand Down
3 changes: 0 additions & 3 deletions build-conf/DBDgen.properties
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,3 @@ dbdgen_linkEditor=IEWBLINK
# DBDlib Deploy Type
#
dbdgen_deployType=DBDLIB

# dbdgen scanner language hint
dbb.DependencyScanner.languageHint=ASM :: **/*.asm, **/*.mac, **/*.psb
4 changes: 0 additions & 4 deletions build-conf/PLI.properties
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,6 @@ pli_compileErrorFeedbackXmlOptions=tracks space(200,40) dsorg(PS) blksize(27998)
# List of output datasets to document deletions
pli_outputDatasets=${pli_loadPDS},${pli_dbrmPDS}

#
# PL/I scanner language hint
dbb.DependencyScanner.languageHint=PLI :: **/*.pli, **/*.inc, **/*.cpy

#
# additional libraries for compile SYSLIB concatenation, comma-separated, see definitions in application-conf
# pli_compileSyslibConcatenation=
Expand Down
3 changes: 0 additions & 3 deletions build-conf/PSBgen.properties
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,3 @@ psbgen_linkEditor=IEWBLINK
# PSBlib Deploy Type
#
psbgen_deployType=PSBLIB

# psbgen scanner language hint
dbb.DependencyScanner.languageHint=ASM :: **/*.asm, **/*.mac, **/*.psb
39 changes: 25 additions & 14 deletions build-conf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,24 +37,40 @@ General properties used mainly by `build.groovy` but can also be a place to decl
Property | Description
--- | ---
buildPropFiles | Comma separated list of additional build property files to load. Supports both absolute and relative file paths. Relative paths assumed to be relative to `zAppBuild/build-conf/`.
applicationDefaultPropFiles | Comma separated list of default application configuration property files to load. Supports both absolute and relative file paths. Relative paths assumed to be relative to `zAppBuild/build-conf/`.
buildListFileExt | File extension that indicates the build file is really a build list.
languagePropertyQualifiers | List of language script property qualifiers. Each language script property has a unique qualifier to avoid collision with other language script properties.
applicationConfRootDir | Alternate root directory for application-conf location. Allows for the deployment of the application-conf directories to a static location. Defaults to ${workspace}/${application}
gitRepositoryCompareService | Service URL for the Git provider to record a link to the git provider for a visual comparision of two hashes
requiredDBBToolkitVersion | Minimum required DBB ToolkitVersion to run this version of zAppBuild.
requiredBuildProperties | Comma separated list of required build properties for zAppBuild/build.groovy. Build and language scripts will validate that *required* build properties have been set before the script runs. If any are missing or empty, then a validation error will be thrown.
formatConsoleOutput | Flag to log output in table views instead of printing raw JSON data
impactBuildOnBuildPropertyChanges | Boolean property to activate impact builds on changes of build properties within the application repository
impactBuildOnBuildPropertyList | List of build property lists referencing which language properties should cause an impact build when the given property is changed
continueOnScanFailure | Determine the behavior when facing a scanner failure. true (default) to continue scanning. false will terminate the process.
createBuildOutputSubfolder | Option to create a subfolder with the build label within the build output dir (outDir). Default: true.
documentDeleteRecords | Option determine if the build framework should document deletions of outputs in DBB Build Report. Default: false. Requires DBB Toolkit 1.1.3 and higher.
generateDb2BindInfoRecord | Flag to control the generation of a generic DBB build record for a build file to document the configured db2 bind information (application-conf/bind.properties). Default: false ** Can be overridden by a file property.
dbb.file.tagging | Controls compile log and build report file tagging. Default: true.
dbb.LinkEditScanner.excludeFilter | DBB configuration property used by the link edit scanner to exclude load module entries
metadataStoreType | DBB MetadataStore Type configuration property. Valid options are 'file' or 'db2'. Default: file
metadataStoreFileLocation | DBB File MetadataStore location. Default: $USER
metadataStoreDb2Url | DBB configuration property for Db2 URL. ***Can be overridden by build.groovy option -url, --url***
metadataStoreDb2ConnectionConf | DBB configuration property for Db2 configuration properties file.
dbb.gateway.type | DBB configuration property to determine which gateway type is used for the build process
dbb.gateway.procedureName | Interactive gateway Procedure Name
dbb.gateway.accountNumber | Interactive gateway Account Number
dbb.gateway.groupId | Interactive gateway Group ID
dbb.gateway.regionSize | Interactive gateway Region Size
dbb.gateway.logLevel | Interactive gateway Log Level
dbb.scannerMapping | DBB PropertyMapping specifying the scanner implementation to be used

### defaultzAppBuildConf.properties
General application properties used by zAppBuild.

Property | Description
--- | ---
continueOnScanFailure | Determine the behavior when facing a scanner failure. true (default) to continue scanning. false will terminate the process.
createBuildOutputSubfolder | Option to create a subfolder with the build label within the build output dir (outDir). Default: true.
buildOutputTSformat | Defines the build timestamp format for build output subfolder and build label.
formatConsoleOutput | Flag to log output in table views instead of printing raw JSON data on verbose output
generateDb2BindInfoRecord | Flag to control the generation of a generic DBB build record for a build file to document the configured db2 bind information (application-conf/bind.properties). Default: false ** Can be overridden by a file property.
generateDb2BindInfoRecordProperties | Comma-separated list of the bind parameters to be added to the DBB build record.
impactBuildOnBuildPropertyChanges | Boolean property to activate impact builds on changes of build properties within the application repository
impactBuildOnBuildPropertyList | List of build property lists referencing which language properties should cause an impact build when the given property is changed
documentDeleteRecords | Option determine if the build framework should document deletions of outputs in DBB Build Report. Default: false.
dbb.LinkEditScanner.excludeFilter | DBB configuration property used by the link edit scanner to exclude load module entries

### dependencyReport.properties
Properties used by the impact utilities to generate a report of external impacted files
Expand Down Expand Up @@ -90,7 +106,6 @@ assembler_compileErrorFeedbackXmlOptions | BPXWDYN creation options for SYSXMLSD
assembler_outputDatasets | List of output datasets to document deletions ** Can be overridden by a file property.
assembler_pgm | MVS program name of the high level assembler
assembler_linkEditor | MVS program name of the link editor
dbb.DependencyScanner.languageHint | DBB configuration property used by the dependency scanner to disambiguate a source file's language
assembler_dependenciesDatasetMapping | DBB property mapping to map dependencies to different target datasets

### BMS.properties
Expand Down Expand Up @@ -140,7 +155,6 @@ cobol_linkEditor | MVS program name of the link editor
cobol_dependenciesAlternativeLibraryNameMapping | a map to define target dataset definition for alternate include libraries
cobol_dependenciesDatasetMapping | dbb property mapping to map dependencies to different target datasets

dbb.DependencyScanner.languageHint | DBB configuration property used by the dependency scanner to disambiguate a source file's language

### LinkEdit.properties
Build properties used by zAppBuild/language/LinkEdit.groovy
Expand Down Expand Up @@ -188,7 +202,6 @@ pli_outputDatasets | List of output datasets to document deletions ** Can be ov
pli_listOptions | BPXWDYN creation options for LIST data sets
pli_dependenciesAlternativeLibraryNameMapping | a map to define target dataset definition for alternate include libraries
pli_dependenciesDatasetMapping | dbb property mapping to map dependencies to different target datasets
dbb.DependencyScanner.languageHint | DBB configuration property used by the dependency scanner to disambiguate a source file's language

### MFS.properties
Build properties used by zAppBuild/language/MFS.groovy
Expand Down Expand Up @@ -226,7 +239,6 @@ dbdgen_outputDatasets | List of output datasets to document deletions ** Can be
dbdgen_pgm | MVS program name of the high level assembler
dbdgen_linkEditor | MVS program name of the link editor
dbdgen_deployType | Deploy Type of build outputs
dbb.DependencyScanner.languageHint | DBB configuration property used by the dependency scanner to disambiguate a source file's language

### PSBgen.properties
Build properties used by zAppBuild/language/PSBgen.groovy
Expand All @@ -247,7 +259,6 @@ psbgen_outputDatasets | List of output datasets to document deletions ** Can be
psbgen_pgm | MVS program name of the high level assembler
psbgen_linkEditor | MVS program name of the link editor
psbgen_deployType | Deploy Type of build outputs
dbb.DependencyScanner.languageHint | DBB configuration property used by the dependency scanner to disambiguate a source file's language

### ACBgen.properties
Build properties used by zAppBuild/language/PSBgen.groovy; ACBgen is part of the PSBgen process
Expand Down
4 changes: 0 additions & 4 deletions build-conf/REXX.properties
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,6 @@ rexx_printTempOptions=cyl space(5,5) unit(vio) blksize(133) lrecl(133) recfm(f,b
# List of output datasets to document deletions
rexx_outputDatasets=${rexx_cexecPDS},${rexx_loadPDS}

#
# rexx scanner language hint
dbb.DependencyScanner.languageHint=rexx :: **/*.rexx

#
# Set filter used to exclude certain information from the link edit scanning.
# The value contains a comma separated list of patterns.
Expand Down
110 changes: 26 additions & 84 deletions build-conf/build.properties
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
# Build properties used by build.groovy
#######################################################################
# build.properties configuration to specify
#
# - global build properties for zAppBuild
# - global default application properties
#
#######################################################################


#######################################################################
# Global build properties used by zappbuild
#

#
# Comma separated list of additional build property files to load
# Supports both relative path (to zAppBuild/build-conf/) and absolute path
buildPropFiles=datasets.properties,dependencyReport.properties,Assembler.properties,BMS.properties,MFS.properties,PSBgen.properties,DBDgen.properties,ACBgen.properties,Cobol.properties,LinkEdit.properties,PLI.properties,REXX.properties,ZunitConfig.properties,Transfer.properties

#
# file extension that indicates the build file is really a build list or build list filter
buildListFileExt=txt
# Comma separated list of default application configuration property files to load
# Supports both relative path (to zAppBuild/build-conf/) and absolute path
applicationDefaultPropFiles=defaultzAppBuildConf.properties

#
# Service URL for the Git provider to have a visual comparision of two hashes
# Leveraged as a build result property <props.gitRepositoryURL>/compare/
# samples: GitHub : /compare/ ; GitLab : /-/compare/
gitRepositoryCompareService=/compare/
# file extension that indicates the build file is really a build list or build list filter
buildListFileExt=txt

#
# Alternate root directory for application-conf locations. Allows for the deployment of
Expand Down Expand Up @@ -42,96 +52,28 @@ gitRepositoryCompareService=/compare/
# Defaults to ${workspace}
applicationConfRootDir=

#
# Service URL for the Git provider to have a visual comparision of two hashes
# Leveraged as a build result property <props.gitRepositoryURL>/compare/
# samples: GitHub : /compare/ ; GitLab : /-/compare/
gitRepositoryCompareService=/compare/

#
# Minimum required DBB ToolkitVersion to run this version of zAppBuild
# Build initialization process validates the DBB Toolkit Version in use and matches that against this setting
# Build initialization process validates the DBB Toolkit Version in use and matches that against this setting
requiredDBBToolkitVersion=2.0.0

#
# Comma separated list of required build properties for zAppBuild/build.groovy
requiredBuildProperties=buildOrder,buildListFileExt

#
# Flag to log output in table views instead of printing raw JSON data
# default = false
formatConsoleOutput=false

#
# impactBuildOnBuildPropertyChanges controls if impact calculation should analyze
# build property changes for COBOL, PLI, ASM.
# default = false
impactBuildOnBuildPropertyChanges=false

#
# list of build property lists referencing which language properties should cause an impact build when the given property is changed
# properties need to be managed in property files within the application repository to detect the change; applies only to impact builds
# general pattern: langPrefix_impactPropertyList, optional: langPrefix_impactPropertyListCICS and langPrefix_impactPropertyListSQL
impactBuildOnBuildPropertyList=[${assembler_impactPropertyList},${assembler_impactPropertyListCICS},${assembler_impactPropertyListSQL},${bms_impactPropertyList},${cobol_impactPropertyList},${cobol_impactPropertyListCICS},${cobol_impactPropertyListSQL},${dbdgen_impactPropertyList},${linkedit_impactPropertyList},${mfs_impactPropertyList},${pli_impactPropertyList},${pli_impactPropertyListCICS},${pli_impactPropertyListSQL},${psbgen_impactPropertyList}]

# createTestcaseDependency controls if a dependency should be set up between the testcase
# and the corresponding application program. If this property set to true, a dependency
# to the program is created for the testcase, which is then impacted by a change
# of the program. In this case, the testcase is recompiled everytime the program is modified.
# When set to false, the testcase is not impacted by the change of the program.
# Default: false
createTestcaseDependency=false

# generateDb2BindInfoRecord controls if zAppBuild generates a generic DBB build record for a build file
# to document the configured db2 bind options (application-conf/bind.properties) .
# This allows to pass the information into the packaging step and on to your deployment manager, like UCD.
# Implemented in Assembler.groovy, Cobol.groovy and PLI.groovy
# See also generateDb2BindInfoRecordProperties for the list of properties which are documented
# Default: false
generateDb2BindInfoRecord=false

# generateDb2BindInfoRecordProperties is a comma-separated list of existing bind parameters configured to zAppBuild.
# See application-conf/bind.properties for available properties.
generateDb2BindInfoRecordProperties=bind_collectionID,bind_packageOwner,bind_qualifier

# dbb.file.tagging controls compile log and build report file tagging. If true, files
# written as UTF-8 or ASCII are tagged.
# If the environment variable _BPXK_AUTOCVT is set ALL, file tagging may have an
# adverse effect if viewing log files and build report via Jenkins.
# In this case, set dbb.file.tagging to false or comment out the line. Default: true
dbb.file.tagging=true

# Set filter used to exclude certain information from the link edit scanning.
# The value contains a comma separated list of patterns.
# example: A filter of *.SUB1, *.SUB2 will exclude modules SUB1 and SUB2
# from any dataset. To exclude member HELLO in PDS TEST.ASM will
# be matched by the pattern TEST.ASM.HELLO. The pattern TEST.ASM.*
# will match any member in the data set TEST.COBOL.
# The following filter excludes CICS and LE Library references.
dbb.LinkEditScanner.excludeFilter = ${SDFHLOAD}.*, ${SCEELKED}.*

#
# Determine the behavior when facing a scanner failure
# 'true' proceeds with the build and report the a warning (default)
# 'false' will terminate the build process
continueOnScanFailure=true

#
# Determine if a subfolder with a timestamp should be created in the buildOutDir location.
# Applies to all build types except userBuild
# Default: true
createBuildOutputSubfolder=true

#
# Build Timestamp Format
# Applies to all build types except userBuild
# Default: yyyyMMdd.HHmmss.mmm - See Date format method pattern strings
buildOutputTSformat=yyyyMMdd.HHmmss.mmm

#
# Flag to determine if the build framework should document deletions of outputs in DBB Build Report
# for build files being mapped to language scripts
#
# Requires the DBB toolkit 1.1.3 or higher. Backward compatibility of zAppBuild is preserved,
# when feature is turned off
#
# Default : false
documentDeleteRecords=false

# MetadataStore configuration properties:

# select MetadataStore configuration (either 'file' or 'db2')
Expand All @@ -145,12 +87,12 @@ metadataStoreType=file
#metadataStoreDb2Url=jdbc:db2:<Db2 server location>

# Db2 connection configuration property file
# Sample is povided at $DBB_HOME/conf/db2Connection.conf
# Sample is povided at $DBB_HOME/conf/db2Connection.conf
#metadataStoreDb2ConnectionConf=


# The dbb.gateway.type property determines which gateway type is used for the entire build process
# Possible values are 'legacy' and 'interactive. Default if not indicated is 'legacy'
# Possible values are 'legacy' and 'interactive'. Default if not indicated is 'legacy'
dbb.gateway.type=legacy

# Procedure Name - specified with the procname parameter
Expand Down
Loading