mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 11:39:18 +02:00
- Move markdown and wiki-import tree into docs/; keep app shell at repo root - Point docusaurus docs path to docs/; edit links to mleem97/gregWiki - Sync and i18n scripts use gregWiki root and ../.wiki under gregFramework - Sidebars: workspace layout from root docs ids; plugins under mods/extensions - Fix redirects, module catalog URLs, release note paths, and wiki-import category keys - Update repo inventory for split repos; Dockerfile for single-repo context Made-with: Cursor
56 lines
2.5 KiB
Markdown
56 lines
2.5 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 |
|
|
|-----------|---------|
|
|
| `framework/` | Core MelonLoader framework (`framework/FrikaMF.csproj`, `framework/FrikaMF/`, entry `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 — `FrikaMF.sln` points at `framework\framework/FrikaMF.csproj`; plugins reference `..\..\framework\framework/FrikaMF.csproj` |
|
|
| **4** | CI matrix: docs + dotnet; `plugin-client-redirects` for old URLs | PR checks match local workflow |
|
|
|
|
## Path updates checklist (Phase 2 applied)
|
|
|
|
- [x] `FrikaMF.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)
|