Skip to content

v3.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 01 Oct 20:45
· 84 commits to main since this release

Zowe Explorer

New features and enhancements

  • Support VS Code engine 1.79.0 and higher.
  • Updated activation event to onStartupFinished. #1910
  • Removal of Zowe V1 profile support. #2072
  • Removal of Theia support. #2647
  • Migrate package manager from Yarn to PNPM. #2424
  • Migrated to webpack V5 #2214
  • Migrated from @zowe/cli dependency package to individual Zowe 8.0.0 SDK packages for Zowe V3 support. #2719
  • Updated Zowe Explorer API dependency to 3.0.0 for Zowe V3 support. Check the list of APIs that were removed.
  • Removed deprecated methods and conoslidated VS Code commands. Check the list of APIs that were removed.
  • Added madge dependency to support to track circular dependencies. #2148
  • Migrated from i18n to l10n for VS Code localization. #2253
  • Replaced lodash dependency with es-toolkit to reduce webview bundle size and add technical currency. #3060
  • Replaced ts-loader dependency with esbuild-loader to improve build speed for developers. #2909
  • Minimized activation function for Zowe Explorer to load only necessary items on activation. #1985
  • Breaking: Zowe Explorer no longer uses a temporary directory for storing Data Sets and USS files. All settings related to the temporary downloads folder have been removed. In order to access resources stored by Zowe Explorer V3, refer to the FileSystemProvider documentation for information on how to build and access resource URIs. Extenders can detect changes to resources using the onResourceChanged function in the ZoweExplorerApiRegister class. #2951
  • Breaking Moved data set templates out of data set history settings into new setting zowe.ds.templates. #2345
  • Added UI migration steps on startup for users with V1 profiles to either convert existing V1 profiles to team configuration file or create a new team configuration file. #2284
  • Added support for Local Storage settings for persistent settings in Zowe Explorer #2208
  • Grouped Common methods into Singleton classes. #2109
  • New Extender registration APIs:
    • onVaultUpdate VS Code events to notify extenders when credentials are updated on the OS vault by other applications. #2994
    • onCredMgrUpdate VS Code events to notify extenders when the local PC's credential manager has been updated by other applications. #2994
    • onResourceChanged function to the ZoweExplorerApiRegister class to allow extenders to subscribe to any changes to Zowe resources (data sets, USS files/folders, jobs, etc.). See the FileSystemProvider wiki page for more information on Zowe resources.
    • addFileSystemEvent function to the ZoweExplorerApiRegister class to allow extenders to register their FileSystemProvider onDidChangeFile events.
  • Implemented support for building, exposing, and displaying table views within Zowe Explorer. Tables can be customized and exposed using the helper facilities (TableBuilder and TableMediator) for an extender's specific use case. For more information on how to configure and show tables, please refer to the wiki article on Table Views. #2258
  • Added support for logging in to multiple API ML instances per team configuration file. #2264
  • Added remote lookup functionality for data sets and USS, allowing Zowe Explorer to locate and resolve mainframe resources on demand. #3040
  • Implemented change detection in the data sets and USS filesystems so that changes on the mainframe are reflected in opened editors for Data Sets and USS files. #3040
  • Implemented a "Show as Table" option for profile nodes in the Jobs tree, displaying lists of jobs in a tabular view. Jobs can be filtered and sorted within this view, and users can select jobs to cancel, delete, or download. #2258
  • Implemented the VS Code FileSystemProvider for the Data Sets, Jobs, and USS trees to handle all read/write actions as well as conflict resolution. #2207
    See the FileSystemProvider wiki page for more information on the FileSystemProvider.
    • Refactored behavior and management of Favorites in Zowe Explorer. #2026
  • Added the capability for extenders to contribute new profile types to the Zowe schema during extender activation. #2508
  • Added a new command feature, Issue UNIX Commands available in the VS Code command pallete or via right-click action in the USS treeview. #1326
  • Added enhancement to compare 2 files from MVS and/or UNIX System Services views via right click actions, with option to compare in Read-Only mode too.
  • Added a prompt to create a new Zowe client configuration for an environment that does not have any Zowe client configurations. #3148
  • Implemented support for favoriting a data set search that contains member wildcards. #1164
  • Changed default base profile naming scheme in newly generated configuration files to prevent name and property conflicts between Global and Project profiles #2682
  • Renamed isHomeProfile context helper function to isGlobalProfile for clarity. #2026
  • Set up POEditor project for contributing translations and cleaned up redundant localization strings. #546
  • Added integration and end-to-end test framework to verify extension behavior and catch issues during Zowe Explorer development. #2322

