Skip to content

Latest commit

 

History

History
1090 lines (1060 loc) · 76.7 KB

vNext.md

File metadata and controls

1090 lines (1060 loc) · 76.7 KB


<style> table, th, td { border: 1px solid black; padding: 4px; } .faq-hide { display: none; } .bluebackground.conformance-criteria h5, .bluebackground.conformance-criteria .card-text, .bluebackground.conformance-criteria .card-body { color: #145391; } p .card-black { color: black; } </style>

Table of Contents

Latest Announcements

Starting from 12/08, the Zowe Onboarding Squad will hold the Office Hours to discuss the details about the upcoming V2 release. More information can be found in the Office Hour section.

The V2 documentation site is available at V2 Docs Site Preview

First preview build of Zowe is available at: https://zowe.jfrog.io/zowe/libs-snapshot-local/org/zowe/2.0.0-PR-2568/zowe-2.0.0-pr-2568-7-20220124181541.pax. It's just a preview and we are still working on the build. We will announce version ready for testing extensions early.

General Information

If you want to learn more about what you can expect compatibility wise, the statement is here

Coming changes to the functionality

Breaking changes
  • Removed the support for the old path pattern (#1770)
  • Removed the support for different authentication schemas for different instances of service (#1051)
Important updates
  • Moved to the Material UI from Mineral UI (#1169)
  • New change password as a part of the API Catalog (#1531)

Breaking changes for Zowe CLI end users

  • zowe config no longer manages app settings (Imperative & CLI)
  • fail-on-error default changed to true for zowe plugins validate (Imperative & CLI)
  • Default Imperative and CLI log level changed from DEBUG to WARN (Imperative & CLI), which potentially changes troubleshooting steps for providing information to support.

Breaking changes that could prevent a V1 plug-in (or SDK) from working in V2

  • CLI package should be removed as a plug-in peer dep (Imperative)
  • AbstractRestClient.mDecode defaults to true so any plugin with custom RestClient implementation that adds gzip decompression may break
  • The return value for PluginManagementFacility.requirePluginModuleCallback changed. 
    Context:
    Application (and Plugin) developers requiring a module from a plug-in’s relative path using the requirePluginModuleCallback function no longer need to provide the plug-in name in a separate variable this.pluginNmForUseInCallback = pluginName
    before binding the class this.requirePluginModuleCallback.bind(this).
    Instead they can call this.requirePluginModuleCallback(pluginName).

    Common usage: ConfigurationLoader.load

    Before:
    this.pluginNmForUseInCallback = pluginName
    ConfigurationLoader.load(null,pkgJsonData,this.requirePluginModuleCallback.bind(this))

    After:
    pluginConfig = ConfigurationLoader.load(null,pkgJsonData,this.requirePluginModuleCallback(pluginName))

The following changes were marked for deprecation in the zowe-v1-lts release. These changes are also less likely to impact plug-ins.

  • AbstractRestClient.performRest → AbstractRestClient.request 
  • AbstractSession.HTTP_PROTOCOL → SessConstants.HTTP_Protocol 
  • AbstractSession.HTTPS_PROTOCOL → SessConstants.HTTPS_Protocol 
  • AbstractSession.TYPE_NONE → SessConstants.AUTH_TYPE_NONE 
  • AbstractSession.TYPE_BASIC → SessConstants.AUTH_TYPE_BASIC 
  • AbstractSession.TYPE_BEARER → SessConstants.AUTH_TYPE_BEARER
  • AbstractSession.TYPE_TOKEN → SessConstants.AUTH_TYPE_TOKEN 
  • ICliLoadProfile.ICliILoadProfile → ICliLoadProfile.ICliLoadProfile 
  • IImperativeErrorParms.suppressReport → removed 
  • IImperativeConfig.pluginBaseCliVersion → removed 
  • CliUtils.promptForInput → CliUtils.readPrompt 
  • CliUtils.promptWithTimeout → CliUtils.readPrompt 
  • (zosmf) IZosfmMessages → IZosmfMessages  
  • (workflows) listWorkflows → getWorkflows 
  • (workflows) getResourcesQuery → getResourceQuery 
  • (workflows) archiveWorfklowByKey → archiveWorkflowByKey 
  • (uss) createBasicSshSession → createSshSessCfgFromArgs 
  • (uss) createBasicSshSessionFromArguments → createSshSessCfgFromArgs 
  • (zosmf) createBasicZosmfSession → createSessCfgFromArgs 
  • (zosmf) createBasicZosmfSessionFromArguments → createSessCfgFromArgs 
  • (files) bufferToUSSFile → bufferToUssFile 
  • (files) streamToUSSFile → streamToUssFile
  • (files) fileToUSSFile → fileToUssFile 

Breaking changes for Zowe CLI & Imperative plug-in developers (V2-V2 - these changes only impacted early adopters of @next as these are breaking changes made during the technical preview validation phase - thanks to the community for their feedback)

  • tokenType and tokenValue were combined into authToken and we later reverted this change (Imperative & CLI) 
  • Options in zowe config group renamed: --user--user-config and --global--global-config
  • Zowe.schema.json format changed a few times (version 2, version 3): ConfigSchemas.loadProfileSchemasConfigSchemas.loadSchema

    Config.set no longer coerces string values to other types unless parseString = true (potential SDK impact - not CLI Plug-in impact)

Systems
  • CI/CD
    • Define new FMID AZWE002 for Zowe v2
    • Start building 'v2' Zowe
    • Zowe v2: Review usage of z/OS system resources
  • Install and Packaging
    • New Feature: Introduced a new server command “zwe” to balance between simplification and flexibility on installation and configuration.
      • Almost all Zowe utility scripts in v1 are consolidated into new “zwe” server command. This new command defines consistent help messages, logging options, and so on.
        • You can type `zwe -h` to get help messages anytime you feel lost.
        • Consistent `-log-dir|-l` to allow you to write logs to the target directory.
      • Provides shell function library to help extensions to achieve common tasks. For example, execute TSO command, operator command, submit job and check job completion, and so on.
        • Keep away from commands/functions marked as experimental and internal.
      • Installation / Configuration changes
        • During installation, no new runtime directory will be created.
        • A zowe.yaml file can be used to centralize all configuration options. This configuration is compatible with all Zowe use cases (including high availability and containerization).
        • For almost all Zowe configuration steps, an automation option “zwe init” command is provided.
        • You can still choose to run all steps one by one.
        • The `--security-dry-run` mode allows you to generate security commands and pass along to your system admin.
        • You can run all steps from USS now.
    • New Feature: A Zowe component or extension can use manifest.yaml to define how it interacts with Zowe and other components.
      • The component or extension must define a manifest.yaml or manifest.json file to describe itself.
      • The manifest allows you to define:
        • how to register on Zowe APIML Discovery
        • how to register under Zowe Desktop
        • whether it’s Java extension library for APIML, and so on
      • Components can define their own `configs` in manifest.yaml which shows the user how to customize this component and provides default value if they are not defined.
        • This option is compatible with Zowe running in high availability mode.
    • New Feature: Introduced new data sets to better organize the contents.
      • Added `SZWEEXEC` to contain few utility tools.
      • You can customize your own PARMLIB, APF Authorized LOADLIB and APF-authorized ZIS plug-ins library.
      • `CUST.JCLIB` is a data set where Zowe will store temporary JCLs.
    • New Feature: Use PARMLIB to configure Zowe.
      • With traditional PARMLIB concatenation, system programmers can plan their Zowe rollout more like other z/OS products.
      • Multiple YAML configurations will be concatenated and merged.
      • JSON Schema is introduced to help on validating user customized configurations.
      • We are also investigating full Non-USS ways to install/configure Zowe for SMPE users.
    • Breaking changes
      • You must pass `-ppx` when you unpax the Zowe convenience build to preserve extended file attributes.
      • All utility scripts, like `zowe-install.sh`, `zowe-install-xmem.sh`, `zowe-install-proc.sh`, `validate-directory-is-accessible.sh`, and so on, are removed and migrated to the new `zwe` server command format.
      • If you rely on some of the scripts, please find the alternative new “zwe” command or shell library functions.
      • `ZWESVSTC` is removed and `ZWESLSTC` will replace it to start Zowe.
      • Must use the `P` command to terminate Zowe instead of using the `C` cancel command.
      • `instance.env` is deprecated and replaced by `zowe.yml`.
      • Zowe now allows fine-grained customization of log, workspace, and configuration directories. By default, these directories remain grouped under an `instance` directory (same as Zowe v1).
      • Environment variables are reorganized to better describe itself. All zowe.yaml configuration entries will be automatically converted to environment variables for easy consumption.
      • Check with the community what the new alternative variable names are.
      • During Zowe configuration, redundant `ip` fields will be removed or consolidated in favor of `hostname` or `domains`.
      • Component or extension manifest is mandatory. End user must use the `zwe components install` command to install the extension.
New features

Summary: Major install & configuration simplication due to various improvements. Reduced overhead and increased performance due to reduction in server count, optimised networking, and 64 bit ZSS

  • Consolidation of Web Explorer Servers: Explorer USS, MVS, and JES no longer have node servers (3 less servers), due to utilizing app-server for hosting.Consolidation of web explorer servers
  • Jobs & Datasets APIs now disabled by default (2 less servers), and Explorers do not rely on them
  • Replace referrer security check with 'samesite' cookie option: No longer need to specify external hostname to pass security check
  • Remove "loopback routing" in app-server: Resolves bugs around use of a loopback IP when running app-server
  • Can specify advanced app-server & zss config in zowe.yaml: Simplify/Unify app framework configuration by using 1 config file rather than 2 (instance.env, server.json)
  • Contiguous default ports: App framework ports (formerly 85xx) now follow APIML ports (75xx)
  • App-server bind to IP_ADDRESS by default: Instead of '0.0.0.0', app-server now uses same IP as rest of Zowe servers
  • Consistent environment variable names: Standardize environment variable names around ZWED_, and ZWES_ prefixes for consistency. Aliases to previous names
  • Informative desktop login messages: Desktop login failures now print useful troubleshooting details about server communication issues
  • ZSS 64 bit: ZSS 64 bit version now exists alongside prior 31-bit version. Better performance and higher memory limit. Now utilizes 64-bit cross-memory to ZIS
  • New desktop library versions: Angular 6->12, Corejs 2->3, Typescript 2->4
Breaking changes

Some configuration, such as port and IP values, are different by default but can be reconfigured to old values. But, some app framework extensions may not work in v2 without enhancements.

  • Consolidation of Web Explorer Servers: Bookmarks to USS, MVS, JES explorers will be broken, due to URL change
  • "loopback routing" disabled: Loopback routing alternative may not be 100% compatible, can be disabled via config parameter node.internalRouting=false
  • Server.json removed: The now-mandatory zowe.yaml can contain the same content as server.json, within the objects components.app-server and components.zss
  • Scripts that wrote to server.json will be broken, adapt them to write to zowe.yaml instead
  • Incompatible desktop library version upgrades: Angular 12, corejs, and typescript were updated in the Desktop, and non-iframe plugins that depend on them may break
  • ZSS cookie name change: ZSS cookie name now includes a suffix of either port name or HA/FT ID to distinguish between unrelated ZSS servers
  • Internationalization, using Angular, has changed from 6 (TranslationService etc.) to 12 (L10TranslationService etc.). For help in updating your Desktop apps to match new internationalization usage, please reference: Sample Angular App example

Changes to the Conformance Criteria (For Extenders)

All the changes are available here: Box Excel Sheet

Zowe API Mediation Layer
The API Mediation Layer related conformance Criteria are on: Box Excel Sheet on the tab V2 ZOWE API-ML Conform (xx)
Zowe CLI
The CLI related conformance Criteria are on: Box Excel Sheet on the tab V2 Zowe CLI Conformance (29)
Zowe Explorer
The Explorer related conformance Criteria are on: Box Excel Sheet on the tab V2 ZOWE Explorer Conform (16)
Systems
The packaging related conformance Criteria that are newly added to V2 are on: Box Excel Sheet on the tab V2 ZOWE Packaging Conformance
Zowe Application Framework
The Application Framework related conformance Criteria are on: Box Excel Sheet on the tab V2 ZOWE AppFramwk Conform (xx)

Office Hours

Check out the OMP Calendar for specific time of the V2 office hours.

Date Topic Link to the meeting Link to the recording Links to the materials
12/08/2021 12PM - 1PM ET Kickoff https://zoom.us/j/94312528890 Zoom recording Presentation
01/05/2022 12PM - 1PM ET CLI https://zoom.us/j/94312528890 Zoom recording Presentation
01/12/2022 12PM - 1PM ET API Mediation Layer https://zoom.us/j/94312528890 Zoom recording Presentation
01/19/2022 12PM - 1PM ET Explorers https://zoom.us/j/94312528890 Zoom recording Presentation
01/26/2022 12PM - 1PM ET Web UI (Zowe Application Framework) https://zoom.us/j/94312528890 Zoom recording Presentation
02/02/2022 12PM - 1PM ET Systems / Install https://zoom.us/j/94312528890 Zoom recording Presentation
02/09/2022 12PM - 1PM ET V2 General Information https://zoom.us/j/94312528890 Zoom recording Presentation
02/16/2022 12PM - 1PM ET Zowe V2 Office Hours: APIML V2 SSO Conformance Requirements https://zoom.us/j/94312528890 Zoom recording Presentation
02/23/2022 12PM - 1PM ET General Wrap-up https://zoom.us/j/94312528890
<script> function toggle(id) { var x = document.getElementById(id); if (x.className.indexOf("faq-hide") == -1) { x.className += " faq-hide"; } else { x.className = x.className.replace(" faq-hide", ""); } } </script>

Frequently Asked Questions

1. What is the “official” date of Zowe V2 LTS?

   The official date is TBD, the target is April 25, 2022; look for the official announcement at Zowe.org landing page announcement banner.

We are sorry for the delay and any inconvenience coming out of it.
2. Where can I find the current (V1) and new (V2) LTS conformance criteria?

   The Zowe Squads have prepared XLS spreadsheets with conformance criteria for all Zowe extensions including: CLI, APIs, App Framework, and Explorerfor VS Code. The spreadsheets clearly show the prior / V1 criteria alongside the new / V2 criteria. Please be aware, there are additions, deletions, and CHANGES to the criteria. In some cases the change is simply that a BEST PRACTICE has been deemed REQUIRED. Use the light-GREEN highlights to easily identify the changes. See the Changes to the Conformance Criteria section at Zowe.org/vNext.

3. Will my V1 conformant extension automatically work with V2?

   NO. We recommend testing all V1 conformant extensions. See the Coming changes (For Users) section at Zowe.org/vNext.

4. What if my extension does not work with Zowe V2?

   See the recommendations in the Coming changes section at Zowe.org/vNext.

5. How can I test my current plug-in and/or extension with Zowe V2?

   Obtain the pre-GA Zowe V2 release; for details see the pre-GA Download Availability section at Zowe.org/vNext.

6. Do I need to reapply for conformance?

   YES, we expect the Zowe V2 Conformance program to be available in early Feb 2022. We will announce when extenders can pre-apply in the LATEST ANNOUNCEMENTS section at Zowe.org/vNext.

7. What happens to my V1 conformance badge?

All Zowe V1 conformance badges will remain at the Open Mainframe Project Interactive Landscape; we recommend documenting a Zowe compatibility matrix to ensure clients are aware of any/all compatibility issues between your V1 conformant apps and Zowe V2.

8. Will I be able to pre-apply for Zowe V2 conformance?

Yes, We will announce when extenders can pre-apply in the LATEST ANNOUNCEMENTS section at Zowe.org/vNext.

9. When can I share this information with my customers?

   Anytime. Zowe is an open source project managed by a transparent, open source community.

10. How long will V1 LTS be supported?

   The V1 LTS Maintenance timeline runs through July 2024. See RELEASE TIMELINE at Zowe.org/download.

11. What if my extension does not qualify for V2 conformance?

   You have several options:

  1. Notify your customer base and advise them to remain on Zowe V1 LTS until you are able to make the necessary modifications to satisfy all of the new requirements (Note: extenders can choose NOT to be “day-1” V2 conformant )
  2. Notify your customer base of V2 compatibility concerns (or lack thereof) and advise accordingly (e.g. extension operates but will not leverage V2 features etc.)
  3. Replace your extension with a V2 conformant extension and indicate it as such
12. Where can I go for more information or get interactive help? (my question is not listed here)

   You have several options:

  1. Attend one (or more) of the (7) bi-weekly Zowe V2 OFFICE HOURS meetings offered on Wednesdays at 12pm ET. Kickoff is scheduled for 12/8. Following (6) meetings are scheduled for: 1/05, 1/12, 1/19, 1/26, 2/2, 2/23 There are 2 more optional meetings plannes for 2/9, 2/16
  2. Interact with a Zowe Community Member via SLACK. Click on the COMMUNITY tab at Zowe.org, navigate to the SLACK box and click #zowe-onboarding
  3. Join a Zowe Squad call. Click on the COMMUNITY tab at zowe.org, navigate to the JOIN A SQUAD CALL section on this page. Click on one of the calendar entries for Zoom meeting links.
13. Will the Zowe V2 Office Hours be recorded? (How do I find the recording?)

   Yes. Recordings can be provided on request. Click on the COMMUNITY tab at Zowe.org, navigate to the SLACK box and click #zowe-onboarding and request the recording.

14. Will there be a means to migrate (or convert?) existing / old-style profiles to the V2 team config for Zowe CLI? Will it handle profiles that are secured by SCS?

   Yes, we plan to introduce a "zowe config convert-profiles" command, which will be available in the v2 release.

15. Will (CLI)Daemon mode be integrated seamlessly into v2 and enabled by default?

   This work is still in progress-we are working on a "zowe daemon enable" command to make the daemon installation process as seamless as possible. Daemon mode will be disabled by default, the command must be run to enable it.

16. The V1 version of Zowe Explorer offers a text input area, where a user can enter some of the data / attributes (host, port, etc.) necessary to create the old-style profiles. With Team Config what options are available for users to edit the config file? Is it manual? Is there a UI?

   The recommended approach for editing the config file is to launch it in VS Code from Zowe Explorer and make modifications there. The designated user responsible for creating and maintaining the config (we recommend a team lead or Administrator) will be able to leverage the built-in “intellisense” when editing the file. Note: Team Config fundamentally changes the paradigm on profile creation & management. Prior to Team Config, all users were required to understand, create, test, trouble-shoot, and manage their own profiles. Team Config was designed to scale all of these tasks back, remove the burden from individual users and centralize it. Once the config is distributed most users should not need to make any significant edits.

   Join the discussion on this topic here: zowe/zowe-explorer-vscode#1535

Zowe CLI Office Hours Frequently Asked Questions
1. Will daemon mode pre-load profiles?

No, team config will be reloaded for every command

2. Will it be possible to override the built-in Secure Credentials if you are using something else?

Team Config will likely support alternates defined in the settings json file, administrators will probably need to hand-edit the configuration file to set a new credential manager

3. How do you expect consumers to migrate from the (V1) old Secure Credentials to the new (V2 team config) configuration? Is there a migration process?

A migration utility is available - it will translate profiles (1 for 1) to new  (team config) format AND (optionally) clean-up old profiles and old SCS entries.

4. Is migration to the new profile format required?

Migration to the new profile format is NOT required immediately - the old profiles will work UNLESS a team config is created - that said, the old profiles will not be used if a new team config is available. Simply stated - if a team config is not located, CLI will fall back to using the prior profiles

5. Will V2 be able to use the old (V1) Secure Credentials?

Yes - CLI can read the old and the new format

6. Will my username/password be saved in 2 different locations if I do not use the --delete (after the migration)?

Yes (recommend this is cleaned up)

7. For the keyword base-path, does it remain camel case or transition to something else?

CLI option name is "base-path", property name in config is "basePath"

Zowe API Mediation Layer Office Hours Frequently Asked Questions
1. Does the Service ID apply to zlux as well?

Yes

2. Is the “BCM” prefix for Broadcom required for V2 or can we continue to use "CA"?

The BCM prefix for V2 is required

3. For SSO - basic authentication, is switching to JWT tokens required for conformance or is it considered a best practice?

Yes, this a requirement for V2 conformance, however Pass Tickets can be used and it is possible to leverage the basic authentication to properly participate. The configuration is here: https://docs.zowe.org/stable/extend/extend-apiml/api-mediation-passtickets/#api-services-that-support-passtickets The API ML will issue a passticket for the user when service is accessed as long as the user provides a valid JWT token. We recommend this route (minimally) to give the users a seamless signon experience.

4. Will Pass Tickets continue to work?

Yes

5. Where is the API ID field located, is it ID in the manifest.yaml?

It is part of your configuration yaml - it is a unique identifier for your service that helps to identify your service and uses the format: companyprefix.productname (Note: it is used for documentation only, has no impact on interacting with API-ML)

6. Can you use the same API ID name for different instances of your service?

TBD

7. Is there a way to ensure compatibility with V1 Zowe CLI plug-ins?

Cross-version compatibility may be possible but is not guarenteed; recommend upgrading both

8. Will the V2 Mediation Layer will require V2 APIs or will it work with existing (V1) APIs?

Existing (V1) APIs will continue to work 

Zowe Explorers Office Hours Frequently Asked Questions
1. Will Zowe Explorer function properly if you do not want to leverage the Zowe credential manager? (Secure Credential Store)?

Yes

2. Will Zowe Explorer (V2) require the installation of Zowe CLI (V2) for any features?

No. Zowe CLI offers more robust functionality for Team Configuration initialization specifically when configuring for MFA/token support, however it is NOT required. Zowe Explorer users interested in configuring for MFA/Tokens can manually update their Team Configuration

3. Will consumers need to change the way they obtain new releases of Zowe Explorer from the VS Code Marketplace in order to obtain the Zowe V2 version?

No. The Zowe Explorer download experience will not change.

4. Will my existing Zowe Explorer profiles be updated to the new format automatically when I download Zowe Explorer V2?

No. Users must plan to convert to the Team Configuration (profiles) format.

5. Will my existing (yaml) Zowe Explorer profiles continue to work with V2 and subsequent Zowe releases? Is the same true for Zowe CLI profiles?

The V1-style profiles will remain backward compatible for the duration of the Zowe V2 ACTIVE and MAINTENANCE time period (~4 years), however they will be identified as “deprecated” in Zowe V2 which means they will not be backwards compatible with Zowe V3 and beyond. The same is true for Zowe CLI profiles.

6. What if a user has both the V1-style profiles and the V2 Team Configuration?

The presence of a Team Configuration renders all V1 profiles unusable. When you opt in to the V2 Team configuration, you cannot revert back.

7. Can I create or update V1-style profiles in Zowe Explorer V2?

Yes, as long as there is no team config file present.

8. How will a user know what type of profiles they are using?

Zowe Explorer users may not know. In the CLI, if a V2 profile is found, and a V1 profiles command is issued, an error similar to the following will be displayed:

-> zowe profiles list zosmf
An error occurred trying to list profiles.
Profile IO Error: A Zowe V1 profile operation was attempted with a Zowe V2 configuration in use.

Warning: The command 'profiles list' is deprecated.
Recommended replacement: The 'config list' command

If only V1 profiles exist, the command will work, but a deprecation warning will be displayed:

-> zowe profiles list zosmf
sys1_zosmf
sys2_zosmf (default)
sys3_zosmf

Warning: The command 'profiles list' is deprecated. Recommended replacement: The 'config list' command

9. Is there a profile conversion utility available?

Yes, the CLI has a conversion utility.  At the present time, Zowe Explorer users who wish to convert over and do not use Zowe CLI will need to create their profiles from scratch OR install Zowe CLI and use the Zowe CLI conversion utility.

10. Where can a user obtain / download Zowe Explorer?

Zowe Explorer is available for download at the VisualStudio Marketplace: https://marketplace.visualstudio.com/items?itemName=Zowe.vscode-extension-for-zowe and the Open VSX Registry: https://open-vsx.org/extension/Zowe/vscode-extension-for-zowe

11. Will the Zowe V2 JSON schema get populated with the appropriate configuration information for a given extension like the V1 META.YAML file gets updated - i.e. whenever a user installs a conformant Zowe extension?

For Zowe CLI Extensions: the JSON schema file is automatically updated when a Zowe CLI plug-in is installed; more specifically the global schema is dynamically updated -- individual project schemas are not). For Zowe Explorer Extensions: we have plans to automatically insert configuration information into the schema, but at the current time this information will need to be manually added.

12. What if I install a new plug-in after initializing my Team Configuration?  How do I ensure the configuration has the new plug-in information?

For Zowe CLI, the global schema is updated when the new plug-in is installed. New init commands will include the new plug-in profile(s) in the generated zowe.config.json. Project-level schema is not updated at plug-in install time. To update, run zowe config update-schemas. The plan for Zowe Explorer is similar but is still being discussed.

13. Does the base schema allow me to add my own set of properties?

Yes.

Zowe App Framework Office Hours Frequently Asked Questions
1. Will we be able to specify individual ports rather than initial+offset? We have a funky pattern we're using.

Yes, specifying individual ports will continue to be supported

2. Can the zwe components install command be executed in a batch job, too?

Yes, should be able to run via SHELL or via a batch job

3. If ZWE_LAUNCH_COMPONENTS is a list of all components, does the zwe components install command handle whether to add a new component to that ZWE_LAUNCH_COMPONENTS variable as necessary?

Most-likely, yes (will need to be confirmed)

4. Does the zwe components install command also handle ZIS and ZSS components?

Yes

5. Where is zowe.yaml located if the instance directory (where it used to be) no longer exists?

Zowe.yaml is a centralized file containing parameters utilized by the ZWE command - you determine where it resides. V2 no longer requires an instance directory.

7. Who can we reach out to if we have questions?

Zowe Slack Channel: openmainframeproject.slack.com #zowe-user OR Sean’s email address: [email protected]

Zowe Systems (Installation and Configuration) Office Hours Frequently Asked Questions
1. The workspaceDirectory example (screen shot in the presentation) had the word "instance" in the path. Is that deliberate?

NO, that is an error. We will correct this!

2. If the manifest.yaml is key for knowing what components are there, how "live" (aka "dynamic") can we be about adding components/plug-ins without being required to restart the Zowe server?

At present time, adding components/plug-ins to the manifest.yaml will require a restart of the [corresponding] Zowe server. We will plan to enhance Zowe to offer a more dynamic approach (i.e. automatically re-read the manifest.yaml for any server that can handle changes without requiring a restart).

3. We deploy 40+ unique deployments at the same time. Each includes its own ZOWE deploy. We do this by changing the STC name. Can we still do that?

Yes, they can be defined in zowe.yaml as `zowe.setup.security.stcs` which lets you set their names, e.g. `zowe.setup.security.stcs.zowe: ZWEMYSTC`.

4. We currently have to modify the various install scripts to change specific dataset names to accomplish this multiple-run scenario. Will we be able to do this?

Yes, all data set names used by Zowe are configurable in zowe.yaml so you can configure your multiple-run scenario with multiple zowe.yaml files where each has its own stc and data set names.

5. If PARMLIB is used, can we consider eliminating zowe.yaml?

Allowing PARMLIB doesn't change the way how Zowe uses zowe.yaml behind the scene. It's more like a new user interface to configure Zowe. The content in PARMLIB will be concatenated, merged into a temporary zowe.yaml and fed to Zowe. That means it won't change the way how components / extensions read configurations. On the other side, since we may enhance the configuration interface like allowing PARMLIB, it's not recommended for a component installer to read or update zowe.yaml directly. Instead, a component installer should read `ZWE_` environment variables to understand configurations, and use relevant zwe commands or library functions to update. For example, `zwe components enable` can be used to enable your component, and it's compatible with both USS zowe.yaml or PARMLIB configuration.

6. We are very concerned about the new requirement "must use the “P” command to terminate Zowe instead of “C” to cancel because some users may simply use C out of habit. Can you review this decision with IBM and possibly consider an alternative?

We can review with IBM - that said, we also have plans to help prevent accidental “C”- cancel commands. Why did we do this? Zowe components need specific resource and recovery management handling - the “P” command sends the proper signal to Zowe to ensure all components are shut down appropriately. We'll investigate this more so many thanks for the feedback.

7. When will the pre-GA V2 Zowe package be available?

It is available now, see: #download-availability

8. How do we provide feedback or communicate issues? Where can we ask questions?

Use this SLACK CHANNEL for interacting with the team: #zowe-install-rework Use this GitHub repo for posting issues: https://github.com/zowe/zowe-install-packaging

Zowe V2 LTS General Office Hours Frequently Asked Questions
1. I want to ensure my Zowe extensions function with both V1 and V2.  What’s the best approach?  Provide two versions of my extension (one supporting each release) OR can an extender determine which LTS version of Zowe they are interacting with and offer one version that supports both?

We recommend extensions create a dedicated package for Zowe v2 - this is the most straight-forward way to address all of the breaking changes. We recognize this presents the challenge of maintaining 2 sets of packages. If you prefer not to maintain 2 sets of packages, we believe it's possible to maintain one version of an extension which works for both Zowe v1 and v2. However, the lifecycle code will be complicated - comprehensive testing should be performed. 

PLEASE BE AWARE The Zowe V2 app framework desktop upgraded from angular version 6 to angular version 12 for support & security -  websites have  a “1 version of a library”  limitation.  This means that plugins dependent upon angular must be coded for either v6 or v12 [not both] thus the single version approach is not applicable.

If the lifecycle scripts are the main concern, the following steps outline requirements and our recommendations for the single version approach:

  1. Package manifest.yaml is required. This is a hard requirement for Zowe v2. If you define lifecycle scripts with default names, for example, use bin/start.sh as `commands.start`, it should work for v1.
  2. Revisit all environment variables used in the lifecycle scripts and apply fallback variables. For example, if you use $ROOT_DIR in Zowe v1, this should be changed to ${ZWE_zowe_runtimeDirectory:-${ROOT_DIR}} to make it compatible with both versions. Other variables like $EXPLORER_HOST should be changed to ${ZWE_haInstance_hostname:-${EXPLORER_HOST}} or ${ZWE_externalDomains_0:-${EXPLORER_HOST}} based on purpose.
  3. A Zowe v2 recommendation is defining extension configurations in the  manifest.yaml "configs" section and use ${ZWE_configs_*} variables to access them. This feature does not exist in Zowe v1. So if you use ${ZWE_configs_*} variables, it should fall back to the matching environment variable used in v1.
  4. For installation, Zowe v2 recommends defining a "commands.install" lifecycle script to handle Extension installation. This lifecycle script will be executed by `zwe components install`. In v1, this also exists if the end-user uses zowe-install-components.sh utility to install an Extension. So if we consider one Extension package working for both Zowe v1 and v2, this install lifecycle script should also be compatible with both v1 and v2. Or consider instructing the user to not use zowe-install-components.sh with Zowe v1.
  5. As discussed in slack, a new v2 variable ${ZWE_VERSION} may help you determine if the user is using Zowe v2 or v1. This variable does not exist in Zowe v1.
    • By knowing the Zowe version, the lifecycle scripts can implement logic to source v1 or v2 dedicated scripts to avoid handling fallbacks in the same script. This could be a cleaner way to avoid complicated compatibility version checks, and it could be easier in the future should you decide to drop Zowe v1 support.

We are planning to release a comprehensive “migration guidance” section on docs.zowe.org to help Extenders facing these challenges.  Your feedback on this section is greatly appreciated.

Download Availability

The Pre-GA V2 Zowe package is available for CLI (Zowe v2 LTS Preview section on Download) and Explorers (Zowe Explorer section on Download). The Server-side PAX is available here https://zowe.jfrog.io/zowe/libs-snapshot-local/org/zowe/2.0.0-PR-2568/zowe-2.0.0-pr-2568-7-20220124181541.pax Keep in mind we are still working on it and improving it. There is a section below with some of the information on the installation.

This part shows basic information about the installation of the first version of the PAX. We will provide more details and add link to the proper sections on Zowe doc site in coming weeks.

Prepare

Extract Zowe convenience build

When extracting Zowe convenience build (zowe-<version>.pax), please note you should always preserve extended attributes and file mode with -ppx option. For example, pax -ppx -rf zowe-<version>.pax.

PATH environment

After extract Zowe convenience build or applied SMPE, you can add Zowe bin directory to yourPATH environment variable:
export PATH=${PATH}:/path/to/my/zowe/bin
Once this is done, you can access Zowe server command zwe from any USS directory. Type zwe --help or zwe -h to learn how to use this command.

zowe.yaml

Zowe uses a YAML file, usually mentioned as zowe.yaml to instruct Zowe how to install, configure and start Zowe.

Copy the example-zowe.yaml located in Zowe bin directory to your preferred location, for example, your home directory. You can modify the file based on your environment and then move to next step.

Install and initialize

If you are using Zowe convenience build, you should run zwe install --config /path/to/my/zowe.yaml command to initialize Zowe MVS data sets. If you are using Zowe SMPE build, you can move on to next command.

Run zwe init --config /path/to/my/zowe.yaml command to initialize environment and permissions required by Zowe. Type zwe init --help to learn more about the command.

zwe init command is a combination of multiple sub-commands: `mvs`, `certificate`, `security`, `vsam`, `apfauth`, and `stc`. Type zwe init <sub-command> --help (for example, zwe init stc --help) to learn how to run zwe init command step by step.

Start and stop

- Run zwe start --config /path/to/my/zowe.yaml command to start Zowe.

- Run zwe stop --config /path/to/my/zowe.yaml command to stop Zowe.