mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
Revised multiple documentation files to replace instances of "FrikaMF" with "gregCore," reflecting the updated naming conventions and project structure. This change enhances consistency and clarity across the documentation, ensuring that users and contributors have accurate information regarding the framework and its components.
56 lines
2.6 KiB
Markdown
56 lines
2.6 KiB
Markdown
---
|
|
id: monorepo-target-layout
|
|
title: Monorepo target layout and migration phases
|
|
sidebar_label: Monorepo target layout
|
|
description: Planned top-level structure and phased migration without a single big-bang refactor.
|
|
---
|
|
|
|
# Monorepo target layout and migration phases
|
|
|
|
The repository **stays one Git repo**. The goal is **clear boundaries** between framework, mods, plugins, templates, docs, and tooling so users, modders, and contributors can navigate predictably.
|
|
|
|
## Target topology (directional)
|
|
|
|
| Top-level | Purpose |
|
|
|-----------|---------|
|
|
| `gregCore/framework/` | Core MelonLoader framework (`gregCore/framework/gregCore.csproj`, `Sdk/`, `ModLoader/`, entry `framework/Main.cs`) |
|
|
| `mods/` | Gameplay mods (`FMF.Mod.*`, `FMF.*.dll` style) |
|
|
| `plugins/` | FFM plugins (`FFM.Plugin.*`) |
|
|
| `Templates/` | Scaffolds for new mods/plugins |
|
|
| `wiki/` | Docusaurus site (product docs; route base `/wiki`) |
|
|
| `tools/` | Repo maintenance: hook catalog generator, codegen stubs |
|
|
| `scripts/` | Release automation (existing) |
|
|
|
|
**Binaries**: prefer **GitHub Releases** (and pre-releases for beta) over committing DLLs. See [Release channels](../reference/release-channels.md).
|
|
|
|
## Phased migration (no big-bang)
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
p1[Phase1_DocsAndTools]
|
|
p2[Phase2_MoveModsPlugins]
|
|
p3[Phase3_FrameworkExtract]
|
|
p4[Phase4_CIRedirects]
|
|
p1 --> p2 --> p3 --> p4
|
|
```
|
|
|
|
| Phase | Scope | Exit criteria |
|
|
|-------|--------|---------------|
|
|
| **1** | Docs, `tools/`, naming wiki, hook catalog script | Docusaurus build green; script generates catalog |
|
|
| **2** | `git mv` former `ModsAndPlugins/` → `mods/` / `plugins/` | Done — `.csproj` relative paths unchanged (depth preserved); CI/docs updated |
|
|
| **3** | Framework sources under `framework/` | Done — `gregCore.sln` points at `framework\framework/gregCore.csproj`; plugins reference `..\..\framework\framework/gregCore.csproj` |
|
|
| **4** | CI matrix: docs + dotnet; `plugin-client-redirects` for old URLs | PR checks match local workflow |
|
|
|
|
## Path updates checklist (Phase 2 applied)
|
|
|
|
- [x] `gregCore.sln` project paths (`plugins\FFM.Plugin.*`)
|
|
- [x] `.github/workflows` (CodeQL, release assets, Discord feed)
|
|
- [x] Contributor docs and mod/plugin wiki pages (`Project Path` lines)
|
|
- [ ] [`wiki/docusaurus.config.js`](https://github.com/mleem97/gregFramework/blob/master/wiki/docusaurus.config.js) redirects (only if public URLs must map old paths)
|
|
- [ ] Historical wiki-import pages may still mention `StandaloneMods/` — update when editing those files
|
|
|
|
## Related
|
|
|
|
- [Repo inventory](./repo-inventory.md)
|
|
- [FMF hook naming](../reference/fmf-hook-naming.md)
|