Repository layout¶
FedMS is a multi-repository project. Each fedms_* module is its
own git repo with its own MR queue, its own CI pipeline, and its own
issue tracker. Sites are also their own repos.
The GitLab group¶
Everything lives under the
fedms GitLab group,
organized into sub-groups:
| Sub-group | Contents |
|---|---|
fedms/components/ |
The reusable building blocks. |
fedms/components/recipes/ |
Optional Drupal recipes. |
fedms/components/tests/ |
E2E test suites. |
fedms/sites/ |
Tenant sites. |
| (top level) | Documentation, support, gitlab-profile, helpdesk. |
The complete project list¶
| GitLab path | Composer name | Role |
|---|---|---|
fedms/components/profile |
fedms/profile |
The install profile. |
fedms/components/attachments |
fedms/attachment |
fedms_attachment module. |
fedms/components/content |
fedms/content |
fedms_content module. |
fedms/components/eca |
fedms/eca |
fedms_eca module + 10 ECA models. |
fedms/components/federation |
fedms/federation |
fedms_federation module + permissions YAML. |
fedms/components/locale |
fedms/locale |
fedms_locale module. |
fedms/components/tasks |
fedms/task |
fedms_task module. |
fedms/components/scripts |
fedms/scripts |
Install / config / export shell scripts. |
fedms/components/recipe |
fedms/recipe |
Parent recipe scaffold. |
fedms/components/recipes/attachment-recording |
fedms-recipe/attachment_recording |
Optional recipe. |
fedms/components/recipes/send-email |
fedms-recipe/send_email |
Optional recipe. |
fedms/components/recipes/zoom-video |
fedms-recipe/zoom_video |
Optional recipe. |
fedms/components/tests/cypress |
fedms/cypress |
Cypress E2E (deprecated). |
fedms/components/tests/playwright |
fedms/playwright |
Playwright E2E (active). |
fedms/components/skill |
— | (Internal) FedMS-specific opencode skill. |
fedms/sites/amplius-partners |
— | Amplius tenant site. |
fedms/sites/demo |
— | Demo tenant site (full-feature test bed). |
fedms/documentation |
— | This documentation site (mkdocs). |
fedms/gitlab-profile |
— | The group's landing page. |
fedms/support |
— | Public helpdesk issue queue. |
Composer registry¶
All fedms/* and fedms-recipe/* packages are published to the
group-level Composer registry at:
1 | |
Tenant sites add this URL to their composer.json as a repository.
A typical tenant site layout¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Important: every directory under web/modules/contrib/fedms_*
and web/profiles/contrib/fedms is its own git repo, checked
out from its corresponding GitLab project. When you work on a
module, you cd into the module's directory and operate on its repo,
not the site's.
Per-module layout¶
Inside any web/modules/contrib/fedms_*/ directory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
The exact subdirectories vary per module. See the per-module pages:
Branching conventions¶
Across all FedMS repos:
| Branch | What it is |
|---|---|
develop |
Active development. All MRs target this. Composer dev-* dependencies point here. |
main / tagged releases |
Production-ready. Tagged releases come off main. |
feature/<short-name> |
Feature branches that MR into develop. |
fix/<short-name> |
Fix branches. |
feature/advanced |
(Test repos only) Advanced E2E test branch — never merged back. |
develop is the default branch on every FedMS repo.
Next steps¶
- Tooling — how to interact with the repos.
- Contributing — the change workflow.
- Modules — what's in each module.