Skip to content

Commit

Permalink
Merge pull request #2385 from zowe/anax-update-readme
Browse files Browse the repository at this point in the history
first edits to ReadMe
  • Loading branch information
zFernand0 authored Dec 17, 2024
2 parents 15783f3 + ceb918f commit c42f9d4
Showing 1 changed file with 86 additions and 63 deletions.
149 changes: 86 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# **Zowe CLI** <!-- omit in toc -->
# Zowe CLI <!-- omit in toc -->

[![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)

Expand All @@ -8,49 +9,56 @@ This repository also contains the Zowe Node Client SDK. The SDK lets you leverag

<br/>

## **Contents** <!-- omit in toc -->
## Content <!-- omit in toc -->

- [Documentation](#documentation)
- [Contribution Guidelines](#contribution-guidelines)
- [Building Zowe CLI From Source](#building-zowe-cli-from-source)
- [Installing Zowe CLI From Source](#installing-zowe-cli-from-source)
- [Contribution guidelines](#contribution-guidelines)
- [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](#running-system-tests)
- [Running system tests](#running-system-tests)
- [FAQs](#frequently-asked-questions)
- [Project Structure and Governance](#project-structure-and-governance)
- [Project structure and governance](#project-structure-and-governance)

<br/>

## **Documentation**
For information about how to install, configure, and use Zowe CLI, see [Zowe CLI Quick Start Documentation](https://docs.zowe.org/stable/getting-started/cli-getting-started/). For more detailed instructions, see [Zowe CLI Documentation](https://docs.zowe.org/stable/user-guide/cli-using-usingcli/), which also includes examples and tutorials for how to contribute to Zowe CLI and develop CLI plug-ins.
## Documentation

For information about how to install, configure, and use Zowe CLI, see [Zowe CLI Quick Start](https://docs.zowe.org/stable/getting-started/cli-getting-started/) documentation. For more detailed instructions, see [Zowe CLI](https://docs.zowe.org/stable/user-guide/cli-using-usingcli/) documentation, which also includes examples and tutorials for how to contribute to Zowe CLI and develop CLI plug-ins.

Engineering design documentation is contained in the 'docs' directory in this repository. To view the Web Help for all Zowe CLI commands and contributed plug-ins, see the [Zowe CLI Web Help](https://docs.zowe.org/stable/web_help/index.html). To view all locally accessible commands, run `zowe --help-web`. For more use cases and tutorials visit [Medium.com/zowe](https://medium.com/zowe).
Engineering design documentation is contained in the `docs` directory in this repository. To view the Web Help for all Zowe CLI commands and contributed plug-ins, see the [Zowe CLI Web Help](https://docs.zowe.org/stable/web_help/index.html). To view all locally accessible commands, run `zowe --help-web`. For more use cases and tutorials visit [Medium.com/zowe](https://medium.com/zowe).

<br/>

## **Contribution Guidelines**
## Contribution guidelines

The following information is critical to working with the code, running/writing/maintaining automated tests, developing consistent syntax in your plug-in, and ensuring that your plug-in integrates with Zowe CLI properly:

| For more information about ... | See: |
| For more information about | Go to |
| ------------------------------ | ----- |
| General guidelines that apply to contributing to Zowe CLI and Plug-ins | [Contribution Guidelines](./CONTRIBUTING.md) |
| Conventions and best practices for creating packages and plug-ins for Zowe CLI | [Package and Plug-in Guidelines](./docs/PackagesAndPluginGuidelines.md)|
Guidelines for contributing to Zowe SDKs| [SDK Guidelines](./docs/SDKGuidelines.md) |
| Guidelines for running tests on Zowe CLI | [Testing Guidelines](./docs/TESTING.md) |
| Guidelines for running tests on the plug-ins that you build| [Plug-in Testing Guidelines](./docs/PluginTESTINGGuidelines.md) |
| General guidelines that apply to contributing to Zowe CLI and Plug-ins | [Contribution guidelines](./CONTRIBUTING.md) |
| Conventions and best practices for creating packages and plug-ins for Zowe CLI | [Package and plug-in guidelines](./docs/PackagesAndPluginGuidelines.md)|
Guidelines for contributing to Zowe SDKs| [SDK guidelines](./docs/SDKGuidelines.md) |
| Guidelines for running tests on Zowe CLI | [Testing guidelines](./docs/TESTING.md) |
| Guidelines for running tests on the plug-ins that you build| [Plug-in testing guidelines](./docs/PluginTESTINGGuidelines.md) |
| Documentation that describes the features of the Imperative CLI Framework | [About Imperative CLI Framework](https://github.com/zowe/imperative/wiki) |
| Naming CLI commands and developing syntax | [Command Format Standards](./docs/CommandFormatStandards.md) |
Versioning conventions for Zowe CLI and Plug-ins| [Versioning Guidelines](./docs/MaintainerVersioning.md) |
| Miscellaneous tips for development | [Development Tips](./docs/DevelopmentTips.md)
| Naming CLI commands and developing syntax | [Command format standards](./docs/CommandFormatStandards.md) |
Versioning conventions for Zowe CLI and Plug-ins| [Versioning guidelines](./docs/MaintainerVersioning.md) |
| Miscellaneous tips for development | [Development tips](./docs/DevelopmentTips.md)

**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).
**Tip:** Visit our [Sample plug-in repository](https://github.com/zowe/zowe-cli-sample-plugin) for example plug-in code. Follow the [developer tutorials](https://docs.zowe.org/stable/extend/extend-cli/cli-devTutorials.html) for more tips.

<br/>

## **Building Zowe CLI From Source**
Zowe CLI requires NPM version 8 and Cargo version 1.72.0 (or newer) to build from source. Before proceeding, check your NPM version with `npm --version` and if it's older than 8.x, update with `npm install -g npm`. To check your version of Cargo, run `cargo --version`. Cargo can be installed using rustup: [https://rustup.rs/](https://rustup.rs/). To update Cargo, run the `rustup update` command.
## Building Zowe CLI from source

Zowe CLI requires the NPM version bundled with the active LTS versions of NodeJS and Cargo version 1.72.0 (or newer) to build from source.

Check your NPM version with `npm --version` and if it's older than 8.x, update with `npm install -g npm`.

Check your Cargo version with `cargo --version`. Cargo can be installed using [rustup](https://rustup.rs/). To update Cargo, run the `rustup update` command.

For developers using Linux, the following packages are required to build Zowe CLI from source:

Expand Down Expand Up @@ -80,76 +88,84 @@ When you update `package.json` to include new dependencies, or when you pull cha
npm update
```

**Tip:**
- When necessary, you can run the install command again to update dependencies changed in `package.json`.
**Tip:** When necessary, run the install command again to update dependencies changed in `package.json`.

<br/>

## **Installing Zowe CLI From Source**
From your copy of this repository, after a build, navigate to the `packages/cli` directory, then issue the following command to install Zowe CLI from source:
## Installing Zowe CLI from source

From your copy of this repository, after a build, navigate to the `packages/cli` directory, then install Zowe CLI from source:

```
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.

<br/>

## **Uninstalling Zowe CLI**
From your local copy of this repository, issue the following command to uninstall Zowe CLI:
## Uninstalling Zowe CLI

From your local copy of this repository, to uninstall Zowe CLI:

```
npm uninstall --global @zowe/cli
```

<br/>

## **Configuring Zowe CLI**

Zowe CLI configuration is made up of different **profiles**. The profiles contain the information that Zowe CLI needs to communicate with the mainframe system. For example, credentials and z/OSMF host name. If you try to use Zowe CLI functionality and you get an error message that Zowe CLI failed to load any profiles, see the `zowe profiles create --help` command for the group of commands that you are trying to use (if any) to initialize your configuration.
## Configuring Zowe CLI

The most fundamental Zowe CLI profile is a `zosmf` profile. Issue the following command to understand how to create a `zosmf` profile in Zowe CLI:
Zowe CLI team configuration is made up of different **profiles**. Each profile contains the information that Zowe CLI needs to communicate with the mainframe system, such as credentials and host name.

```
zowe profiles create zosmf-profile --help
```
The most fundamental Zowe CLI profile is a `zosmf` profile, and it is included when Zowe CLI initializes your team configuration. However, you must still add your specific connection information to complete the `zosmf` profile. To do so, update your `~/.zowe/zowe.config.json` configuration file with a text editor or an IDE (such as Visual Studio Code) on your computer.

After you create your profile, you can confirm that the properties of your profile can connect to and communicate with your mainframe system successfully by issuing the following command:
After you create and/or finalize your profile, confirm that the properties of your profile can connect to and communicate with your mainframe system successfully:

```
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/).
For detailed information about creating profiles, or integrating with Zowe API ML, see the documentation in the [Using Zowe CLI](https://docs.zowe.org/stable/user-guide/cli-using-usingcli/) section of Zowe Docs.

**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.
**Tip:** When you confirm that your profile connects to and communicates with your mainframe system successfully, issue the same command at any time to verify the availability and status of the z/OSMF subsystem on your mainframe.

<br/>

## **Zowe Node Client SDK**
## Troubleshooting Zowe CLI

If you try to use Zowe CLI functionality and you get an error message that Zowe CLI failed to load any profiles, try issuing the following commands:

- `zowe config report-env` to generate a report on the status of the key areas in your working environment. Address any problems indicated in the report.
- `zowe config edit` to open your `~/.zowe/zowe.config.json` configuration file in your system's default text editor. Fix any properties with incorrect values.
- `zowe config secure` to have Zowe CLI prompt for your secure configuration properties in case your secure values are incorrect in your configuration.

**Note:** For these commands, use the `--global-config` option to update your global configuration or `--user-config` for your user configuration.

## Zowe Node Client SDK

The Zowe Node Client SDK consists of APIs that enable you to build client applications that interface with the mainframe. Use the APIs to build your own client applications or automation scripts, independent of Zowe CLI.

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).
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 [Using Zowe SDKs](https://docs.zowe.org/stable/typedoc/index.html).

**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:
Alternatively, import Zowe CLI into your project to call the Node APIs. However, importing all of Zowe CLI increases the size of your project. For example, use the following statement to import packages from Zowe CLI:

```
import { <interfaceName> } from @zowe/cli
```
Where `<interfaceName>` is the name of an interface that you populate (i.e. `IIssueParms`) or a function that submits requests (i.e `IssueCommand`).

`<interfaceName>`

- Name of an interface that you populate (i.e. `IIssueParms`), or a function that submits requests (i.e `IssueCommand`)

<br/>

### Example API Usage
### Example API usage

For example usage syntax, see the readme for each API package in this repository:
For example usage syntax, see the README for each API package in this repository:

- [Provisioning](https://github.com/zowe/zowe-cli/tree/master/packages/provisioning): Provision middleware and resources such as IBM CICS, IBM Db2, IBM MQ, and more.
- [z/OS Console](https://github.com/zowe/zowe-cli/tree/master/packages/zosconsole): Perform z/OS console operations.
Expand All @@ -163,9 +179,11 @@ For example usage syntax, see the readme for each API package in this repository

<br/>

## **Running System Tests**
## Running system tests

In addition to Node.js, you must have a means to execute `.sh` (bash) scripts, which are required for running integration tests.

In addition to Node.js, you must have a means to execute `.sh` (bash) scripts, which are required for running integration tests. On Windows, you can install "Git Bash" (bundled with the standard [Git](https://git-scm.com/downloads) installation - check "Use Git and Unix Tools from Windows Command Prompt" installation option).
On Windows, install "Git Bash", which is bundled with the standard [Git](https://git-scm.com/downloads) installation. Select the installation option **Use Git and Unix Tools from Windows Command Prompt**.

After downloading/installing the prerequisites, ensure that you can execute the following commands and receive success responses:

Expand All @@ -175,46 +193,51 @@ After downloading/installing the prerequisites, ensure that you can execute the
3. On Windows: `where sh`
```

To run Zowe CLI system tests, you need a configured properties file with proper system information present.
To run Zowe CLI system tests, you need a configured properties file populated with proper system information.

A dummy properties file is present in the `__tests__/__resources__/properties folder`, `default_properties.yaml`. Using this file as a template, you should create a `custom_properties.yaml` file within the same directory. Git is configured to ignore all properties files in the properties folder, except for the `default_properties.yaml` file. If the `custom_properties.yaml` file cannot be found or loaded, an error with relevant details will be thrown when attempting to run tests.
A dummy properties file is available in the `default_properties.yaml` file in the `__tests__/__resources__/properties` folder. Using this file as a template, you should create a `custom_properties.yaml` file within the same directory. Git is configured to ignore all properties files in the properties folder, except for the `default_properties.yaml` file. If the `custom_properties.yaml` file cannot be found or loaded, an error with relevant details displays when attempting to run tests.

You can then run the system tests by issuing the following command:
Run the system tests:

```
npm run test:system
```

<br/>

**IMPORTANT!** Do not commit configured properties files because they contain security principles and other critical information.
**IMPORTANT!** Do not commit configured properties files to this repository because they contain security principles and other critical information.

<br/>

## **Frequently Asked Questions**
## Frequently asked questions

**How can I install Zowe CLI as a root user on Mac/Linux?**
### How can I install Zowe CLI as a root user on Mac/Linux?

- You can install the CLI as root so that all users can access the CLI without installing it individually on their user account. As the root user on Mac/Linux, issue the following command:
- Install the CLI as root so that all users can access the CLI without installing it individually on their user account. As the root user on Mac/Linux, issue the following command:

```
npm i -g @zowe/cli@latest --ignore-scripts
```
**WARNING!** If you use this method, plug-ins that are installed as root can only be accessed as root. Users must install plug-ins on their user account or share all profiles/plugins/settings/logs with root. You also might encounter npm errors if you install as root. We recommend that Linux administrators implement a user/group environment where permissions can be more carefully controlled.
**What is the difference between V1 and V2?**
### What is the difference between Zowe V2 and V3?
- V2 uses **team profiles** and **deprecates the Secure Credential Store** (SCS) plug-in.
- V2 introduces **team profiles** and **deprecates the Secure Credential Store** (SCS) plug-in used in Zowe V1.
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/).
- 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, see [Team configurations](https://docs.zowe.org/stable/user-guide/cli-using-using-team-profiles/) in Zowe Docs.
Secure credential encryption is included in the core CLI.
- Secure credential encryption is included in the core CLI.
- V3 includes the preceding features. Additionally, removes support for Zowe V1 profiles.
- To upgrade from an older Zowe release, see [Migrating from Zowe Vx to Zowe V3](https://docs.zowe.org/stable/whats-new/zowe-v3-migratio3).
<br/>
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**
## Project structure and governance
Zowe CLI is a component of the Zowe Open Mainframe Project, part of the Linux Foundation.
Expand Down

0 comments on commit c42f9d4

Please sign in to comment.