diff --git a/.github/lychee.toml b/.github/lychee.toml new file mode 100644 index 0000000000..d256ce025a --- /dev/null +++ b/.github/lychee.toml @@ -0,0 +1,12 @@ +# This lychee configuration tries to find dead links in zwe, pswi, and smpe files which may be displayed to the user. +# This does not focus on dead links for internal-facing documentation, e.g. README.md. + +# We're including language sources as well as document files since the language sources embed URLs +# which can be displayed to the user, e.g. 'zwe' shell script commands displaying help information. + +exclude_path = ['smpe/bld/service/_README_sample_sysmod_builds.docx'] +# This exclude list covers known urls which should be ignored, including ones which contained +# templated values in typescript. The templates are covered by a wildcard. +exclude = [ 'https://www.eclipse.org/legal/epl-v20.html', 'https://zowe.org/schemas/*', 'https://www.zowe.org/schemas/*', 'https://discovery', 'https://github.com/zowe/launcher/blob/*', 'https://myregistry/url$', 'https://your-zos-host-name/zosmf/*{1,60}', '^http://service.software.ibm.com/holdata/390holddata.html', ] + +hidden = true diff --git a/.github/scripts/cicd_test/make_matrix.sh b/.github/scripts/cicd_test/make_matrix.sh index 81273471ab..4aea7a10ae 100644 --- a/.github/scripts/cicd_test/make_matrix.sh +++ b/.github/scripts/cicd_test/make_matrix.sh @@ -32,15 +32,14 @@ case $install_test_choice in test_file="$KEYRING_TESTFILE" ;; -"z/OS node v18") - test_file="$ZOS_NODE_V18_TESTFILE" - test_force_system="zzow11" - ;; - "z/OS node v20") test_file="$ZOS_NODE_V20_TESTFILE" ;; +"z/OS node v22") + test_file="$ZOS_NODE_V22_TESTFILE" + ;; + "Non-strict Verify External Certificate") test_file="$NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE" ;; diff --git a/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh b/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh index bce1d40594..89d12cf135 100644 --- a/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh +++ b/.github/scripts/cicd_test/prep7_more_test_prep/06_process_outputs.sh @@ -13,7 +13,7 @@ # Set outputs echo ZOWE_ARTIFACTORY_FINAL=$ZOWE_ARTIFACTORY_FINAL >>$GITHUB_OUTPUT echo ZOWE_ARTIFACTORY_FINAL_FILENAME=$ZOWE_ARTIFACTORY_FINAL_FILENAME >>$GITHUB_OUTPUT -echo NODE_HOME_PATTERN=/ZOWE/node/node-$ZOS_NODE_VERSION-os390-s390x >>$GITHUB_OUTPUT +echo NODE_HOME_PATTERN=/ZOWE/node/node-$ZOS_NODE_VERSION >>$GITHUB_OUTPUT echo TEST_SERVER=$TEST_SERVER >>$GITHUB_OUTPUT echo TEST_SERVER_NICKNAME=$TEST_SERVER_NICKNAME >>$GITHUB_OUTPUT echo EXTENSION_LIST=$EXTENSION_LIST >>$GITHUB_OUTPUT diff --git a/.github/workflows/cicd-test-readme.md b/.github/workflows/cicd-test-readme.md index e1b081a2e5..7e4b80d984 100644 --- a/.github/workflows/cicd-test-readme.md +++ b/.github/workflows/cicd-test-readme.md @@ -29,7 +29,7 @@ Workflow trigger is at [cicd-test](https://github.com/zowe/zowe-install-packagin - SMPE PTF - Extensions - Keyring - - z/OS node v18 + - z/OS node v20 - Non-strict Verify External Certificate - Install PTF twice - VSAM Caching storage method @@ -109,7 +109,7 @@ Background: CICD testing relies on a `zowe.pax` or `zowe-smpe.zip` (for SMPE ins When running CICD integration tests during RC stage, the following string will be parsed into the Github Actions matrix. As a result, a total of 21 independent jobs will be spawned. ``` -basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v18.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09) +basic/install.ts(zzow09,zzow10,zzow11);basic/install-ptf.ts(zzow09,zzow10,zzow11);basic/install-ext.ts(zzow10);extended/keyring.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/node-versions/node-v20.ts(zzow09,zzow10,zzow11);extended/certificates/nonstrict-verify-external-certificate.ts(zzow09) ``` Total elapsed time when running in parallel is approximately 3.5 hours on paper idealy if all parallel jobs are executing at the same time. In reality, from numerous tests performed, total elapsed time is around 4 hours. @@ -121,7 +121,6 @@ Selected test running elapsed time: | ---- | ------------ | | Convenience Pax | 53m | | SMPE PTF | 68m | -| z/OS node v18 | 45m | | z/OS node v20 | 45m | | Keyring | 53m | | Non-strict Verify External Certificate | 51m | diff --git a/.github/workflows/cicd-test.yml b/.github/workflows/cicd-test.yml index ca6ee6e670..1cf8977285 100644 --- a/.github/workflows/cicd-test.yml +++ b/.github/workflows/cicd-test.yml @@ -31,8 +31,8 @@ on: - SMPE PTF - Extensions - Keyring - - z/OS node v18 - z/OS node v20 + - z/OS node v22 - Non-strict Verify External Certificate - Install PTF Twice - VSAM Caching Storage Method @@ -69,8 +69,8 @@ env: DEFAULT_ZOWE_EXT_ARTIFACTORY_PATTERN: libs-snapshot-local/org/zowe/{ext-name}/*/{ext-name}-*.pax # below block can be overwritten, adjusted by DevOps only - # ZOS_NODE_VERSION more to choose from: v16.20.1, v18.16.0 - ZOS_NODE_VERSION: v16.20.1 + # ZOS_NODE_VERSION more to choose from: v18.16.0, v20.11.0 + ZOS_NODE_VERSION: v18.16.0 CLIENT_NODE_VERSION: v12.18.3 INSTALL_TEST_DEBUG_INFORMATION: zowe-install-test:* SANITY_TEST_DEBUG_INFORMATION: zowe-sanity-test:* @@ -81,8 +81,8 @@ env: SMPE_PTF_TESTFILE: basic/install-ptf.ts EXTENSIONS_TESTFILE: basic/install-ext.ts KEYRING_TESTFILE: extended/keyring.ts - ZOS_NODE_V18_TESTFILE: extended/node-versions/node-v18.ts ZOS_NODE_V20_TESTFILE: extended/node-versions/node-v20.ts + ZOS_NODE_V22_TESTFILE: extended/node-versions/node-v22.ts NON_STRICT_VERIFY_EXTERNAL_CERTIFICATE_TESTFILE: extended/certificates/nonstrict-verify-external-certificate.ts INSTALL_PTF_TWICE_TESTFILE: extended/install-ptf-two-times.ts VSAM_CACHING_STORAGE_METHOD_TESTFILE: extended/caching-storages/vsam-storage.ts @@ -90,7 +90,7 @@ env: CONFIG_MANAGER_TESTFILE: extended/config-manager/enable-config-manager.ts GENERAL_API_DOCUMENTATION_TESTFILE: basic/install-api-gen.ts ZOWE_NIGHTLY_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all) - ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v18.ts(zzow11);extended/node-versions/node-v20.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) + ZOWE_RELEASE_TESTS_FULL: basic/install.ts(all);basic/install-ptf.ts(all);basic/install-ext.ts(any);extended/keyring.ts(all);extended/node-versions/node-v20.ts(any);extended/node-versions/node-v22.ts(any);extended/certificates/nonstrict-verify-external-certificate.ts(any);extended/caching-storages/infinispan-storage.ts(any);extended/config-manager/enable-config-manager.ts(any) jobs: display-dispatch-event-id: @@ -298,9 +298,6 @@ jobs: case 'Keyring': eta = 53 break; - case 'z/OS node v18': - eta = 45 - break; case 'z/OS node v20': eta = 45 break; diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml new file mode 100644 index 0000000000..d11b069c7a --- /dev/null +++ b/.github/workflows/link-check.yml @@ -0,0 +1,49 @@ +# This link checker focuses on covering end-user facing links, not developer documentation. +# This means we cover the smp/e, pswi, and zwe content. +# The lychee toml files are set to ignore links which popped up in comments or variables. +permissions: read-all + +name: Link Check CI + +on: + pull_request: + types: [opened, synchronize] + push: + branches: + - 'v3.x/staging' + - 'v2.x/staging' + workflow_dispatch: + +jobs: + lychee-link-check: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Link Checker + id: lychee + uses: lycheeverse/lychee-action@f81112d0d2814ded911bd23e3beaa9dda9093915 # v2.1.0 + with: + fail: true + format: json + output: lychee_output.json + args: --config ./.github/lychee.toml --no-progress --verbose --max-retries 10 'bin/**/*' 'smpe/**/*' 'workflows/**/*' + + - name: Output failed links in console + id: quick-output + if: always() + run: | + if [[ -f "lychee_output.json" ]]; then + jq .fail_map lychee_output.json + else + echo "lychee command failed and didn't produce output" + fi + + - name: Publish Output + id: publish + if: always() + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 + with: + name: lychee_results.json + path: lychee_output.json diff --git a/.pax/pre-packaging.sh b/.pax/pre-packaging.sh index cb17b8244b..dd95ee81f5 100755 --- a/.pax/pre-packaging.sh +++ b/.pax/pre-packaging.sh @@ -190,9 +190,10 @@ BASE_DIR=$( pwd ) # /.pax -# use node v16 to build -export NODE_HOME=/ZOWE/node/node-v16.20.1-os390-s390x - +# use node v18 to build +export NODE_HOME=/ZOWE/node/node-v18.16.0 +export JAVA_HOME=/ZOWE/node/J8.0_64 +export PATH=$JAVA_HOME/bin:$PATH ZOWE_ROOT_DIR="${BASE_DIR}/content" cd "${BASE_DIR}" diff --git a/bin/libs/node.sh b/bin/libs/node.sh index d457c76b2f..4782864d7d 100644 --- a/bin/libs/node.sh +++ b/bin/libs/node.sh @@ -22,7 +22,7 @@ export NODE_STDIN_CCSID=1047 # Workaround Fix for node 8.16.1 that requires compatibility mode for untagged files export __UNTAGGED_READ_MODE=V6 -NODE_MIN=16 +NODE_MIN=18 ensure_node_is_on_path() { if [[ ":${PATH}:" != *":${NODE_HOME}/bin:"* ]]; then diff --git a/bin/libs/node.ts b/bin/libs/node.ts index 3b20ccfd76..40880f5665 100644 --- a/bin/libs/node.ts +++ b/bin/libs/node.ts @@ -18,7 +18,7 @@ import * as shell from './shell'; import * as config from './config'; import { PathAPI as pathoid } from './pathoid'; -const NODE_MIN_VERSION=16; +const NODE_MIN_VERSION=18; // enforce encoding of stdio/stdout/stderr // sometimes /dev/tty* ($SSH_TTY) are not configured properly, for example tagged as binary or wrong encoding diff --git a/manifest.json.template b/manifest.json.template index be11c98858..89c2eb6aab 100644 --- a/manifest.json.template +++ b/manifest.json.template @@ -137,7 +137,7 @@ "version": "~2.0.0-SNAPSHOT" }, "org.zowe.licenses": { - "version": "2.3.0", + "version": "2.18.0", "artifact": "zowe_licenses_full.zip" } }, @@ -391,6 +391,14 @@ "tag": "v2.x/master", "destinations": ["Zowe PAX"] }] + }, { + "componentGroup": "Zowe Client Python SDK", + "entries": [{ + "repository": "zowe-client-python-sdk", + "core": false, + "tag": "main", + "destinations": ["Zowe Client Python SDK"] + }] } ], "imageDependencies": { diff --git a/playbooks/group_vars/marist.yml b/playbooks/group_vars/marist.yml index d6eed7dbfc..92ff54eb00 100644 --- a/playbooks/group_vars/marist.yml +++ b/playbooks/group_vars/marist.yml @@ -9,6 +9,7 @@ zowe_keystore_dir: /ZOWE/tmp/keystore zowe_install_logs_dir: /ZOWE/tmp/logs zowe_dataset_prefix: ZOWEAD3.ZWE zowe_apiml_verify_certficates_of_services: false +zos_java_home: /ZOWE/node/J8.0_64 # enable Non-Strict verify certificates by default zowe_apiml_nonstrict_verify_certficates_of_services: true zowe_jcllib: ZOWEAD3.ZWE.JCLLIB diff --git a/tests/installation/src/__tests__/extended/node-versions/node-v18.ts b/tests/installation/src/__tests__/extended/node-versions/node-v22.ts similarity index 85% rename from tests/installation/src/__tests__/extended/node-versions/node-v18.ts rename to tests/installation/src/__tests__/extended/node-versions/node-v22.ts index d6345a1df6..8375055f01 100644 --- a/tests/installation/src/__tests__/extended/node-versions/node-v18.ts +++ b/tests/installation/src/__tests__/extended/node-versions/node-v22.ts @@ -5,7 +5,7 @@ * * SPDX-License-Identifier: EPL-2.0 * - * Copyright IBM Corporation 2022 + * Copyright Zowe Contributors 2024 */ import { @@ -15,9 +15,8 @@ import { } from '../../../utils'; import { TEST_TIMEOUT_CONVENIENCE_BUILD } from '../../../constants'; -// Only runs on zzow11 at time of change (04.2023). See cicd-test.yml and make_matrix.sh. const testServer = process.env.TEST_SERVER; -const testSuiteName = 'Test convenience build installation with node.js v18'; +const testSuiteName = 'Test convenience build installation with node.js v22'; describe(testSuiteName, () => { beforeAll(() => { // validate variables @@ -33,7 +32,7 @@ describe(testSuiteName, () => { { 'zowe_build_local': process.env['ZOWE_BUILD_LOCAL'], 'zowe_custom_for_test': 'true', - 'zos_node_home': '/ZOWE/node/node-v18.16.0', + 'zos_node_home': '/ZOWE/node/node-v22.10.0', 'zowe_lock_keystore': 'false', } ); diff --git a/workflows/files/ZWELOADC.xml b/workflows/files/ZWELOADC.xml index c823b2b813..786e28fb37 100644 --- a/workflows/files/ZWELOADC.xml +++ b/workflows/files/ZWELOADC.xml @@ -192,7 +192,7 @@ Use this step to define the variables for RACF.

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation here - configure RACF security certificates + configure RACF security certificates or there RACDCERT ADD (Add certificate) command.

]]> 1 @@ -252,7 +252,7 @@ Use this step to define the variables for ACF2.

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation - configure ACF2 security certificates.

+ configure ACF2 security certificates.

]]>
1 Security Administrator @@ -367,7 +367,7 @@ This step will load signed client authentication certificate from the ${instance-output_dataset} into ESM

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation here - configure RACF security certificates
+ configure RACF security certificates
or there RACDCERT ADD (Add certificate) command.

]]>
1 @@ -452,7 +452,7 @@ DCDSN(${instance-output_dataset}) TRUST This step will load signed client authentication certificate from the ${instance-output_dataset} into ESM

For more information about security system setup and it's variables, please open via right-click in new tab or window and refer to security documentation - configure ACF2 security certificates.

+ configure ACF2 security certificates.

]]>
1 Security Administrator