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

docs: add trg 2-4 leading readme example #551

Merged
merged 8 commits into from
Jan 10, 2024
35 changes: 24 additions & 11 deletions docs/release/trg-2/trg-2-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,47 @@
title: TRG 2.04 - Leading product repository
---

| Status | Created | Post-History |
|--------|-------------|-----------------|
| Active | 07-Mar-2023 | |
| | 10-Jan-2023 | Initial release |
| Status | Created | Post-History |
|--------|-------------|------------------------------------------------|
| Update | 12-Dez-2023 | add example leading repository reference links |
| Active | 07-Mar-2023 | |
| | 10-Jan-2023 | Initial release |

## Why

We have multiply stakeholders for a repository: System team, release management, test management, external people who are trying it out, want to contribute or need to set it up.
We have multiple stakeholders for a repository: system team, test management, release management and everybody else interested in the product.
They need to be able to understand complicated product structures in an intuitive way to have an easier task of diving into a product.

## Description

Each product **must** have a leading product repository that can point the users to all the parts/components/charts/releases of that product.
Each product **must** have a leading product repository that points to all the parts/components/charts/releases of the product.
This can be achieved by having a single repository for a product or creating references to the other repositories.

A good example when a product has a separate repository for frontend and backend. Then the product team **must** have a leading repository where they reference the components/repositories of the product:
Exemplary repository structure:

- productname: leading product repository
- README.md: contains the urls for the backend and frontend applications
- README.md: contains the URLs for e.g. the backend and frontend applications
- README.md: each repo has to follow our [TRG 1.01](../trg-1/trg-1-1.md) about the README.md
- README.md: an [example section](#readme-example-section-for-a-leading-product-repository) for a leading product repository
- contains the release of the product
- contains the [product helm chart](../trg-5/trg-5-08)
- productname-A-frontend: the repository for the frontend application
- productname-A-backend: the repository for the backend application
- productname-a-component: e.g. the repository for the frontend application
- productname-b-component: e.g. the repository for the backend application

And each repo **must** contain the metafile see [TRG 2.05](../trg-2/trg-2-5.md).

## Leading product repository rules

- The name of the leading product repository **must** contain the product name without prefix or suffix
- It **should** contain the release (whether it is source code, helm chart or any other artifact)
- README.md contains the description of what the product does
- README.md contains the references/urls to the product's other repositories if they exist
- README.md contains the references/URLs to the product's other repositories if they exist
- It **should** contain the [TRG 5.08 - Product Helm Chart](https://eclipse-tractusx.github.io/docs/release/trg-5/trg-5-08)

### README example section for a leading product repository

```markdown
Leading repository for [product-name](link_to_product_repository):
- [product component A](link_to_product_component_A_repository)
- [product component B](link_to_product_component_B_repository)
```