Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CLI output to match the latest changes to the catalog commands #1597

Merged
merged 13 commits into from
Sep 10, 2021
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified src/images/create-hello-world/new-catalog-stub.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/markdown-pages/build-apps/build-hello-world-app.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -222,15 +222,15 @@ nr1 create

<Step>

Select **catalog**, which creates a stub in your project under the `catalog` directory. Here's how the results might look in your code editor:
Select **catalog**, which creates a stub in your project under the `catalog` directory in the root directory and any launchers, Nerdlets, or visualizations directories. Here's how the results might look in your code editor:

![Catalog stub](../../images/create-hello-world/new-catalog-stub.png)

</Step>

<Step>

In the `catalog` directory of your project, add screenshots or various types of metadata to describe your project. For details about what you can add, see [Add catalog metadata and screenshots](https://docs.newrelic.com/docs/new-relic-one/use-new-relic-one/build-new-relic-one/discover-manage-applications-new-relic-one-catalog#clamshell-2).
In the root `catalog` directory of your project, add screenshots or various types of metadata to describe your project. For details about what you can add, see [Add catalog metadata and screenshots](https://docs.newrelic.com/docs/new-relic-one/use-new-relic-one/build-new-relic-one/discover-manage-applications-new-relic-one-catalog#clamshell-2).

</Step>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ cd nru-programmability-course/describe-app/ab-test

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the Update your Nerdpack's catalog information guide, how about we update the "big-picture" framing up on line 25 to have plural catalog directories:

To supply information to the catalog about your app, you need to create the _catalog_ directory in your Nerdpack.

->

To supply information to the catalog about your app, you need to create _catalog_ directories in your Nerdpack.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...you need to create catalog directories...

Are multiple catalog directories actually required or are they just automatically created? In another comment there was a conversation about whether empty screenshots directories are skipped or not. I think that may factor in here too.

In general, I think the change is fine, except that this guide might need to be reworked a little bit more because the procedures following the create command only deal with adding info to the root-level catalog directory.

If these Nerdpack item-level catalog directories can be deleted/skipped, then we may need to add a step to do that. Or maybe I'm overthinking this? 😅

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple catalog directories are automatically created but not required. Totally optional if you want to add nerdpack item screenshots or not.

We will be releasing an update to the CLI that will skip uploading any screenshots directory that is empty. Currently it is a bit annoying. If you run the nr1 create -t catalog then try and submit, you'll get an error stating that you need at least 1 screenshot. That shouldn't be the case, so a patch is incoming.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I think if the document describes the final state correctly but there's effectively a bug in the code, then let's just make the change to plural and be done with it 😃

<Step>

Create the _catalog_ directory:
Create the _catalog_ directories:

```sh
nr1 create --type catalog
```

This creates a _catalog_ directory with template files for inputting custom information about your app.
This creates a root _catalog_ directory and a _catalog_ directory for each Nerdpack item with template files for inputting custom information about your app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...a catalog directory for each Nerdpack item with template files for inputting custom information...

Elsewhere, it sounded like these Nerdpack item-level catalog directories only hold screenshots and not template files. Is that right?

Copy link
Contributor

@tyreer tyreer Sep 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well spotted! This would be good to specify.

You're right. At present, the only utility of the Nerdpack item directories is to provide a place where screenshots can be put and uploaded via nr1 catalog:submit. The folder structure is always <nerdpackItem>/catalog/screenshots/. Because it only contains a screenshots/ folder, the catalog/ directory in a Nerdpack item is more empty that the root level catalog/ directory.

That root level directory contains the template files this line is referring to, and the Nerdpack items directories do not.

We decided to mirror the root catalog/ directory folder structure because in future we may indeed add template files to the Nerdpack item directories—room to grow.

How about something like either of the below?

[Less descriptive]

This creates a root catalog directory with template files for inputting custom information about your app, as well as a catalog directory for each Nerdpack item.

[More descriptive]

This creates a root catalog directory with template files for inputting custom information about your app and a catalog directory for each Nerdpack item where screenshots can be stored.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @tyreer! I like the more descriptive suggestion.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this a lot. Thanks!


<Callout variant="tip">

Expand Down Expand Up @@ -135,4 +135,4 @@ This lesson is part of a course that teaches you how to build a New Relic One ap

</Callout>

</HideWhenEmbedded>
</HideWhenEmbedded>
Original file line number Diff line number Diff line change
Expand Up @@ -82,26 +82,22 @@ In _package.json_, set `version` to `1.0.0`:

```json filename=package.json lineHighlight=4
{
"private": true,
"name": "ab-test",
"version": "1.0.0",
"scripts": {
"start": "nr1 nerdpack:serve",
"test": "exit 0"
},
"nr1": {
"uuid": "2d923ba6-d231-4dd3-830f-b1923577a422"
},
"dependencies": {
"prop-types": "^15.6.2",
"react": "^16.6.3",
"react-dom": "^16.6.3"
},
"browserslist": [
"last 2 versions",
"not ie < 11",
"not dead"
]
"private": true,
"name": "ab-test",
"version": "1.0.0",
"scripts": {
"start": "nr1 nerdpack:serve",
"test": "exit 0"
},
"nr1": {
"uuid": "2d923ba6-d231-4dd3-830f-b1923577a422"
},
"dependencies": {
"prop-types": "^15.6.2",
"react": "^16.6.3",
"react-dom": "^16.6.3"
},
"browserslist": ["last 2 versions", "not ie < 11", "not dead"]
}
```

Expand Down Expand Up @@ -209,8 +205,8 @@ Submit your catalog information:

```sh
nr1 catalog:submit
[output] Uploading screenshots...
[output] {green}✔ {plain}Screenshots uploaded
[output] Uploading screenshots from nru-programmability-course/publish/ab-test...
[output] {success}✔{normal} Screenshots uploaded from: nru-programmability-course/publish/ab-test
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me look at this again. I was under the impression that if the screenshots folder was empty, we wouldn't try to upload it, so let me make sure that is still the case, hence why I omitted that output here. The course doesn't call for adding screenshots at the nerdpack item level, so I only included output from the root-level screenshots.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok after trying this out some more on my own, it looks like we actually don't skip screenshots on empty folders, which means that it errors out when trying to submit this step.

$ nr1 catalog:submit
Uploading screenshots from /path/to/demo-app...
 ✔  Screenshots uploaded from: /path/to/demo-app
Uploading screenshots from /path/to/demo-app/nerdlets/home...
Uploading screenshots from /path/to/demo-app/launchers/launcher...
 ›   Error: 1 error while updating Home 1.0.0
 ›
 ›   "You must include at least 1 screenshot when uploading screenshots."
 ›   Code: UNKNOWN

Copy link
Contributor

@tyreer tyreer Sep 8, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I see. Good point. All good to leave as is if that's how the command behaves.

Pretty sure we're skipping the upload on empty screenshots/ in the root directory, but we never established that for the Nerdpack-item children screenshots/ directories, which feels like an oversight

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So are these Nerdpack item-level screenshots mandatory or can we delete screenshots/ if there aren't any?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alexronquillo per this comment, they are not required and we are releasing a patch to skip uploading screenshots directories that are empty. The output that I have above will be the correct one once that patch goes live.

[output] {green}✔ {plain}Updated metadata for AbTest 1.0.0
```

Expand Down Expand Up @@ -238,18 +234,26 @@ View your catalog information:

```sh
nr1 catalog:info
[output] {purple}description: {plain}Nerdpack ab-test
[output] {purple}details: {plain}Display test data for our newsletter subscription A/B test
[output] {purple}displayName: {plain}AbTest
[output] {purple}icon.url: {plain}https://nr3.nr-ext.net/artifact-index-production/a685fec2-29fb-40b0-9f65-4178...
[output] {purple}previews.0.url: {plain}https://application-catalog-production.s3.us-east-2.amazonaws.com/nerdpacks/a...
[output] {purple}releaseDate: {plain}2021-03-12T15:46:09.600138Z
[output] {purple}repository: {plain}https://github.com/newrelic-experimental/nru-programmability-course
[output] {purple}tagline: {plain}Win @ newsletter subscriptions
[output] {purple}version: {plain}1.0.0
[output] {purple}whatsNew.changes: {plain}Initial release! Includes:
[output] - A variety of charts for understanding the test r...
[output] {purple}whatsNew.version: {plain}1.0.0
[output] AbTest (Nerdpack):
[output] {purple}description: {plain}Nerdpack ab-test
[output] {purple}details: {plain}Display test data for our newsletter subscription A/B test
[output] {purple}displayName: {plain}AbTest
[output] {purple}icon.url: {plain}https://nr3.nr-ext.net/artifact-index-production/a685fec2-29fb-40b0-9f65-4178...
[output] {purple}previews.0.url: {plain}https://application-catalog-production.s3.us-east-2.amazonaws.com/nerdpacks/a...
[output] {purple}releaseDate: {plain}2021-03-12T15:46:09.600138Z
[output] {purple}repository: {plain}https://github.com/newrelic-experimental/nru-programmability-course
[output] {purple}tagline: {plain}Win @ newsletter subscriptions
[output] {purple}version: {plain}1.0.0
[output] {purple}whatsNew.changes: {plain}Initial release! Includes:
[output] - A variety of charts for understanding the test r...
[output] {purple}whatsNew.version: {plain}1.0.0
[output] AbTestLauncher (Launcher):
[output] {purple}description: {plain}Describe me
[output] {purple}displayName: {plain}AbTestLauncher
[output] {purple}icon.url: {plain}https://nr3.nr-ext.net/artifact-index-production/a685fec2-29fb-40b0-9f65-4178...
[output] AbTestNerdlet (Nerdlet):
[output] {purple}displayName: {plain}AbTestNerdlet
[output] {purple}supportedEntityTypes.mode: NONE
```

All the information from _catalog_ shows here.
Expand Down Expand Up @@ -333,4 +337,5 @@ This lesson is part of a course that teaches you how to build a New Relic One ap

</Callout>

</HideWhenEmbedded>
</HideWhenEmbedded>

89 changes: 53 additions & 36 deletions src/markdown-pages/build-apps/serve-publish-subscribe/catalog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -104,28 +104,41 @@ There are no screenshots, icons, details, or what's new features. To add these,

<Step>

From the root of your Nerdpack, create a _catalog_ directory to house your Nerdpack's screenshots and metadata:
From the root of your Nerdpack, create _catalog_ directories to house your Nerdpack's screenshots and metadata:

```sh
nr1 create --type catalog
[output] {success}✔{normal} Component created successfully!
[output] {success}✔{normal} created: launchers/launcher/catalog
[output] {success}✔{normal} created: nerdlets/home/catalog
[output]
[output] {success}✔{normal} catalog created successfully!
[output] {purple}catalog{normal} is available at "./catalog"
```

Inside your _catalog_ directory, you'll find specific files and directories for portraying information about your Nerdpack to your users:
Inside your root _catalog_ directory, you'll find specific files and directories for portraying information about your Nerdpack to your users:

```sh
ls catalog
[output] README.md additionalInfo.md config.json documentation.md {blue}screenshots
```

| File | Description |
|---|---|
| _README.md_ | A markdown file that instructs you how to use the information and metadata in _catalog_ |
| _config.json_ | A JSON file that contains the following fields:<br /><br /><ul><li>`tagline`: A brief headline for the application. This cannot exceed 30 characters.</li><li>`repository`: The URL for the Nerdpack's remote repository. This cannot exceed 1000 characters.</li><li>`details`: The purpose of the Nerdpack and how to use it. This cannot exceed 1000 characters. Use newlines for formatting, and don't include any markdown or HTML.</li><li>`support`: An object that contains:</li><ul><li>`issues`: A URL for the repository's issues list. For example, the **Issues** tab if using GitHub.</li><li>`email`: A valid email address for the team supporting the application</li><li>`community`: A URL for a support thread, forum, or website for troubleshooting and usage support</li></ul><li>`whatsNew`: A bulleted list of changes in the current release version. This cannot exceed 500 characters. Use newlines for formatting, and don't include markdown or HTML.</li></ul>Check out our [Pageview Map application's _config.json_](https://github.com/newrelic/nr1-pageview-map/blob/main/catalog/config.json) to see a real-life implementation.
| _documentation.md_ | A markdown file that tells users how to use the Nerdpack's Nerdlets or visualizations. This shows in the detail view's **Documentation** tab. |
| _additionalInfo.md_ | An optional markdown file for any additional information about using your application |
| _screenshots_ | A directory that contains screenshots of your Nerdlets or visualizations. This can contain no more than 6 images. All screenshots must meet the following criteria:<br /><br /><ul><li>3:2 aspect ratio</li><li>PNG format</li><li>landscape orientation</li><li>1600 to 2400 pixels wide</li></ul> |
| File | Description |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| _README.md_ | A markdown file that instructs you how to use the information and metadata in _catalog_ |
| _config.json_ | A JSON file that contains the following fields:<br /><br /><ul><li>`tagline`: A brief headline for the application. This cannot exceed 30 characters.</li><li>`repository`: The URL for the Nerdpack's remote repository. This cannot exceed 1000 characters.</li><li>`details`: The purpose of the Nerdpack and how to use it. This cannot exceed 1000 characters. Use newlines for formatting, and don't include any markdown or HTML.</li><li>`support`: An object that contains:</li><ul><li>`issues`: A URL for the repository's issues list. For example, the **Issues** tab if using GitHub.</li><li>`email`: A valid email address for the team supporting the application</li><li>`community`: A URL for a support thread, forum, or website for troubleshooting and usage support</li></ul><li>`whatsNew`: A bulleted list of changes in the current release version. This cannot exceed 500 characters. Use newlines for formatting, and don't include markdown or HTML.</li></ul>Check out our [Pageview Map application's _config.json_](https://github.com/newrelic/nr1-pageview-map/blob/main/catalog/config.json) to see a real-life implementation. |
| _documentation.md_ | A markdown file that tells users how to use the Nerdpack's Nerdlets or visualizations. This shows in the detail view's **Documentation** tab. |
| _additionalInfo.md_ | An optional markdown file for any additional information about using your application |
| _screenshots_ | A directory that contains screenshots of your Nerdlets or visualizations. This can contain no more than 6 images. All screenshots must meet the following criteria:<br /><br /><ul><li>3:2 aspect ratio</li><li>PNG format</li><li>landscape orientation</li><li>1600 to 2400 pixels wide</li></ul> |

This command also generates a `catalog` directory for each launcher, Nerdlet, and visualization in your Nerdpack. Inside you'll find a directory that allows you to add screenshots for each Nerdpack item.

```sh
ls launchers/launcher/catalog
[output] {blue}screenshots
[output]
ls nerdlets/home/catalog
[output] {blue}screenshots
```

</Step>

Expand Down Expand Up @@ -156,7 +169,7 @@ Update your _config.json_ file:

<Step>

Include screenshots in your _screenshots_ directory.
Include screenshots in your root _screenshots_ directory or any Nerdpack item _screenshots_ directory.

</Step>

Expand All @@ -166,8 +179,12 @@ Submit the information to the New Relic One catalog:

```sh
nr1 catalog:submit
[output] Uploading screenshots...
[output] {success}✔{normal} Screenshots uploaded
[output] Uploading screenshots from demo-app...
[output] {success}✔{normal} Screenshots uploaded from: demo-app
[output] Uploading screenshots from demo-app/launchers/launcher...
[output] {success}✔{normal} Screenshots uploaded from: demo-app/launchers/launcher
[output] Uploading screenshots from demo-app/nerdlets/home...
[output] {success}✔{normal} Screenshots uploaded from: demo-app/nerdlets/home
[output] {success}✔{normal} Updated metadata for DemoApp 1.0.0
```

Expand Down Expand Up @@ -216,26 +233,22 @@ Update your _package.json_ version:

```json fileName=package.json lineHighlight=4
{
"private": true,
"name": "demo-app",
"version": "1.0.1",
"scripts": {
"start": "nr1 nerdpack:serve",
"test": "exit 0"
},
"nr1": {
"uuid": "f2dbc999-e9a3-49b9-933d-5a704c6750bd"
},
"dependencies": {
"prop-types": "^15.6.2",
"react": "^16.6.3",
"react-dom": "^16.6.3"
},
"browserslist": [
"last 2 versions",
"not ie < 11",
"not dead"
]
"private": true,
"name": "demo-app",
"version": "1.0.1",
"scripts": {
"start": "nr1 nerdpack:serve",
"test": "exit 0"
},
"nr1": {
"uuid": "f2dbc999-e9a3-49b9-933d-5a704c6750bd"
},
"dependencies": {
"prop-types": "^15.6.2",
"react": "^16.6.3",
"react-dom": "^16.6.3"
},
"browserslist": ["last 2 versions", "not ie < 11", "not dead"]
}
```

Expand Down Expand Up @@ -276,8 +289,12 @@ Submit this new metadata to the catalog:

```sh
nr1 catalog:submit
[output] Uploading screenshots...
[output] {success}✔{normal} Screenshots uploaded
[output] Uploading screenshots from demo-app...
[output] {success}✔{normal} Screenshots uploaded from: demo-app
[output] Uploading screenshots from demo-app/launchers/launcher...
[output] {success}✔{normal} Screenshots uploaded from: demo-app/launchers/launcher
[output] Uploading screenshots from demo-app/nerdlets/home...
[output] {success}✔{normal} Screenshots uploaded from: demo-app/nerdlets/home
[output] {success}✔{normal} Updated metadata for DemoApp 1.0.1
```

Expand Down Expand Up @@ -347,4 +364,4 @@ nr1 catalog:submit
[output] {error}›{normal} {blue}catalog/config.json
[output] {error}›{normal} {error}Invalid Metadata: `tagline` has a character length of 266. Must be no longer than 30 characters
[output] {error}›{normal} Code: UNKNOWN
```
```