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

RFC: Standardize repository structure. #133

Open
fjudith opened this issue Nov 2, 2024 · 1 comment
Open

RFC: Standardize repository structure. #133

fjudith opened this issue Nov 2, 2024 · 1 comment

Comments

@fjudith
Copy link
Contributor

fjudith commented Nov 2, 2024

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

@fjudith fjudith changed the title RFC: Standardize directory structure. RFC: Standardize repository structure. Nov 2, 2024
@fjudith
Copy link
Contributor Author

fjudith commented Nov 4, 2024

@z-sourcecode , @awsjim ,
Note were're experimenting this new repository structure in ou organization
https://github.com/alithya-oss/harmonix/blob/feature/repo-v2/MIGRATION.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant