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

diracx-web extensions #18

Open
2 of 3 tasks
aldbr opened this issue Oct 16, 2023 · 0 comments
Open
2 of 3 tasks

diracx-web extensions #18

aldbr opened this issue Oct 16, 2023 · 0 comments
Assignees

Comments

@aldbr
Copy link
Collaborator

aldbr commented Oct 16, 2023

DIRAC communities that need to develop a diracx-web extension will need to create new interfaces to interact with their services.
They will focus their efforts on building new components upon the existing diracx-web ones.

Here I present a potential solution.
I think it would make sense to create an npm package from /src/components and /src/hooks , that would contain all the diracx-web components, layouts and applications.

Running a diracx-web extension would then consists in:

  • creating a new React/NextJS project
  • importing the diracx-components package
  • developing new components
  • organizing components in the src/app (I don't think that the diracx src/app directory can be reused so it has to remain very simple)

We can either create 2 repos:

  • diracx-web-components: current /src/components and /src/hooks
  • diracx-web: imports diracx-web-components and implements /src/app

Or use tools like Lerna to manage multiple "projects" from the same repo (I did not investigate much though): https://lerna.js.org/docs/getting-started

Any opinion about the described solution?

Plan:

  • Implement a library diracx-web-components that can be imported in other projects (Feat extensions #179)
  • Develop an example of extension with a comprehensive documentation (Feat extensions #179)
  • Provide a CI example (.github/workflows/extension.yaml) building the extension, running e2e tests, deploying (? not sure if it is possible as it needs diracx-web-components to be released on npm). This is needed (i) to safely update the extension, (ii) provide an example of CI (which should be also documented) for the developers of the web extensions. (ci(Gubbins): Extension workflow #218)
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

2 participants