diff --git a/.github/workflows/auto-comment.yml b/.github/workflows/auto-comment.yml index e5ac484317..14cffcea7d 100644 --- a/.github/workflows/auto-comment.yml +++ b/.github/workflows/auto-comment.yml @@ -10,9 +10,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Process Label Action uses: hramos/respond-to-issue-based-on-label@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: '.github/label-actions.yml' + configuration-path: '.github/label-actions.yml' \ No newline at end of file diff --git a/.github/workflows/sync-cli-readmes.yml b/.github/workflows/sync-cli-readmes.yml new file mode 100644 index 0000000000..efbffb8992 --- /dev/null +++ b/.github/workflows/sync-cli-readmes.yml @@ -0,0 +1,26 @@ +# name: Sync Files on README.md Changes + +# on: +# push: +# paths: +# - '**/README.md' + +# jobs: +# sync-files: +# runs-on: ubuntu-latest + +# steps: +# - name: Checkout repository +# uses: actions/checkout@v2 + +# - name: Sync files +# run: | +# cp "${{ github.workspace }}/README.md" "${{ github.workspace }}/packages/cli/README.md" + +# - name: Commit then Push Changes +# run: | +# git config --global user.name ${{ secrets.ZOWE_ROBOT_USER }} +# git config --global user.email ${{ secrets.ZOWE_ROBOT_EMAIL }} +# git add "${{ github.workspace }}/packages/cli/README.md" +# git commit -sm "Synching cli readmes" +# git push origin HEAD diff --git a/README.md b/README.md index 32abd3e9dc..0269e1ad75 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![codecov](https://codecov.io/gh/zowe/zowe-cli/branch/master/graph/badge.svg)](https://codecov.io/gh/zowe/zowe-cli) [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7204/badge)](https://bestpractices.coreinfrastructure.org/projects/7204) +>[!IMPORTANT] testing + Zowe CLI is a command-line interface that lets you interact with the mainframe in a familiar format. Zowe CLI helps to increase overall productivity, reduce the learning curve for developing mainframe applications, and exploit the ease-of-use of off-platform tools. Zowe CLI lets you use common tools such as Integrated Development Environments (IDEs), shell commands, bash scripts, and build tools for mainframe development. Through its ecosystem of plug-ins, you can automate actions on systems such as IBM Db2, IBM CICS, and more. It provides a set of utilities and services that help developers, DevOps engineers, and more become efficient in supporting and building z/OS applications quickly. This repository also contains the Zowe Node Client SDK. The SDK lets you leverage the underlying APIs to build applications that interface with the mainframe. @@ -44,7 +46,7 @@ Guidelines for contributing to Zowe SDKs| [SDK Guidelines](./docs/SDKGuidelines. Versioning conventions for Zowe CLI and Plug-ins| [Versioning Guidelines](./docs/MaintainerVersioning.md) | | Miscellaneous tips for development | [Development Tips](./docs/DevelopmentTips.md) -**Tip:** +**Tip:** - Visit our [Sample Plug-in repository](https://github.com/zowe/zowe-cli-sample-plugin) for example plug-in code. You can follow developer tutorials [here](https://docs.zowe.org/stable/extend/extend-cli/cli-devTutorials.html).
@@ -70,7 +72,7 @@ When you update `package.json` to include new dependencies, or when you pull cha npm update ``` -**Tip:** +**Tip:** - When necessary, you can run the install command again to update dependencies changed in `package.json`.
@@ -82,7 +84,7 @@ From your copy of this repository, after a build, navigate to the `packages/cli` npm install -g ``` -**Notes:** +**Notes:** - Depending on how you configured npm on Linux or Mac, you might need to prefix the `npm install -g` command or the `npm uninstall -g` command with `sudo` to let npm have write access to the installation directory. - On Windows, the `npm install -g` command might fail several times due to an `EPERM` error. This appears to be a bug that npm documented in their GitHub issues. This behaviour does not appear to be specific to installing the Zowe CLI package. Unfortunately, the only solution that we know of is to issue the `npm cache clean` command and the `npm install -g` command repeatedly until it works. @@ -115,7 +117,7 @@ zowe zosmf check status For detailed information about creating service profiles, creating base profiles, or integrating with Zowe API ML, see [Using Zowe CLI](https://docs.zowe.org/stable/user-guide/cli-using-usingcli/). -**Tip:** +**Tip:** - When you confirm that your profile connects to and communicates with your mainframe system successfully, you can issue the same command at any time to verify the availability and status of the z/OSMF subsystem on your mainframe.
@@ -126,7 +128,7 @@ The Zowe Node Client SDK consists of APIs that enable you to build client applic For information about downloading and getting started with the SDK, see the [Zowe Docs](https://docs.zowe.org/stable/user-guide/sdks-using). To view the Zowe Node.js SDK doc, see [Zowe SDK Docs](https://docs.zowe.org/stable/typedoc/index.html). -**Tip:** +**Tip:** - Alternatively, you can import Zowe CLI into your project to call the Node APIs. However, importing all of Zowe CLI will increase the size of your project. For example, use the following statement to import packages from Zowe CLI: ``` @@ -197,7 +199,7 @@ npm run test:system - V2 uses **team profiles** and **deprecates the Secure Credential Store** (SCS) plug-in. Connection details can be managed efficiently within one file, promoting a global configuration that can be shared across teams and mainframe services. For more information on how to use profiles, visit [Zowe Docs](https://docs.zowe.org/stable/user-guide/cli-using-using-team-profiles/). - + Secure credential encryption is included in the core CLI.
diff --git a/autocompletion/README.md b/autocompletion/README.md deleted file mode 100644 index 3deb5919ee..0000000000 --- a/autocompletion/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# Zowe Aucompletion for bash - -Autocompletion simplifies composing Zowe CLI commands. - -```sh -zowe -``` -displays available options, commands or command groups -```sh ---available-commands --response-format-json plugins provisioning zos-files zos-tso zosmf ---help --version config profiles zos-console zos-jobs zos-workflows -vlcvi01@VLCVI01W10:~/workspaces/zowe-cli/autocompletion$ zowe -``` - -At first glance it may look that autocompletion does not work because of very slow response time. This is caused by zowe cli performance. Autocompletion script runs `zowe ... --help` in background to extract suggestions. - -Live demonstration -[![asciicast](https://asciinema.org/a/243646.svg)](https://asciinema.org/a/243646) - -## Installation - -### Linux (Ubuntu) -1) copy `zowe.bash` file to `/etc/bash_completion.d/zowe.bash` - ``` - sudo cp zowe.bash /etc/bash_completion.d/zowe.bash - ``` -2) start a new `bash` terminal - -**NOTE**: files in `/etc/bash_completion.d` do not have to have execute privilege. - -If you don't have an access to `/etc/bash_completion.d/`, copy `zowe.bash` file to `~/zowe_autocompletion/zowe.bash` add -```sh -. ~/zowe_autocompletion/zowe.bash -``` -at the end of your `.bashrc` file. - -### Mac -1) enable bash completion on mac because it is not activated by default see instructions: -https://www.simplified.guide/macos/bash-completion - -2) copy `zowe.bash` file to `/usr/local/etc/bash_completion.d/zowe.bash` -3) start a new `bash` terminal - -**NOTE**: files in `/usr/local/etc/bash_completion.d/zowe.bash` do not have to have execute privilege. - -### Windows - * Windows CMD is not supported. - * WLS is supported (see Linux) - * bash via MINGW should work but you need: grep, awk - -## Troubleshooting -To enable debug messages of the autocompletion script uncomment `#logfile="log"`. `log` file is created in current directory. - -## Limitations -Listing of datasets is using the default zosmf profile. diff --git a/autocompletion/zowe.bash b/autocompletion/zowe.bash deleted file mode 100644 index 9a02ecc07f..0000000000 --- a/autocompletion/zowe.bash +++ /dev/null @@ -1,66 +0,0 @@ -_ZOWE_COMPLETION() -{ - local cur prev opts zowe zoweout rc debug logfile usage - #logfile="log" - - if [ ! -z "$logfile" ]; then - rm -f $logfile ; touch $logfile - fi - - #skip - zowe="${COMP_WORDS[0]}" - #zowe="/home/vlcvi01/node_modules/.bin/zowe" - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - zowe="$zowe ${COMP_WORDS[@]:1:${COMP_CWORD}-1} --help" - zoweout=$(sh -c "${zowe} 2> /dev/null") - rc=$? - if [ $rc -ne 0 ] ; then - zowe="$zowe ${COMP_WORDS[@]:1:${COMP_CWORD}-2} --help" - zoweout=$(sh -c "${zowe} 2> /dev/null") - rc="${rc}/$?" - fi - - #opts="$(sh -c "$zowe ${COMP_WORDS[@]:1:${#COMP_WORDS[@]}-1} --help" | awk '/GROUPS/,/OPTIONS/' | grep '^ ' | awk '{print $1}') $(sh -c "$zowe ${COMP_WORDS[@]:1:${#COMP_WORDS[@]}-1} --help" | grep '^ --' | awk '{print $1}')" - opts="$( echo "$zoweout" | awk '/(COMMANDS|GROUPS)/,/OPTIONS/' | grep '^ ' | awk '{print $1}' ; echo "" ; echo "$zoweout" | grep '^ --' | awk '{print $1}' )" - - #check if USAGE part contains keyword in <> - # if generate list of local files - usage="$(echo "$zoweout" | grep -A 4 '^ USAGE' | grep -oP "${prev}\s+\K[^ ]*" )" - if [ ! -z "$usage" ] ; then - #zowe zos-jobs submit local-file [options] - if [ "$usage" = "" ]; then - COMPREPLY=( $(compgen -f ${cur}) ) - return 0 - fi - #zowe zos-files upload dir-to-pds [options] - if [ "$usage" = "" ]; then - COMPREPLY=( $(compgen -f ${cur}) ) - return 0 - fi - #zowe profiles update zosmf-profile [options] - - #zowe zos-files download data-set [options] - if [ "$usage" = "" ]; then - COMPREPLY=( $(compgen -W "$(zowe zos-files list data-set $(whoami) 2> /dev/null )" -- ${cur} ) ) - return 0 - fi - opts="$opts $usage" - fi - - if [ ! -z "$logfile" ]; then - echo "!${zoweout}!" >>$logfile - echo "usage:~$usage~" >> $logfile - echo "cli:~${zowe}~" >>$logfile - echo "rc:~${rc}~" >>$logfile - echo "opts:~${opts}~" >>$logfile - echo "cur:~${cur}~last:${prev}~" >>$logfile - echo "COMP_WORDS:${COMP_WORDS[@]}~${COMP_CWORD}~" >>$logfile - echo "~~~~~~~~~~~~~~~~~~~~" >>$logfile - fi - - COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) -} - -complete -F _ZOWE_COMPLETION zowe \ No newline at end of file diff --git a/packages/cli/README.md b/packages/cli/README.md index 9af6bf792a..0269e1ad75 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -2,6 +2,8 @@ [![codecov](https://codecov.io/gh/zowe/zowe-cli/branch/master/graph/badge.svg)](https://codecov.io/gh/zowe/zowe-cli) [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7204/badge)](https://bestpractices.coreinfrastructure.org/projects/7204) +>[!IMPORTANT] testing + Zowe CLI is a command-line interface that lets you interact with the mainframe in a familiar format. Zowe CLI helps to increase overall productivity, reduce the learning curve for developing mainframe applications, and exploit the ease-of-use of off-platform tools. Zowe CLI lets you use common tools such as Integrated Development Environments (IDEs), shell commands, bash scripts, and build tools for mainframe development. Through its ecosystem of plug-ins, you can automate actions on systems such as IBM Db2, IBM CICS, and more. It provides a set of utilities and services that help developers, DevOps engineers, and more become efficient in supporting and building z/OS applications quickly. This repository also contains the Zowe Node Client SDK. The SDK lets you leverage the underlying APIs to build applications that interface with the mainframe. @@ -11,13 +13,14 @@ This repository also contains the Zowe Node Client SDK. The SDK lets you leverag ## **Contents** - [Documentation](#documentation) - [Contribution Guidelines](#contribution-guidelines) - - [Building Zowe CLI From Source](#build-zowe-cli-from-source) - - [Installing Zowe CLI From Source](#install-zowe-cli-from-source) - - [Uninstalling Zowe CLI](#uninstall-zowe-cli) - - [Configuring Zowe CLI](#configure-zowe-cli) + - [Building Zowe CLI From Source](#building-zowe-cli-from-source) + - [Installing Zowe CLI From Source](#installing-zowe-cli-from-source) + - [Uninstalling Zowe CLI](#uninstalling-zowe-cli) + - [Configuring Zowe CLI](#configuring-zowe-cli) - [Zowe Node Client SDK](#zowe-node-client-sdk) - - [Running System Tests](#run-system-tests) + - [Running System Tests](#running-system-tests) - [FAQs](#frequently-asked-questions) + - [Project Structure and Governance](#project-structure-and-governance)
@@ -43,7 +46,7 @@ Guidelines for contributing to Zowe SDKs| [SDK Guidelines](./docs/SDKGuidelines. Versioning conventions for Zowe CLI and Plug-ins| [Versioning Guidelines](./docs/MaintainerVersioning.md) | | Miscellaneous tips for development | [Development Tips](./docs/DevelopmentTips.md) -**Tip:** +**Tip:** - Visit our [Sample Plug-in repository](https://github.com/zowe/zowe-cli-sample-plugin) for example plug-in code. You can follow developer tutorials [here](https://docs.zowe.org/stable/extend/extend-cli/cli-devTutorials.html).
@@ -69,7 +72,7 @@ When you update `package.json` to include new dependencies, or when you pull cha npm update ``` -**Tip:** +**Tip:** - When necessary, you can run the install command again to update dependencies changed in `package.json`.
@@ -81,7 +84,7 @@ From your copy of this repository, after a build, navigate to the `packages/cli` npm install -g ``` -**Notes:** +**Notes:** - Depending on how you configured npm on Linux or Mac, you might need to prefix the `npm install -g` command or the `npm uninstall -g` command with `sudo` to let npm have write access to the installation directory. - On Windows, the `npm install -g` command might fail several times due to an `EPERM` error. This appears to be a bug that npm documented in their GitHub issues. This behaviour does not appear to be specific to installing the Zowe CLI package. Unfortunately, the only solution that we know of is to issue the `npm cache clean` command and the `npm install -g` command repeatedly until it works. @@ -114,7 +117,7 @@ zowe zosmf check status For detailed information about creating service profiles, creating base profiles, or integrating with Zowe API ML, see [Using Zowe CLI](https://docs.zowe.org/stable/user-guide/cli-using-usingcli/). -**Tip:** +**Tip:** - When you confirm that your profile connects to and communicates with your mainframe system successfully, you can issue the same command at any time to verify the availability and status of the z/OSMF subsystem on your mainframe.
@@ -125,7 +128,7 @@ The Zowe Node Client SDK consists of APIs that enable you to build client applic For information about downloading and getting started with the SDK, see the [Zowe Docs](https://docs.zowe.org/stable/user-guide/sdks-using). To view the Zowe Node.js SDK doc, see [Zowe SDK Docs](https://docs.zowe.org/stable/typedoc/index.html). -**Tip:** +**Tip:** - Alternatively, you can import Zowe CLI into your project to call the Node APIs. However, importing all of Zowe CLI will increase the size of your project. For example, use the following statement to import packages from Zowe CLI: ``` @@ -196,9 +199,15 @@ npm run test:system - V2 uses **team profiles** and **deprecates the Secure Credential Store** (SCS) plug-in. Connection details can be managed efficiently within one file, promoting a global configuration that can be shared across teams and mainframe services. For more information on how to use profiles, visit [Zowe Docs](https://docs.zowe.org/stable/user-guide/cli-using-using-team-profiles/). - + Secure credential encryption is included in the core CLI.
Don't see what you're looking for? Browse questions from the community or ask your own in the [Q&A section](https://github.com/zowe/zowe-cli/discussions/categories/q-a) of our repo. + +## **Project Structure and Governance** + +Zowe CLI is a component of the Zowe Open Mainframe Project, part of the Linux Foundation. + +To learn more about how Zowe is structured and governed, see the [Technical Steering Committee Structure and Governance documentation](https://github.com/zowe/community/blob/master/Technical-Steering-Committee/tsc-governance.md). diff --git a/packages/core/README.md b/packages/core/README.md index 5ac441c3d0..02ee0f02a9 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -2,7 +2,8 @@ The Zowe SDK Core package contains functionality that is shared across all other SDK packages, such as `@zowe/zos-files-for-zowe-sdk`. -**Important!** You must install the Core package to satisfy the peer dependency requirement for all other SDK packages. +> [!IMPORTANT] +> You must install the Core package to satisfy the peer dependency requirement for all other SDK packages. ## Core libraries diff --git a/packages/imperative/README.md b/packages/imperative/README.md index ea183fb379..03c788ef72 100644 --- a/packages/imperative/README.md +++ b/packages/imperative/README.md @@ -3,15 +3,15 @@ [![codecov](https://codecov.io/gh/zowe/imperative/branch/master/graph/badge.svg)](https://codecov.io/gh/zowe/imperative) [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/2245/badge)](https://bestpractices.coreinfrastructure.org/projects/2245) -Imperative CLI Framework is a command processing system that lets you quickly build customized command-line interfaces. Focus on adding functionality for your users rather than creating CLI infrastructure. We provide you with all the tools to get started building your own CLI plug-ins. - +Imperative CLI Framework is a command processing system that lets you quickly build customized command-line interfaces. Prior to V3 of the Zowe CLI, Imperative was a seperate package. It is now fully integrated with the CLI where it continues to provide groundwork for CLI infrastrure, functionality and plug-ins. ## Software Requirements - [**Install Node.js package manager**](https://nodejs.org/en/download/package-manager) on your computer. Node.js® is a JavaScript runtime environment on which we architected Imperative CLI Framework. - You must have a means to execute ".sh" (bash) scripts to run integration tests. On Windows, you can install "Git Bash", which is bundled with the standard [Git](https://git-scm.com/downloads) installation - (choose the "Use Git and Unix Tools from Windows Command Prompt" installation option). When you run the integration tests on Windows, you must have Administrative authority to enable the integration tests to create symbolic links. -**Note:** Broadcom Inc. does not maintain the prerequisite software that Imperative CLI Framework requires. You are responsible for updating Node.js and other prerequisites on your computer. We recommend that you update Node.js regularly to the latest Long Term Support (LTS) version. +> [!WARNING] +> Broadcom Inc. does not maintain the prerequisite software that Imperative CLI Framework requires. You are responsible for updating Node.js and other prerequisites on your computer. We recommend that you update Node.js regularly to the latest Long Term Support (LTS) version. ## Install Imperative as a Dependency @@ -25,15 +25,19 @@ Issue the following commands to install Imperative CLI Framework as a dependency npm install @zowe/imperative ``` -- **Install `@zowe-v2-lts` version:** +- **Install `@zowe-v3-lts` version:** This is a Long Term Support release that is guaranteed to have no breaking changes. ``` bash - npm install @zowe/imperative@zowe-v2-lts + npm install @zowe/imperative@zowe-v3-lts ``` -**Note:** If you want to install the bleeding edge version of Imperative, you can append `--@zowe:registry=https://zowe.jfrog.io/zowe/api/npm/npm-release/` to the install command to get it from a staging registry. It is not recommended to use this registry for production dependencies. +> [!NOTE] +> If you want to install the bleeding edge version of Imperative, you can append +> `--@zowe:registry=https://zowe.jfrog.io/zowe/api/npm/npm-release/` to the install command to get it from a staging registry. It is not recommended to use this registry for production dependencies. + +## Build, Test and Expand Imperative ### Build and Install Imperative CLI Framework from Source To build and install the Imperative CLI Framework, follow these steps: @@ -58,25 +62,26 @@ Command | Description `npm test:integration` | Run integration tests `npm test:system` | Run system tests (requires IPv6 connection) -**Note:** To build and install the test CLIs used by the integration tests: -1. `node scripts/sampleCliTool.js build` -2. `node scripts/sampleCliTool.js install` +> [!NOTE] +> To build and install the test CLIs used by the integration tests: +> 1. `node scripts/sampleCliTool.js build` +> 2. `node scripts/sampleCliTool.js install` ### Sample Applications We provide a sample plug-in that you can use to get started developing your own plug-ins. See the [Zowe CLI Sample Plug-in](https://github.com/zowe/zowe-cli-sample-plugin). ## Documentation -We provide documentation that describes how to define commands, work with user profiles, and more! For more information, see the [Imperative CLI Framework wiki](https://github.com/zowe/imperative/wiki). +For historic documentation that describes how to define commands, work with user profiles, and more, see [Imperative CLI Framework wiki](https://github.com/zowe/imperative/wiki). ## Contribute -For information about how you can contribute code to Imperative CLI Framework, see [CONTRIBUTING](CONTRIBUTING.md). +For information about how you can contribute code to Imperative CLI Framework, see [CONTRIBUTING](../../CONTRIBUTING.md). ## Submit an Issue -To report a bug or request an enhancement, please [submit an issue](https://github.com/zowe/imperative/issues/new/choose). +To report a bug or request an enhancement, please [submit an issue](https://github.com/zowe/zowe-cli/issues/new/choose). ## Versioning Imperative CLI Framework uses Semantic Versioning (SemVer) for versioning. For more information, see the [Semantic Versioning](https://semver.org/) website. ## Licensing Imperative CLI Framework -For Imperative CLI Framework licensing rules, requirements, and guidelines, see [LICENSE](LICENSE). +For Imperative CLI Framework licensing rules, requirements, and guidelines, see [LICENSE](../../LICENSE). diff --git a/packages/secrets/CHANGELOG.md b/packages/secrets/CHANGELOG.md index 1e0fe440d8..93ca902f5f 100644 --- a/packages/secrets/CHANGELOG.md +++ b/packages/secrets/CHANGELOG.md @@ -27,7 +27,7 @@ All notable changes to the Zowe Secrets SDK package will be documented in this f ## `7.18.1` -- Added README to package w/ description, instructions and examples of using the `keyring` module. +- Added README to package w/ description, instructions and examples of using the `keyring` module. ## `7.18.0`