Bug fixes

  • The "Zowe Resources" panel is now hidden by default until Zowe Explorer reveals it to display a table or other data. #3113
  • Fixed behavior of logout action when token is defined in both base profile and parent profile. #3076
  • Fixed bug that displayed obsolete profiles in the Zowe Explorer tree views after the associated team configuration file was deleted. #3124
  • Removal of broken VSC command to Zowe Explorer: Refresh Zowe Explorer, use VS Code's Extensions: Refresh command instead. #3100
  • Fixed issue where "Allocate Like" input box placeholder was showing a localization ID instead of the intended message ("Enter a name for the new data set"). #2759
  • Fixed default behavior of "Create a new Team Configuration File" to create a Project Config instead of Project User Config. #2684
  • Changed ZoweExplorerExtender.initForZowe profileTypeConfigurations: imperative.ICommandProfileTypeConfiguration[] to a required argument to address issues seen after registration of profile type when not passed. #2575
  • Resolved TypeError: Cannot read properties of undefined (reading 'direction') error for favorited items. #3067
  • Fixed issue where switching from token-based authentication to user/password would cause an error for nested profiles. #3142

IBM z/OS FTP for Zowe Explorer

New features and enhancements

  • Renamed extension to IBM z/OS FTP for Zowe Explorer. #2990
  • Updated the FTP plug-in dependency to 3.0.0 for Zowe V3 support. #2783.
  • Updated from @zowe/cli package dependency to individual Zowe 8.0.0 SDK packages for Zowe V3 support. #2719
  • Updated Zowe Explorer API dependency to 3.0.0 for Zowe V3 support and addressed breaking changes. Check the list of APIs that were removed.
  • Updated VS Code engine support to 1.79.0 and higher.
  • Updated VS Code activation event to onStartupFinished. #1910
  • Removal of Zowe V1 profile support. #2072
  • Migrated to new package manager PNPM from Yarn.
  • Migrated to webpack V5 #2214
  • Added madge dependency for support to track circular dependencies. #2148
  • Replaced ts-loader dependency with esbuild-loader to improve build speed for developers. #2909
  • Added support for streams to the getContents and putContents functions (FtpMvsApi and FtpUssApi interfaces) with the following API: uploadFromBuffer.
  • Removed pop-up notification of successful registration with Zowe Explorer and log the success message. #2862
  • Breaking: updated the FtpMvsApi.putContents function to throw an error when an e-tag conflict is found to establish consistency with the FtpUssApi.putContents function which has always thrown an error for this scenario.
  • Breaking: Removed the deprecated FtpUssApi.putContents function in favor of the FtpUssApi.putContent function.

Bug fixes

  • Changed the hashing algorithm for e-tag generation from sha1 to sha256 to avoid collisions. #2890
  • Fix Windows-specific hangs when saving members that contain JCL via the FTP extension. Thanks @tiantn & @std4lqi. #2533
  • Removed outdated vscode-nls webpack plug-in #2253
  • Fixed ECONNRESET error when trying to upload or create an empty data set member. #2350
  • Updated additional dependencies for technical currency purposes.

Zowe Explorer APIs

