# Gem Workflow Tests These workflows center around testing the basic functionality of the Project Manager's gem tooling. Including Gem Creation, Gem Catalog, and Gem Remote Sources Manager. ## General Docs * [O3DE Project Configuration](https://www.o3de.org/docs/user-guide/project-config/) * [O3DE Project Manager](https://www.o3de.org/docs/user-guide/project-config/project-manager/) ## Common Issues * Dialogs do not open or progress as expected. * Created gems do not immediately refresh in **Gem Catalog** list. ## Workflows ### Area: Gem Catalog Experience **Platforms:** * Windows * Linux **Product:** A project with modified gems. **Suggested Time Box:** 15 minutes per platform. | Workflow | Requests | Things to Watch For | |-----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Find a gem in the Gem Catalog** |
  1. Open the **O3DE Project Manager**.
  2. Select the **Gems** button from the **O3DE Project Manager** navigation ribbon.
  3. Apply a simple search string to the **Search Bar**.
  4. Apply **Search Filters** to discover a gem that you need from the different filter categories.
| | | **Edit a gem** |
  1. Find a gem you want to edit in the **Gem Catalog** using your desired search & filter method.
  2. Select the gem you want to edit.
  3. Click the **Edit** button in the **Gem Details** panel.
  4. Modify the **Gem Details** you want to edit and click next.
  5. Modify **Creator Details** you want to edit and confirm.
| | --- ### Workflow: Create a Gem from O3DE Project Manager ### New Gem Template * Prebuilt Gem * GemRepo * Asset Gem * Default Gem * C++ Tool Gem * Python Tool Gem * Choose existing template #### Gem Details Editable Fields * Gem System Name [*Required] * Gem Display Name [*Required] * Gem Summary * Requirements * Target Platform(s) * License [*Required] * License URL * User-defined Gem Tags * Gem Location [*Required] [o3de/o3de#13736](https://github.com/o3de/o3de/issues/13736) * Gem Icon Path [o3de/o3de#15540](https://github.com/o3de/o3de/issues/15540) * Documentation URL #### Creator Details Editable Fields * Creator Name [*Required] * Origin URL * Repository URL **Target Platforms:** * Windows * Linux * iOS * Android * All Platforms **Platforms** * Windows * Linux **Product:** A newly created gem that can interact with the **Gem Catalog**, is present on the file system, and be added to a project. **Suggested Time Box:** 30 minutes per platform. | Workflow | Steps | Expectations | |------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Create a Gem Experience |
  1. Enter the Gem Catalog.
  2. Select the hamburger menu in the top right corner.
  3. Select **Create New Gem**.
  4. Select a gem **type** or **template** that you want to create and click next.
  5. Populate the gem details fields and click next.
  6. Populate the Creator Details and click next.
  7. Return to **Gem Catalog** and refresh.
| | | Gem name matches existing gem |
  1. Create two gems with the same name, but different values for description, etc.
| | | Platform Support - Platforms Specified |
  1. Create a Gem and include desired [Target Platforms](#target-platforms) selections on the **Gem Details** panel.
| | | Platform Support - Platforms Unspecified |
  1. Create a Gem, without including any desired [Target Platforms](#target-platforms)
| | ### Workflow: Add a remote gem from O3DE Project Manager **Workflow Docs** [O3DE Gem Repositories](https://www.o3de.org/docs/user-guide/gems/repositories/overview/) **Repository Configuration** A git repository must contain a `repo.json` at its root which points to templates. The `repo.json` contains a gems list which points to the remote gems within said repository. See [sample-code-gems repo.json](https://github.com/o3de/sample-code-gems/blob/main/repo.json) as an example. ```json { "gems": [ "https://raw.githubusercontent.com/o3de/sample-code-gems/main/atom_gems/AtomTutorials", "https://raw.githubusercontent.com/o3de/sample-code-gems/main/cpp_gems/ShapeExample", "https://raw.githubusercontent.com/o3de/sample-code-gems/main/py_gems/PyShapeExample" ] } ``` **Workflow Requirements** * A built project to add a remote gem to (a blank template project is acceptable). * Locally installed tools for the remote source being used (git installed with credentials for GitHub, for example) * A remote Git repository (GitHub, AWS CodeCommit, BitBucket, self-hosted, ETC) that has a remote project. * Examples: * sample-code-gems (https://github.com/o3de/sample-code-gems.git) * O3DE Canonical Gems (https://canonical.o3de.org) [o3de/o3de#15557](https://github.com/o3de/o3de/issues/15557) * Another [O3DE](https://github.com/o3de) owned sample with compatible remote gems. * Your own repository URI with a remote gem you've created. **Platforms** * Windows * Linux **Product:** A built project with a remote gem added to it. **Suggested Timebox:** 30 minutes per platform | Workflow | Requests | Things to Watch For | |----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Add **Remote Gem(s)** to **Gem Remote Sources Manager**. |
  1. Open O3DE Project Manager.
  2. Select **Gems** from the O3DE Project Manager Ribbon.
  3. Open **Gem Remote Sources Manager**.
  4. Add your remote gem repository.
| | | Add **Remote Gem** to an **O3DE Project**. |
  1. Add **Remote Gem(s)** to the **Gem Remote Sources Manager.**
  2. Configure your project to add your **Remote Gem(s)**.
  3. Build and open your project in the O3DE Editor.
| | --- ### Workflow: Verify Gem's version and engine compatibility in Project Manager **Workflow Docs** [O3DE Gem Repositories](https://www.o3de.org/docs/user-guide/gems/repositories/overview/) **Workflow Requirements** * O3DE built * Gem with at least two versions **Platforms** * Windows * Linux **Product:** Gem's version, and Engine compatible data displayed in the Gem's Inspector. **Suggested Timebox:** 30 minutes per platform | Workflow | Requests | Things to Watch For | |----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Verify **Gem's compatible engine** |
  1. Open the O3DE Project Manager.
  2. Select **Gems** tab.
  3. Select any Gem from the **Gem Catalog** list.
  4. In the Inspector, verify that **Compatible Engines** data is present.
  5. | | | Verify **Gem's version** changes|
    1. Add a Gem with at least two versions to the engine.
    2. Open the O3DE Project Manager.
    3. Select **Gems** tab.
    4. Search for a Gem with multiple versions in **Gem Catalog**.
    5. Select the Gem.
    6. In the Inspector, change the Gem's version by using the dropdown menu.
      1. |
        • Gem's version data is not displayed in the Inspector
        • Gem's with multiple versions are not displayed in the Gems Catalog.
        • Gem's version dropdown menu is not working.
        • Changing the Gem's version in the Gem's Catalog Inspector does not have any effect - Initialy selected version of the Gem is active.
        | ---