From e9cbf8125256d2579c63efc902a09f095c0d681b Mon Sep 17 00:00:00 2001 From: Steve Piercy Date: Mon, 16 Dec 2024 08:30:23 -0800 Subject: [PATCH] Add monorepo structure to the README (#6542) --- README.md | 24 ++++++++++++++++++++ docs/source/contributing/developing-core.md | 25 ++++++++++++--------- packages/components/news/6542.internal | 1 + packages/components/package.json | 4 ++-- packages/volto/news/6542.documentation | 1 + 5 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 packages/components/news/6542.internal create mode 100644 packages/volto/news/6542.documentation diff --git a/README.md b/README.md index 63877d3e46..9327b2f737 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,30 @@ You can build your own or choose from the community released ones: You can try a Volto online demo at [https://demo.plone.org/](https://demo.plone.org/). +## Monorepo structure + +Since version 18.0.0-alpha4, the Volto core repository has had the shape of a monorepo, where "mono" means "single" and "repo" is short for "repository". +This means that several apps and libraries related to each other are stored in the same repository. +They are managed together but released individually. +This allows the code to be shared effectively, and unifies tracking of changes across all of the apps and libraries. + +| Package | Location | +|---|---| +| [`@plone/client`](https://www.npmjs.com/package/@plone/client) | [`packages/client`](https://github.com/plone/volto/tree/main/packages/client#readme) | +| [`@plone/components`](https://www.npmjs.com/package/@plone/components) | [`packages/components`](https://github.com/plone/volto/tree/main/packages/components#readme) | +| [`@plone/generator-volto`](https://www.npmjs.com/package/@plone/generator-volto) | [`packages/generator-volto`](https://github.com/plone/volto/tree/main/packages/generator-volto#readme) | +| [`@plone/helpers`](https://www.npmjs.com/package/@plone/helpers) | [`packages/helpers`](https://github.com/plone/volto/tree/main/packages/helpers#readme) | +| [`@plone/providers`](https://www.npmjs.com/package/@plone/providers) | [`packages/providers`](https://github.com/plone/volto/tree/main/packages/providers#readme) | +| [`@plone/registry`](https://www.npmjs.com/package/@plone/registry) | [`packages/registry`](https://github.com/plone/volto/tree/main/packages/registry#readme) | +| [`@plone/scripts`](https://www.npmjs.com/package/@plone/scripts) | [`packages/scripts`](https://github.com/plone/volto/tree/main/packages/scripts#readme) | +| [`@plone/types`](https://www.npmjs.com/package/@plone/types) | [`packages/types`](https://github.com/plone/volto/tree/main/packages/types#readme) | +| none | [`packages/volto-guillotina`](https://github.com/plone/volto/tree/main/packages/volto-guillotina) | +| [`@plone/volto-slate`](https://www.npmjs.com/package/@plone/volto-slate) | [`packages/volto-slate`](https://github.com/plone/volto/tree/main/packages/volto-slate#readme) | +| [`@plone/volto-testing`](https://www.npmjs.com/package/@plone/volto-testing) | [`packages/volto-testing`](https://github.com/plone/volto/tree/main/packages/volto-testing) | + +See also [Monorepo structure](https://6.docs.plone.org/volto/contributing/developing-core.html#monorepo-structure). + + ## Create a Volto project To start a new project using Volto, follow the [Plone installation documentation](https://6.docs.plone.org/install/create-project.html). diff --git a/docs/source/contributing/developing-core.md b/docs/source/contributing/developing-core.md index f0ffb5462e..ace0d1de63 100644 --- a/docs/source/contributing/developing-core.md +++ b/docs/source/contributing/developing-core.md @@ -42,32 +42,35 @@ The workspaces are located in the `packages` or `apps` folder. ### Folder layout Volto has the following folder structure. +The package `volto` is the core code of Volto. ```text -(volto-monorepo)/ +/ ├─ apps/ -│ ├─ plone │ ├─ nextjs │ ├─ remix -│ └─ rr7 +│ ├─ rr7 +│ ├─ vite +│ └─ vite-ssr +├─ ... ├─ packages/ -│ ├─ volto +│ ├─ blocks │ ├─ client │ ├─ components -│ ├─ registry -│ ├─ types │ ├─ coresandbox │ ├─ generator-volto +│ ├─ helpers +│ ├─ providers +│ ├─ registry │ ├─ scripts +│ ├─ slots +│ ├─ theming │ ├─ tsconfig +│ ├─ types +│ ├─ volto │ ├─ volto-guillotina │ ├─ volto-slate │ └─ volto-testing -├─ .gitignore -├─ package.json -├─ pnpm-workspace.yaml -├─ turbo.json -├─ tsconfig.json ├─ ... ``` diff --git a/packages/components/news/6542.internal b/packages/components/news/6542.internal new file mode 100644 index 0000000000..7aa5606de1 --- /dev/null +++ b/packages/components/news/6542.internal @@ -0,0 +1 @@ +Update `@plone/components`'s URLs in its `package.json`. @stevepiercy diff --git a/packages/components/package.json b/packages/components/package.json index 3ca411ac97..a7296a7611 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -11,10 +11,10 @@ "version": "3.0.0", "repository": { "type": "git", - "url": "http://github.com/plone/components.git" + "url": "http://github.com/plone/volto.git" }, "bugs": { - "url": "https://github.com/plone/components/issues" + "url": "https://github.com/plone/volto/issues" }, "type": "module", "files": [ diff --git a/packages/volto/news/6542.documentation b/packages/volto/news/6542.documentation new file mode 100644 index 0000000000..cff61771b4 --- /dev/null +++ b/packages/volto/news/6542.documentation @@ -0,0 +1 @@ +Add monorepo structure to the README. Update the monorepo structure file tree. @stevepiercy