New features and enhancements

  • Removal of V1 profile support. #2072
  • Removal of deprecated APIs. Check the list of APIs that were removed.
  • Migrated from @zowe/cli dependency package to individual Zowe 8.0.0 SDK packages for Zowe V3 support. #2719
  • Added madge dependency and script in package.json to track circular dependencies. #2148
  • Removed handlebars dependency in favor of mustache for technical currency purposes. #2975
  • Migrated to new package manager PNPM from Yarn.
  • Grouped Common methods into Singleton classes. #2109
  • Implemented support for building, exposing and displaying table views within Zowe Explorer. Tables can be customized and exposed using the helper facilities (TableBuilder and TableMediator) for an extender's specific use case. For more information on how to configure and show tables, please refer to the wiki article on Table Views. #2258
  • Enhanced the ZoweVsCodeExtension.loginWithBaseProfile and ZoweVsCodeExtension.logoutWithBaseProfile methods to store SSO token in parent profile when nested profiles are in use. #2264
  • Added new getJobsByParameters API is meant to replace getJobsByOwnerAndPrefix, and it adds new capabilities such as querying by status and limiting the amount of returned jobs.
  • Added the BaseProfileAuthOptions interface to define base profile authentication options for SSO login and logout. #3076
  • Added extensionRemovedFromPath private function to the DsEntry class to allow removing the extension from a data set before making API calls. #3121
  • Added optional patternMatches property to the IZoweDatasetTreeNode interface to cache pattern matches from an applied filter search. #1164
  • Added an optional function openWithEncoding to the IZoweTree interface to open file using encoding specified by user. #2931
  • Added the onVaultUpdate VSCode event to notify extenders when credentials are updated on the OS vault by other applications. #2994
  • Added the onCredMgrsUpdate VSCode event to notify extenders when the local PC's credential manager has been updated by other applications. #2994
  • Added Commands value to the PersistenceSchemaEnum enum for storing MVS, TSO, and USS command history. #2788
  • Added the getEncoding optional function to the IZoweDatasetTreeNode and IZoweUSSTreeNode interfaces. #2207
  • Added an optional function nodeDataChanged to the IZoweTree interface to signal an event when a tree node needs updated. #2207
  • Added the optional vscode.DragAndDropController interface to the IZoweTree interface to allow Zowe tree views to support drag and drop. #2207
  • Added a ZoweScheme enum to expose the core FileSystemProvider schemes for USS files, data sets and jobs. #2207
  • Added optional function move to the MainframeInteraction.IUss interface to move USS folders/files from one path to another. #2207
  • Added the buildUniqueSpoolName function to build spool names for Zowe resource URIs and VS Code editor tabs. #2207
  • Added the isNodeInEditor function to determine whether a tree node is open in the editor. #2207
  • Added Created Date to stats optional variable for storing dataset stats #2565
  • Added Date created to DatasetSortOpts enum #2565
  • Added new ProfilesCache.convertV1ProfToConfig API endpoint for extenders migrating from v1 profiles to team configuration files. #2284
  • Added new APIs for Issue UNIX Command. #1326
  • Updated the ProfilesCache.getProfiles method to return empty list instead of undefined when there are no profiles. #2947
  • Updated the TableViewProvider.setTableView function to show the Zowe Resources panel if a table is provided. If null is passed, the Zowe Resources panel will be hidden. #3113
  • Updated Table.Conditional and Table.Callback types to support multi-row callbacks.
  • Renamed the _lookup function to lookup in the BaseProvider class and updated its access to public, allowing extenders to look up resources outside of the provider implementations. The _lookup function is still accessible, but now deprecated in favor of the public lookup function. #3040
  • Changed the type for the options parameter in the getContents function (MainframeInteraction.IUss and MainframeInteraction.IMvs interfaces) from zosfiles.IDownloadOptions to zosfiles.IDownloadSingleOptions. #2207
    • The type was changed to match the function's intended behavior (to get the contents of a single resource).
  • Changed TableViewProvider.setTableView function to be asynchronous for more optimized data updates.
  • Changed IApiExplorerExtenders.initForZowe profileTypeConfigurations: imperative.ICommandProfileTypeConfiguration[] to a required argument to address issues seen after registration of profile type when not passed. #2575
  • Breaking: Removed ProfilesCache.getSchema(), ProfilesCache.getCliProfileManager(), ProfilesCache.saveProfile() & ProfilesCache.deleteProfileOnDisk() v1 Profiles manipulation endpoints.
  • Breaking: Removed ZoweTreeNode.binary, ZoweTreeNode.binaryFiles, and ZoweTreeNode.shortLabel. These properties are not applicable for all tree nodes and should be defined in subclasses of ZoweTreeNode if necessary.
  • Breaking: Removed the following properties/methods:
    • IZoweUSSTreeNode.binaryFiles -> IZoweUSSTreeNode.encodingMap
    • IZoweUSSTreeNode.mProfileName -> IZoweUSSTreeNode.getProfileName()
    • IZoweUSSTreeNode.setBinary() -> IZoweUSSTreeNode.setEncoding()
  • Breaking: Added the following required API: uploadFromBuffer #2738
    • For v3, this API will be used for saving data sets and USS files instead of putContent(s). Extenders must implement this API to continue supporting Zowe Explorer save operations.
  • Breaking: Removed the encoding property from the IZoweUSSTreeNode interface in favor of the new getEncoding function. #2207
  • Breaking: Removed string as a return type of the uploadFromBuffer method, since the z/OSMF API has been fixed to return a response object that includes an etag. #2785
  • Breaking: Marked getJobsByParameters as a required function for the MainframeInteraction.IJes interface. #2764
  • Breaking: Removed the MemberEntry filesystem class, in favor of using the DsEntry class with isMember set to true.
  • Breaking: Changed return type of ZoweVsCodeExtension.logoutWithBaseProfile method from void to boolean to indicate whether logout was successful.
  • Breaking: Changed behavior of the ProfilesCache.fetchBaseProfile method so that if a nested profile name is specified (e.g. "lpar.zosmf"), then its parent profile is returned unless token is already stored in the base profile.
  • Breaking: Consolidated WebView API options into a single object (WebViewOpts type), both for developer convenience and to support future options.
  • Breaking: Updated most function signatures for exported programmatic interfaces. Changes make developing with the Zowe Explorer API more efficient for extenders by showing which properties they can expect when calling our APIs. #2952
    • Updated IApiExplorerExtender.ts, see changes below:
      • Allowed reloadProfiles and initForZowe to be synchronous methods (non-breaking)
    • Updated MainframeInteraction.ts, see changes below:
      • Modified getStatus to add string type to the optional parameter profileType
    • Updated IZoweTree.ts, see changes below:
      • Modified checkCurrentProfile(node: IZoweTreeNode); to return Validation.IValidationProfile | Promise<Validation.IValidationProfile>
      • Modified getSearchHistory() to return string[]
      • Modified getAllLoadedItems() to return IZoweTreeNode[] | Promise<IZoweTreeNode[]>
      • Modified getFileHistory() to return string[]
      • Modified createFilterString?(newFilter: string, node: IZoweTreeNode); to return string
      • Allowed the following methods to be implemented synchronously: (non-breaking)
        • addSession
        • addSingleSession
        • editSession
        • createZoweSession
        • createZoweSchema
        • ssoLogin
        • ssoLogout
        • addFavorite
        • removeFavorite
        • removeFavProfile
        • onDidChangeConfiguration
        • flipState synchronous - no Promise returned
        • rename
        • open
        • copy
        • paste
        • delete
        • setItem synchronous - no Promise returned
        • saveSearch
        • saveFile
        • refreshPS
        • uploadDialog
        • filterPrompt
        • addSearchHistory synchronous - no Promise returned
        • deleteSession synchronous - no Promise returned
        • updateFavorites
        • renameFavorite
        • addFileHistory synchronous - no Promise returned
        • removeFileHistory synchronous - no Promise returned
        • renameNode
        • openItemFromPath
        • addDsTemplate
        • pollData
        • openWithEncoding
          Note: Developers should not expect a value to be returned from the methods above (breaking)
    • Updated IZoweTreeNode.ts, see changes below:
      • Modified rename?(newNamePath: string); to return Promise<IZosFilesResponse>
      • Developers should not be expecting output from the following methods:
        • openUSS
        • refreshUSS
        • deleteUSSNode
        • renameUSSNode
        • reopen
        • saveSearch
  • Breaking: Changed ProfilesCache.convertV1ProfToConfig method to be a static method that requires ProfileInfo instance as a parameter.
  • Breaking: Changed the parameters of the addSession method on the IZoweTree interface since they were all optional. It now receives an object of type AddSessionOpts. #2947
  • Breaking: Removed the redundant zoweFileProvider parameter from editSession method on the IZoweTree interface. #2947
  • Breaking: Removed deprecated methods: #2238
    • refreshAndReopen function on the IZoweTreeNode interface - use the reopen function instead.
    • copyUssFile function on the IZoweTreeNode interface - use the pasteUssTree function instead.
    • ZoweVsCodeExtension.showVsCodeMessage - use Gui.showMessage instead.
    • ZoweVsCodeExtension.inputBox - use Gui.showInputBox instead.
    • ZoweVsCodeExtension.promptCredentials - use ZoweVsCodeExtension.updateCredentials instead.
  • Breaking: Removed unused property profileManagerByType which used the V1-profile class CLIProfileManager. #3057
  • Breaking: Added return type of Promise<void> to the following IZoweTree methods: #2238
    • addFavorite
    • removeFavorite
    • removeFavProfile
    • ssoLogin
    • ssoLogout
  • Breaking: Added return type of Promise<void> to IZoweTree.addDsTemplate. #2345
  • Breaking: Added return type of Promise<void> to MainframeInteractions.ICommon.logout. #2783
  • Breaking: ProfilesCache.getProfileInfo no longer accepts any parameters. #2744
  • Breaking: issueUnixCommand API now takes sshSession as a optional parameter. #2866
  • Deprecated the following properties on Zowe tree interfaces in favor of setters and getters to incentivize encapsulation: #2026
    • binary property on the IZoweDatasetTreeNode interface - use the getEncoding and setEncoding functions instead.
    • encodingMap property on the IZoweDatasetTreeNode and IZoweUSSTreeNode interfaces - use the getEncodingInMap and updateEncodingInMap functions instead.
    • stats property on the IZoweDatasetTreeNode interface - use the getStats and setStats functions instead.
    • encoding property on the IZoweDatasetTreeNode and IZoweUSSTreeNode interfaces - use the getEncoding and setEncoding functions instead.
    • shortLabel property on the IZoweUSSTreeNode interface - use the getBaseName function instead.
    • attributes property on the IZoweUSSTreeNode interface - use the getAttributes and setAttributes functions instead.
  • Deprecated the openFiles property on IZoweTree interface - in v3 open files are tracked by the FileSystemProvider instead. #2947
  • Deprecated the getUSSDocumentFilePath function on the IZoweTreeNode interface as Zowe Explorer no longer uses the local file system for storing USS files. No replacement is planned; please access data from tree nodes using their resource URIs instead. #2968
  • Deprecated the method ProfilesCache.updateProfilesArrays. Use ProfilesCache.updateCachedProfile instead, which handles updating credentials cached in memory when autoStore is false. #3120
  • Deprecated the methods ZoweVsCodeExtension.loginWithBaseProfile and ZoweVsCodeExtension.logoutWithBaseProfile. Use ZoweVsCodeExtension.ssoLogin and ZoweVsCodeExtension.ssoLogout instead, which use the BaseProfileAuthOptions interface and allow you to choose whether the token value in the base profile should have precedence in case there are conflicts. #3076

Bug fixes

  • Fixed behavior of logout action when token is defined in both base profile and parent profile. #3076
  • Fixed profile cached by FileSystemProvider not refreshing on password change. #3120
  • Fixed extender's ability to fetch profile information from ProfilesCache for SSH profile types.
  • Fixed an issue where the ZoweVsCodeExtension.updateCredentials method could remove credentials from session when input prompt was cancelled. #3009
  • Fixed an issue where the loaded configuration could be overridden when extenders retrieved the Zowe home directory. #2994
  • Fixed an issue where remote lookup functionality caused the local side of a conflict to be overwritten with the remote contents. #3085
  • Fixed export of api onProfilesUpdate.
  • Fixed bug in ProfilesCache class where old profiles were still accessible after deleting a Team configuration file. #3124