Skip to content

RFC: Standardize repository structure. #133

Open
@fjudith

Description

@fjudith

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

The current repository structure is pretty difficult to handle for new contributors as-it deviate a lot from the default @backstage/create-app boiler plate. Having the Backstage app untracked in the repository complicates the collaboration when many developers are work on the code base.

What is the outcome that you are trying to reach?

Describe the solution you would like

Implement the Backstage Community Plugins repository structure and CI pipeline to managed the AWS Harmonix plugin release.

Envisionned repo layout

|-- .yarn           # Yarn 4.x
|-- containers
|   |-- awstools    # Container image definition of the CI/CD toolset
|   |-- backstage   # Container image definition of the Harmonix/Backstage application
|   |-- postgresql  # Container image definition of the PgVector extended PostgreSQL
|   |-- hack        # Known as Build scripts, contains scripts required for local development
|-- skeletons  # Reusable directory structures for used by software-templates
|   |-- cdk
|   |   |-- aws_ecs
|   |   |-- aws_eks
|   |   |-- aws_gen_ai_rag
|   |   |-- aws_rds
|   |   |-- aws_s3
|   |   |-- aws_secretsmanager
|   |   |-- aws_serverless_api
|   |   |-- aws_ecs
|   |-- terraform
|   |   |-- aws_ecs
|   |-- gitlab
|   |   |-- common       # Shared pipelines
|   |   |-- saas         # Gitlab SaaS runner auth "before_script"
|   |   |-- self-hosted  # Gitlab Self-Hosted runner base auth
|   |-- github  # Future use
|-- software-templates 
|   |-- scaffolder-templates
|   |   |-- aws-basic-environment-provider
|   |   |-- aws-ecs-ec2-environment-provider
|   |   |-- aws-eks-environment-existing-cluster-provider
|   |   |-- aws-eks-environment-provider
|   |   |-- aws-environment
|   |   |-- aws-gen-ai-environment-provider
|   |   |-- aws-gen-ai-rag
|   |   |-- aws-rds-resource
|   |   |-- aws-s3-resource
|   |   |-- aws-secretsmanager-resource
|   |   |-- aws-serverless-environment-provider
|   |   |-- aws-tf-ecs-environment-provider
|   |   |-- example-eks-nodejs-rds-helm
|   |   |-- example-eks-nodejs-rds-kustomize
|   |   |-- example-nodejs-microservice
|   |   |-- example-nodejs-rds
|   |   |-- example-nodejs
|   |   |-- example-python-flask-eks
|   |   |-- example-python-flask
|   |   |-- example-serverless-rest-api
|   |   |-- example-springboot-eks
|   |   |-- example-springboot
|   |   |-- example-tf-nodejs
|   |   |-- all-templates.yaml
|-- website  # Docusaurus documentation website
|-- workspaces
|   |-- repo-tools  # Copy of the [repository management](https://github.com/backstage/community-plugins/tree/main/workspaces/repo-tools)
|   |-- harmonix
|   |   |-- packages
|   |   |   |-- app         # Reference plugins implementation in the Backstage frontend SPA 
|   |   |   |-- backend     # Reference plugins implementation in the Backstage backend API
|   |   |-- plugins
|   |   |   |-- aws-apps
|   |   |   |-- aws-apps-backend
|   |   |   |-- aws-apps-common
|   |   |   |-- catalog-backend-module-aws-apps-entites-processor
|   |   |   |-- scaffolder-backend-module-aws-apps
|   |   |-- platforms
|   |   |   |-- basic-environment
|   |   |   |-- common-contructs
|   |   |   |-- ecs-ec2-environment
|   |   |   |-- ecs-environment
|   |   |   |-- eks-environment
|   |   |   |-- gen-ai-enviroment
|   |   |   |-- installer      # Known as opa-platform
|   |   |   |-- serverless-environment

Describe alternatives you have considered

Leverage traditional directory layout generated by the @backstage/create-app and move plugins from backstage-plugins/plugins directory to the classic plugins directory.

Additional context

Relates to #116

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions