From 66ffe3467ab1336f13809ee9b786ae47df384516 Mon Sep 17 00:00:00 2001 From: Peter Haumer <4391934+phaumer@users.noreply.github.com> Date: Fri, 14 Jun 2024 15:31:53 -0700 Subject: [PATCH] Updates for Wazi for VS Code 4.3.0 --- README.md | 31 +- product-licenses/LICENSE.txt | 9 +- product-licenses/NOTICES.txt | 40 +- .../rse-api-for-zowe-cli/LICENSE.txt | 8 +- .../rse-api-for-zowe-cli/NOTICES.txt | 12 +- product-licenses/zapp/LICENSE.txt | 2 +- product-licenses/zapp/NOTICES.txt | 6 +- zapp/zapp-schema-1.2.0.json | 512 ++++++++++++++++++ 8 files changed, 548 insertions(+), 72 deletions(-) create mode 100644 zapp/zapp-schema-1.2.0.json diff --git a/README.md b/README.md index 5d743afb5..179e32b44 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,15 @@ # IBM Z® Open Editor -**IBM Z Open Editor is an extension for Visual Studio Code that provides language support for the IBM® Enterprise COBOL, PL/I, HLASM, REXX, and JCL languages.** +**IBM Z Open Editor is an extension for Visual Studio Code that provides language support for the IBM® Enterprise COBOL, PL/I, HLASM, REXX, and (all new!) JCL languages.** > Go here for the full [Documentation](https://ibm.github.io/zopeneditor-about/Docs/introduction.html?utm_source=vscode&utm_medium=referral&utm_campaign=vscode_marketplace) online. -**New**: IBM Z Open Editor v4.0.0 introduced advanced capabilities that go beyond program editing. These are at the moment local preprocessor support for COBOL, a new Web view built on top of Zowe Explorer that displays z/OS resources such as data sets and jobs in a sortable table, and a new DBB user build VS Code Problems view integration. All users get a 60-day evaluation trial for these advanced capabilities. After that they are licensed via the IBM Developer for z/OS Enterprise Edition offering. The language editing capabilities are still free and will be maintained and enhanced as always. See the [IBM Documentation](https://ibm.biz/code-whatsnew) with details. +**New**: IBM Z Open Editor v4.0.0 introduced advanced capabilities that go beyond program editing. These are at the moment preprocessor support for COBOL, a new Web view built on top of Zowe Explorer that displays z/OS resources such as data sets and jobs in a sortable table, a new DBB user build VS Code Problems view integration, HLASM custom macros support. All users get a 60-day evaluation trial for these advanced capabilities. After that they are licensed via the IBM Developer for z/OS Enterprise Edition offering. The language editing capabilities are still free and will be maintained and enhanced as always. See the [IBM Documentation](https://ibm.biz/code-whatsnew) with details. -**New**: IBM Z Open Editor v3.3.0 introduced AI assistance for Java developers with [IBM watsonx Code Assistant for Z](https://www.ibm.com/products/watsonx-code-assistant-z), which supports AI-assisted transformation of COBOL to Java for modernizing applications. +**Note**: Import update for the release of version 4.3.0 of IBM Z Open Editor: [IBM watsonx Code Assistant for Z](https://www.ibm.com/products/watsonx-code-assistant-z), which supports AI-assisted transformation of COBOL to Java for modernizing applications, has now been moved into it's own VS Code extension IBM watsonx Code Assistant for Z version 2.0.0. All functionality has been migrated into this dedicated extension. Receive your copy of the Z Code Assistant via your Passport Advantage Online. See the [Documentation](https://www.ibm.com/docs/en/watsonx-code-assistant-4z) for more details. -The core extension provides language support for the IBM Enterprise programming languages for z/OS®. It supports COBOL v6.4, PL/I v6.1, and High Level Assembler for z/OS 3.1 and TSO/E REXX. This also includes capabilities for embedded statements in COBOL and PL/I for CICS 6.1 (6.2 Beta), IMS 15.1.0 and SQL DB2 for z/OS 12.1. Earlier versions of any of these components will also work. IBM Z Open Editor realizes its language support by implementing fully functional [language servers](https://langserver.org/) together with additional editor enhancements that enable IBM Z developers to utilize features such as: +The core extension provides language support for the IBM Enterprise programming languages for z/OS®. It supports COBOL v6.4, PL/I v6.1, High Level Assembler for z/OS 3.1, TSO/E REXX, and z/OS MVS Job Control Language (JCL). This also includes capabilities for embedded statements in COBOL and PL/I for CICS 6.1 (6.2 Beta), IMS 15.1.0 and SQL DB2 for z/OS 12.1. Earlier versions of any of these components will also work. IBM Z Open Editor realizes its language support by implementing fully functional [language servers](https://langserver.org/) together with additional editor enhancements that enable IBM Z developers to utilize features such as: - Real-time syntax checking and highlighting while you type - Problems view with all syntax errors and (in COBOL) unreachable code @@ -31,7 +31,12 @@ The core extension provides language support for the IBM Enterprise programming - Custom code snippet support and more than 200 high value code snippets for COBOL, PL/I, and JCL out of the box - Search and replace refactoring across multiple program files -Note, that for Job Control Language (JCL), the extension only provides syntax highlighting. +Note, that for Job Control Language (JCL), the extension only provides below mentioned features: + +- Real-time syntax checking and highlighting while you type +- Problems view with all syntax errors +- Outline view and outline search +- Code and variable completion To learn more about the IBM Z Open Editor extension's capabilities, we suggest that you walk through our [documentation](https://ibm.github.io/zopeneditor-about/Docs/introduction.html) and try it with the [example repository](https://github.com/IBM/zopeneditor-sample) provided on GitHub. @@ -42,7 +47,6 @@ To interact with z/OS, this extension also automatically co-installs the [Zowe E - [Privacy notice](#privacy-notice-for-feedback) - [Prerequisites](#prerequisites) - [Configuring Java](#configuring-java) -- [IBM watsonx Code Assistant for Z](#generate-java-from-cobol-using-ibm-watsonx-code-assistant-for-z) - [COBOL and PL/I Language Server Protocol capability examples](#language-server-protocol-capability-examples) - [Advanced Capabilities](#advanced-capabilities) @@ -61,7 +65,6 @@ This current release of IBM Z Open Editor will collect anonymous data for the fo - Using common language server operations such as code completion, references, definition, rename - Starting a user build - Responding to the feedback dialog -- Using IBM watsonx Code Assistant for Z operations - Activating trial or full unlock licenses Such events are logged with the following information: @@ -89,9 +92,9 @@ Here are the prerequisites for installing this extension in Visual Studio Code: - You can use versions 11, or 17 of [IBM's Semeru Runtime](https://developer.ibm.com/languages/java/semeru-runtimes/) that can be [downloaded here](https://developer.ibm.com/languages/java/semeru-runtimes/downloads). - You can use [Oracle Java 11](https://www.oracle.com/java/technologies/downloads/#java11) or the LTS versions 17 of Oracle Java. - You can also use version 11, or 17 of the [OpenJDK](https://adoptium.net/index.html). - - Newer versions of Java should also work, but are not as rigorously tested for Z Open Editor as Java 11. + - Newer versions of Java should also work, but are not as rigorously tested for Z Open Editor as Java 11 and 17. - Various settings are provided to configure how the extension uses Java. See the [Configuring Java](#configuring-java) section below for more details. -- Zowe CLI 7.21.3 or newer and the Zowe Explorer VS Code extension v2.14.1 or newer: To make use of [Zowe](https://zowe.org) to open and edit files directly from z/OS MVS or USS, you need Zowe client software and either IBM RSE API or z/OSMF configured. For more information, see [Installing Zowe CLI](https://docs.zowe.org/stable/user-guide/cli-installcli) and [VS Code Extension for Zowe](https://marketplace.visualstudio.com/items?itemName=Zowe.vscode-extension-for-zowe#user-content-prerequisites). Once installed, you must [create a Zowe CLI team configuration file](https://ibm.github.io/zopeneditor-about/Docs/interact_zos_overview.html) so that data sets can be found and accessed. +- Zowe CLI 7.24.1 or newer (optional, but recommended) and the Zowe Explorer VS Code extension v2.16.0 or newer (required): To make use of [Zowe](https://zowe.org) to open and edit files directly from z/OS MVS or USS, you need Zowe client software and either IBM RSE API or z/OSMF configured. For more information, see [Installing Zowe CLI](https://docs.zowe.org/stable/user-guide/cli-installcli) and [VS Code Extension for Zowe](https://marketplace.visualstudio.com/items?itemName=Zowe.vscode-extension-for-zowe#user-content-prerequisites). Once installed, you must [create a Zowe CLI team configuration file](https://ibm.github.io/zopeneditor-about/Docs/interact_zos_overview.html) so that data sets can be found and accessed. - (Optional) Git: To use the features that involve Git, you must install Git and have it available in your system path so that VS Code can display it. On Macs, Git comes out of the box. On Linux, you can install Git with your distribution's package manager. On Windows, you can get Git from . @@ -126,13 +129,13 @@ To define a user setting use the Preferences > Settings menu and either locate t On Mac: ```json -"zopeneditor.JAVA_HOME": "/Library/Java/JavaVirtualMachines/jdk11.0.15+10.jdk/Contents/Home" +"zopeneditor.JAVA_HOME": "/Library/Java/JavaVirtualMachines/jdk11.0.23+9.jdk/Contents/Home" ``` On Windows: ```json -"zopeneditor.JAVA_HOME": "C:\\Program Files\\Java\\jdk11.0.15+10" +"zopeneditor.JAVA_HOME": "C:\\Program Files\\Java\\jdk11.0.23+9" ``` ### Configuring the Java memory allocation @@ -143,13 +146,9 @@ By default, the language server clients that start the language servers for COBO "zopeneditor.server.memoryAllocation": 640 ``` -## Generate Java from COBOL using IBM watsonx Code Assistant for Z - -Enable IBM watsonx Code Assistant and upload a COBOL service that is prepared for transformation. Use AI-assistance to generate Java classes and object-oriented Java business logic that is semantically equivalent to existing COBOL to help you quickly get started modernizing your applications. To learn more, visit the [IBM watsonx Code Assistant Product guide](https://www.ibm.com/products/watsonx-code-assistant-z). - ## Language Server Protocol capability examples -The following animations just give you glimpse of the capabilities available in IBM Z Open Editor. We are showing you different examples using different programming languages, but most of the features shown here are available for all four languages: COBOL, PL/I, HLASM, as well as REXX. +The following animations just give you glimpse of the capabilities available in IBM Z Open Editor. We are showing you different examples using different programming languages, but most of the features shown here are available for all four languages: COBOL, PL/I, HLASM, JCL, as well as REXX. ### Outline view explorer diff --git a/product-licenses/LICENSE.txt b/product-licenses/LICENSE.txt index d851fcdaf..2b83d765c 100644 --- a/product-licenses/LICENSE.txt +++ b/product-licenses/LICENSE.txt @@ -3,7 +3,7 @@ LICENSE INFORMATION The Programs listed below are licensed under the following License Information terms and conditions in addition to the Program license terms previously agreed to by Client and IBM. If Client does not have previously agreed to license terms in effect for the Program, the International License Agreement for Non-Warranted Programs (i125-5589-06) applies. Program Name (Program Number): -IBM Z Open Editor V4.1 (Plug-in) +IBM Z Open Editor V4.3 (Plug-in) The following standard terms apply to Licensee's use of the Program. @@ -12,9 +12,9 @@ Modifiable Third Party Code To the extent, if any, in the NOTICES file IBM identifies third party code as "Modifiable Third Party Code," IBM authorizes Licensee to 1) modify the Modifiable Third Party Code and 2) reverse engineer the Program modules that directly interface with the Modifiable Third Party Code provided that it is only for the purpose of debugging Licensee's modifications to such third party code. IBM's service and support obligations, if any, apply only to the unmodified Program. -L/N: L-LEYT-2LK79N -D/N: L-LEYT-2LK79N -P/N: L-LEYT-2LK79N +L/N: L-MZTN-W7GQBK +D/N: L-MZTN-W7GQBK +P/N: L-MZTN-W7GQBK International License Agreement for Non-Warranted Programs @@ -503,4 +503,3 @@ In Czech Republic: Licensee expressly accepts the terms of this agreement which In Romania: The Licensee expressly accepts, the following standard clauses that may be deemed 'unusual clauses' as per the provisions of article 1203 Romanian Civil Code: clauses 2, 4, 5, 8j. The Licensee hereby acknowledges that it was sufficiently informed of all the provisions of this Agreement, including the clauses mentioned above, it properly analyzed and understood such provisions and had the opportunity to negotiate the terms of each clause. i125-5589-06 (10-2021) - diff --git a/product-licenses/NOTICES.txt b/product-licenses/NOTICES.txt index cf108fe71..a589cffd8 100644 --- a/product-licenses/NOTICES.txt +++ b/product-licenses/NOTICES.txt @@ -1,33 +1,6 @@ NOTICES AND INFORMATION -IBM Z Open Editor V4.1 - -The IBM license agreement and any applicable information on the web -download page for IBM products refers Licensee to this file for details -concerning notices applicable to code included in the products listed -above ("the Program"). - -Notwithstanding the terms and conditions of any other agreement Licensee -may have with IBM or any of its related or affiliated entities -(collectively "IBM"), the third party code identified below is subject -to the terms and conditions of the IBM license agreement for the Program -and not the license terms that may be contained in the notices below. -The notices are provided for informational purposes. - -Please note: This Notices file may identify information that is not used -by, or that was not shipped with, the Program as Licensee installed it. - -IMPORTANT: IBM does not represent or warrant that the information in this -NOTICES file is accurate. Third party websites are independent of IBM and -IBM does not represent or warrant that the information on any third party -website referenced in this NOTICES file is accurate. IBM disclaims any -and all liability for errors and omissions or for any damages accruing -from the use of this NOTICES file or its contents, including without -limitation URLs or references to any third party websites. - -NOTICES AND INFORMATION - -IBM Z Open Editor V4.1 +IBM Z Open Editor V4.3 The IBM license agreement and any applicable information on the web download page for IBM products refers Licensee to this file for details @@ -55,7 +28,7 @@ limitation URLs or references to any third party websites. ===================================================================== -The following are Notices for Z Open Editor V4.1 +The following are Notices for Z Open Editor V4.3 ===================================================================== START OF APACHE LICENSE 2.0 NOTICES AND INFORMATION @@ -3300,13 +3273,6 @@ END OF UNLICENSE NOTICES AND INFORMATION ===================================================================== -End of Notices for IBM Z Open Editor 4.1 +End of Notices for IBM Z Open Editor 4.3 ===================================================================== - - - - -L/N: L-LEYT-2LK79N -D/N: L-LEYT-2LK79N -P/N: L-LEYT-2LK79N diff --git a/product-licenses/rse-api-for-zowe-cli/LICENSE.txt b/product-licenses/rse-api-for-zowe-cli/LICENSE.txt index e1bc34dac..3f2f875be 100644 --- a/product-licenses/rse-api-for-zowe-cli/LICENSE.txt +++ b/product-licenses/rse-api-for-zowe-cli/LICENSE.txt @@ -3,7 +3,7 @@ LICENSE INFORMATION The Programs listed below are licensed under the following License Information terms and conditions in addition to the Program license terms previously agreed to by Client and IBM. If Client does not have previously agreed to license terms in effect for the Program, the International License Agreement for Non-Warranted Programs (i125-5589-06) applies. Program Name (Program Number): -IBM RSE API Plug-in for Zowe CLI V4.1 (Plug-in) +IBM RSE API Plug-in for Zowe CLI V4.3 (Plug-in) The following standard terms apply to Licensee's use of the Program. @@ -12,9 +12,9 @@ Modifiable Third Party Code To the extent, if any, in the NOTICES file IBM identifies third party code as "Modifiable Third Party Code," IBM authorizes Licensee to 1) modify the Modifiable Third Party Code and 2) reverse engineer the Program modules that directly interface with the Modifiable Third Party Code provided that it is only for the purpose of debugging Licensee's modifications to such third party code. IBM's service and support obligations, if any, apply only to the unmodified Program. -L/N: L-MJHW-2B5AZ3 -D/N: L-MJHW-2B5AZ3 -P/N: L-MJHW-2B5AZ3 +L/N: L-KVNQ-DWB7BX +D/N: L-KVNQ-DWB7BX +P/N: L-KVNQ-DWB7BX International License Agreement for Non-Warranted Programs diff --git a/product-licenses/rse-api-for-zowe-cli/NOTICES.txt b/product-licenses/rse-api-for-zowe-cli/NOTICES.txt index 9b79d3d2d..4f6ce486c 100644 --- a/product-licenses/rse-api-for-zowe-cli/NOTICES.txt +++ b/product-licenses/rse-api-for-zowe-cli/NOTICES.txt @@ -1,6 +1,6 @@ NOTICES AND INFORMATION -IBM RSE API Plug-in for Zowe CLI V4.1 +IBM RSE API Plug-in for Zowe CLI V4.3 The IBM license agreement and any applicable information on the web download page for IBM products refers Licensee to this file for details @@ -26,7 +26,7 @@ from the use of this NOTICES file or its contents, including without limitation URLs or references to any third party websites. ===================================================================== -Start of Notices for IBM RSE API Plug-in for Zowe CLI 4.1.x +Start of Notices for IBM RSE API Plug-in for Zowe CLI 4.3.x ===================================================================== ===================================================================== @@ -785,7 +785,7 @@ END OF UNLICENSE NOTICES AND INFORMATION ===================================================================== -End of Notices for IBM RSE API Plug-in for Zowe CLI 4.1.x +End of Notices for IBM RSE API Plug-in for Zowe CLI 4.3.x ===================================================================== @@ -793,6 +793,6 @@ End of Notices for IBM RSE API Plug-in for Zowe CLI 4.1.x -L/N: L-MJHW-2B5AZ3 -D/N: L-MJHW-2B5AZ3 -P/N: L-MJHW-2B5AZ3 +L/N: L-KVNQ-DWB7BX +D/N: L-KVNQ-DWB7BX +P/N: L-KVNQ-DWB7BX diff --git a/product-licenses/zapp/LICENSE.txt b/product-licenses/zapp/LICENSE.txt index 54fe1df01..930e63fdc 100644 --- a/product-licenses/zapp/LICENSE.txt +++ b/product-licenses/zapp/LICENSE.txt @@ -3,7 +3,7 @@ LICENSE INFORMATION The Programs listed below are licensed under the following License Information terms and conditions in addition to the Program license terms previously agreed to by Client and IBM. If Client does not have previously agreed to license terms in effect for the Program, the International License Agreement for Non-Warranted Programs (i125-5589-06) applies. Program Name (Program Number): -IBM Zapp Core Library V1.1 (Plug-in) +IBM Zapp Core Library V1.2 (Plug-in) The following standard terms apply to Licensee's use of the Program. diff --git a/product-licenses/zapp/NOTICES.txt b/product-licenses/zapp/NOTICES.txt index 02bc9ae38..bebcab4d6 100644 --- a/product-licenses/zapp/NOTICES.txt +++ b/product-licenses/zapp/NOTICES.txt @@ -1,6 +1,6 @@ NOTICES AND INFORMATION -IBM Zapp Core Library V1.1 +IBM Zapp Core Library V1.2 The IBM license agreement and any applicable information on the web download page for IBM products refers Licensee to this file for details @@ -25,7 +25,7 @@ and all liability for errors and omissions or for any damages accruing from the use of this NOTICES file or its contents, including without limitation URLs or references to any third party websites. -Start of Notices for IBM Zapp Core Library 1.1.0 +Start of Notices for IBM Zapp Core Library 1.2.0 ===================================================================== ===================================================================== @@ -663,7 +663,7 @@ For more information, please refer to END OF UNLICENSE NOTICES AND INFORMATION ===================================================================== -End of Notices for IBM Zapp Core Library 1.1.0 +End of Notices for IBM Zapp Core Library 1.2.0 L/N: L-KTSR-8RJLXL diff --git a/zapp/zapp-schema-1.2.0.json b/zapp/zapp-schema-1.2.0.json new file mode 100644 index 000000000..784b51591 --- /dev/null +++ b/zapp/zapp-schema-1.2.0.json @@ -0,0 +1,512 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "IBM Zapp Document", + "description": "JSON schema for zapp.json and zapp.yaml files. Version 1.2.0 -- Licensed Materials - Property of IBM - (c) Copyright IBM Corporation 2022, 2024. All Rights Reserved.", + "type": "object", + "definitions": { + "coreProperties": { + "type": "object", + "required": ["name"], + "additionalProperties": false, + "properties": { + "name": { + "description": "The name of the Z Project.", + "type": "string", + "maxLength": 214, + "minLength": 1 + }, + "description": { + "description": "This helps people understand your project as it would be used by tools.", + "type": "string" + }, + "version": { + "description": "Version is a string and it must be parsable for managing dependencies.", + "type": "string", + "default": "1.0.0" + }, + "groupId": { + "description": "Defines a group name that is shared for each application part in case of applications composed of multiple parts. Allows to uniquely identify the parts by concatenating with the artifact id. For example a groupId `com.ibm.wazi` with an artifactId `service` would create the unique application identifier `com.ibm.wazi.service`.", + "type": "string", + "examples": ["com.ibm.wazi", "payments"] + }, + "artifactId": { + "description": "Define id of the application artifact. Use it in combination with a groupId for multi-part applications.", + "type": "string", + "default": "", + "examples": ["sam"] + }, + "parentId": { + "description": "In case of a multi-part application defines the name of the parent application part. This zapp will inherit properties such as propertyGroups defined in the parent.", + "type": "string", + "default": "", + "examples": ["com.ibm.wazi.parent"] + }, + "keywords": { + "description": "This helps people discover your project.", + "type": "array", + "items": { + "type": "string" + } + }, + "homepage": { + "description": "The url to the project homepage.", + "type": "string", + "oneOf": [ + { + "format": "uri" + }, + { + "enum": ["."] + } + ] + }, + "license": { + "type": "string", + "description": "You should specify a license for your package so that people know how they are permitted to use it and any restrictions you're placing on it." + }, + "author": { + "$ref": "#/definitions/person" + }, + "contributors": { + "description": "A list of people who contributed to this package.", + "type": "array", + "items": { + "$ref": "#/definitions/person" + }, + "minItems": 1 + }, + "maintainers": { + "description": "A list of people who maintain this package.", + "type": "array", + "items": { + "$ref": "#/definitions/person" + }, + "minItems": 1 + }, + "propertyGroups": { + "description": "A list of properties defining path names for resolving dependencies.", + "type": "array", + "items": { + "$ref": "#/definitions/propertyGroupItem" + }, + "minItems": 1 + }, + "profiles": { + "description": "Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.", + "type": "array", + "items": { + "$ref": "#/definitions/profile" + }, + "minItems": 1 + } + } + }, + "propertyGroupItem": { + "type": "object", + "additionalProperties": false, + "required": ["name"], + "properties": { + "name": { + "type": "string", + "description": "The name of the property group, which is used in hovers and error messages.", + "examples": ["sample-local", "sample-remote"] + }, + "language": { + "type": "string", + "enum": ["cobol", "pl1", "hlasm", "rexx", "jcl"], + "description": "Limits the property group to one specific language." + }, + "compilerOptions": { + "type": "string", + "description": "Global compiler options separated by a comma that impact the parsing of the programs for the editor. Requires that you specify a language. If there are multiple Property Groups for a language with compiler option then they will be concatenated." + }, + "libraries": { + "type": "array", + "description": "An array of potential library locations defining the search order for include files. Libraries with the name 'syslib' will be handled as default include locations. The list can contain many entries of the type 'local' or 'mvs'. It can contain items of the same type twice in case, for example, you want to search in remote locations first, then some local location, and if still not found more remote locations.", + "items": { + "$ref": "#/definitions/libraryItem" + }, + "minItems": 1 + } + } + }, + "libraryItem": { + "type": "object", + "additionalProperties": false, + "required": ["name", "type", "locations"], + "properties": { + "name": { + "type": "string", + "description": "Name of the library. The default name should be `syslib` if using unnamed libraries.", + "default": "syslib", + "examples": ["syslib", "maclib", "currencylib"] + }, + "type": { + "type": "string", + "enum": ["mvs", "local"], + "description": "The type of the property group defining where dependencies should be located. Allowed values are 'local' for using a local workspace and 'mvs' for dependencies located in MVS Datasets.", + "default": "local", + "examples": ["local", "mvs"] + }, + "locations": { + "type": "array", + "description": "An array of include file locations. For 'local' libraries values can be absolute and relative filename paths using GLOB patterns. For 'mvs' libraries value can be data set names. GLOB patterns for data sets are currently not supported.", + "items": { + "type": "string" + }, + "minItems": 1, + "examples": ["**/copybook", "USER1.SAMPLE.COBCOPY"] + } + } + }, + "person": { + "description": "A person who has been involved in creating or maintaining this package", + "type": ["object", "string"], + "required": ["name"], + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "email": { + "type": "string", + "format": "email" + } + } + }, + "profile": { + "type": "object", + "description": "Profiles are additional groups of properties that should only become valid under specific conditions such as running in a build job or as part of a debug session.", + "additionalProperties": false, + "required": ["name", "type"], + "properties": { + "name": { + "type": "string", + "description": "The name of the profile.", + "examples": ["dbb-build"] + }, + "type": { + "type": "string", + "enum": ["dbb", "rseapi", "debug", "preprocessor", "test"], + "description": "The type of the profile.", + "default": "dbb", + "examples": ["dbb", "rseapi", "preprocessor"] + }, + "location": { + "type": "string", + "enum": ["mvs", "local"], + "description": "A string of include file locations. For 'local' libraries values can be absolute and relative filename paths using GLOB patterns. For 'mvs' libraries value can be data set names. GLOB patterns for dat sets are currently not supported.", + "examples": ["**/copybook", "USER1.SAMPLE.COBCOPY"] + }, + "settings": { + "description": "Settings objects specific to the type specified for the profile.", + "type": "object" + } + }, + "anyOf": [ + { + "required": ["name", "type", "settings"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "type": { "const": "dbb", "type": "string" }, + "settings": { + "$ref": "#/definitions/dbbSettingsItem" + } + } + }, + { + "required": ["name", "type", "settings"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "type": { "const": "rseapi", "type": "string" }, + "settings": { + "$ref": "#/definitions/rseapiSettingsItem" + } + } + }, + { + "required": ["name", "type", "settings", "location"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "type": { "const": "preprocessor", "type": "string" }, + "location": { "const": "local", "type": "string" }, + "settings": { + "$ref": "#/definitions/localPreprocessorSettingsItem" + } + } + }, + { + "required": ["name", "type", "settings", "location"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "type": { "const": "preprocessor", "type": "string" }, + "location": { "const": "mvs", "type": "string" }, + "settings": { + "$ref": "#/definitions/mvsPreprocessorSettingsItem" + } + } + }, + { + "required": ["name", "type", "settings"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "type": { "const": "test", "type": "string" }, + "settings": { + "$ref": "#/definitions/testSettingsItem" + } + } + } + ] + }, + "dbbSettingsItem": { + "type": "object", + "additionalProperties": false, + "required": ["application", "command"], + "description": "DBB build script properties for running User Build on remote host.", + "properties": { + "application": { + "type": "string", + "description": "Defines the name of the application to build. Will be used to create a folder on USS to upload all files to." + }, + "command": { + "type": "string", + "description": "Command that the build script is executed with such as the path to groovyz and it's parameters." + }, + "buildScriptPath": { + "type": "string", + "description": "The full path of build script on the remote host that should be used with the command." + }, + "buildScriptArgs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of strings that are the parameters for the build script. Check the documentation for built-in variables, such as the name of the program to build, that can be used here." + }, + "additionalDependencies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Lists of GLOB patterns that define the files that should be uploaded to USS for a build. Relative path names are interpreted relative to the location of the ZAPP file that is being used for the build, which is a ZAPP file in the same workspace as the program to be build." + }, + "logFilePatterns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Lists of GLOB patterns that define the files that should be downloaded from USS after the build. Relative path names are interpreted relative to the DBB log directory user setting. If not provided then all files of the user setting location will be downloaded." + } + } + }, + "rseapiSettingsItem": { + "type": "object", + "additionalProperties": false, + "description": "RSE API client settings for interactions with a z/OS remote host running an RSE API server.", + "required": ["mappings", "default.encoding"], + "properties": { + "mappings": { + "type": "array", + "description": "A list of mapping objects that map local file extensions to transfer modes and encodings to MVS datasets that can be specified using wildcards.", + "items": { "$ref": "#/definitions/rseapiSettingsItemMapping" } + }, + "default.encoding": { + "type": "string", + "description": "The encoding to be used when no mapping can be found. If not provided then either the user or server default will be used." + } + } + }, + "rseapiSettingsItemMapping": { + "type": "object", + "additionalProperties": false, + "description": "One mapping that contains at least transfer and resource values.", + "properties": { + "extension": { + "type": "string", + "description": "A local file extension such as cbl or pl1." + }, + "transfer": { + "type": "string", + "enum": ["text", "binary"], + "description": "The transfer mode to be used. Can be 'text' or 'binary'." + }, + "resource": { + "type": "string", + "description": "The data set name to be mapped to. Can use a wildcard such as '**CPY'." + }, + "encoding": { + "type": "string", + "description": "The encoding to be used for text transfer. See the RSE API documentation for the values allowed." + }, + "memberMappings": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "One member mapping that contains at least transfer and resource values.", + "properties": { + "extension": { + "type": "string", + "description": "A local file extension such as cbl or pl1." + }, + "transfer": { + "type": "string", + "enum": ["text", "binary"], + "description": "The transfer mode to be used. Can be 'text' or 'binary'." + }, + "encoding": { + "type": "string", + "description": "The encoding to be used for text transfer. See the RSE API documentation for the values allowed." + }, + "resource": { + "type": "string", + "description": "The data set member name to be mapped to. Can use a wildcard such as '**CPY'." + } + } + }, + "description": "A nested mappings array with resource mappings to members of the data sets that were mapped by the parent mapping." + } + } + }, + "localPreprocessorSettingsItem": { + "type": "object", + "additionalProperties": false, + "description": "Preprocessor properties for preprocessing COBOL/PL/I files.", + "required": ["command", "outputPath", "fileExtension"], + "properties": { + "command": { + "type": "string", + "description": "The command to run to execute the preprocessor executable." + }, + "outputPath": { + "type": "string", + "description": "Path where preprocessor produces its build output." + }, + "fileExtension": { + "type": "string", + "description": "The desired file extension for the post-processed file." + }, + "environmentVariables": { + "type": "object", + "additionalProperties": false, + "description": "Specifies any user defined environment variables to be passed to the preprocessor.", + "patternProperties": { + "[a-zA-Z_][a-zA-Z0-9_]*": { + "anyOf": [{ "type": "string" }] + } + } + } + } + }, + "mvsPreprocessorSettingsItem": { + "type": "object", + "additionalProperties": false, + "description": "Preprocessor properties for preprocessing COBOL/PL/I files.", + "required": ["commandDataSet", "outputDataSet", "tempDataHLQ"], + "properties": { + "commandDataSet": { + "type": "string", + "description": "Specifies an input listing sequential data set." + }, + "commandParameters": { + "type": "string", + "description": "The parameters for the command being run." + }, + "outputDataSet": { + "type": "string", + "description": "Specifies an output listing sequential data set." + }, + "tempDataHLQ": { + "type": "string", + "description": "Specifies the high-level qualifier used for data sets created by plug-in requests to export observation files." + } + } + }, + "testSettingsItem": { + "type": "object", + "additionalProperties": false, + "description": "Test properties for a test case.", + "required": ["unitTest"], + "properties": { + "unitTest": { + "type": "object", + "additionalProperties": false, + "description": "Properties to run a unit test case.", + "required": ["procLib"], + "properties": { + "procLib": { + "type": "array", + "description": "Specifies the list of Procedure libraries.", + "items": { + "type": "string" + } + }, + "allocateWorkingDs": { + "type": "boolean", + "description": " If this option is selected, the data set for the working file is allocated automatically with the allocation options." + }, + "ioDataSetAllocation": { + "type": "object", + "description": "Options to allocate a working file.", + "properties": { + "ioSpaceUnit": { + "type": "string", + "enum": ["TRACKS", "BLOCKS", "CYLINDERS"], + "description": "The unit of primary and secondary space to be allocated." + }, + "ioQuant1": { + "type": "integer", + "description": "The amount of DASD space to be used for primary space allocation (PRIMARY)." + }, + "ioQuant2": { + "type": "integer", + "description": "The amount of DASD space to be used for secondary space allocation (SECONDARY)." + }, + "ioHLQ": { + "type": "string", + "description": "The high-level qualifier for the VSAM or QSAM data files for file I/O simulation. These files are allocated when running a Unit test case." + } + } + }, + "configDS": { + "type": "string", + "description": "Runner configuration destination container." + }, + "resultDS": { + "type": "string", + "description": "Runner result destination container." + }, + "userLibraries": { + "type": "array", + "description": "The datat set of the application under test", + "items": { + "type": "string" + } + }, + "defaultTestCaseFolder": { + "type": "string", + "description": "The default local folder to create the test case artifacts." + }, + "jobcard": { + "type": "string", + "description": "The job card to run a unit test" + } + } + } + } + } + }, + "anyOf": [ + { + "$ref": "#/definitions/coreProperties" + } + ] +}