mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
Merge Docusaurus site: all content under docs/, align with gregFramework split layout
- 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
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
---
|
||||
title: Contributors (Debug) EN
|
||||
description: Framework contributor setup, hook workflow, conventions, CI behavior, and PR checklist.
|
||||
sidebar_position: 140
|
||||
tags:
|
||||
- audience:contributor
|
||||
---
|
||||
|
||||
## Contributors (Debug)
|
||||
|
||||
This page is for contributors working on FrikaMF itself.
|
||||
|
||||
For the complete and maintainable feature matrix with implementation use cases, see [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
|
||||
|
||||
## Dev setup
|
||||
|
||||
```powershell
|
||||
dotnet build .\framework\framework/FrikaMF.csproj -c Debug -nologo
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
Optional game path override:
|
||||
|
||||
```powershell
|
||||
dotnet build .\framework\framework/FrikaMF.csproj /p:GameDir="C:\Path\To\Data Center"
|
||||
```
|
||||
|
||||
## Add a new hook workflow
|
||||
|
||||
1. Find target in dnSpy/dotPeek.
|
||||
2. Update `HOOKS.md`.
|
||||
3. Add Harmony patch.
|
||||
4. Add event id + dispatch wiring.
|
||||
5. Add/update Rust ABI event handling if needed.
|
||||
6. Test locally.
|
||||
7. Open PR.
|
||||
|
||||
## Conventions
|
||||
|
||||
- Keep ABI structs blittable.
|
||||
- Keep wrappers in framework, gameplay policy in mods.
|
||||
- Use stable event names and explicit contracts.
|
||||
|
||||
## IL2CPP pitfalls
|
||||
|
||||
- `b###` compiler-generated members are unstable.
|
||||
- Coroutine state-machine types (`d##`) are unstable.
|
||||
- Prefer Postfix first unless behavior blocking is required.
|
||||
|
||||
## Lua/Python/Web FFI contributor notes
|
||||
|
||||
Current core status:
|
||||
|
||||
- Rust native FFI bridge: implemented.
|
||||
- Built-in Lua runtime host: not implemented.
|
||||
- Built-in Python runtime host: not implemented.
|
||||
- Built-in generic HTTP/WebSocket FFI transport: not implemented.
|
||||
|
||||
Contribution guidance:
|
||||
|
||||
- Treat Lua/Python as sidecar integration work unless core runtime hosting is explicitly added.
|
||||
- Keep Unity and IL2CPP access constrained to C#/Rust boundaries.
|
||||
- If adding transport, define strict command schemas, authentication for non-local access, and rate limits.
|
||||
|
||||
## CI behavior
|
||||
|
||||
- CI runs without game installation.
|
||||
- `$(CI)=true` skips local game reference validation.
|
||||
- Local builds require MelonLoader-generated interop files.
|
||||
|
||||
## PR checklist
|
||||
|
||||
- [ ] `HOOKS.md` updated
|
||||
- [ ] Build passes locally
|
||||
- [ ] Docs updated
|
||||
- [ ] Conventional Commits used
|
||||
|
||||
## Example pair
|
||||
|
||||
### 🦀 Rust
|
||||
|
||||
```rust
|
||||
#[repr(C)]
|
||||
pub struct MoneyChanged {
|
||||
pub old_value: i32,
|
||||
pub new_value: i32,
|
||||
}
|
||||
```
|
||||
|
||||
### 🔷 C\#
|
||||
|
||||
```csharp
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct MoneyChanged
|
||||
{
|
||||
public int OldValue;
|
||||
public int NewValue;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,9 @@
|
||||
# Contribution Workflow EN
|
||||
|
||||
## Quick Flow
|
||||
|
||||
1. Create a branch.
|
||||
2. Keep changes small and atomic.
|
||||
3. Use Conventional Commits.
|
||||
4. Update docs and links together.
|
||||
5. Open a PR with a clear description.
|
||||
@@ -0,0 +1,3 @@
|
||||
# Guides Index EN
|
||||
|
||||
- [Contribution Workflow EN](Contribution-Workflow)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-contributors-guides"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
# Contributors Index EN
|
||||
|
||||
Audience: contributors working on framework code and docs.
|
||||
|
||||
## Contents
|
||||
|
||||
- [Contribution Workflow EN](Guides/Contribution-Workflow)
|
||||
- [Naming Convention EN](Reference/Naming-Convention)
|
||||
- [Troubleshooting EN](Troubleshooting/overview)
|
||||
- [AI Usage Policy](../AI-USAGE)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Reference Index EN
|
||||
|
||||
- [Naming Convention EN](Naming-Convention)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Naming Convention EN
|
||||
|
||||
## Unified Standard
|
||||
|
||||
- Folders: `PascalCase`
|
||||
- Files: `Title-Case-Kebab.md`
|
||||
- English mirror: `-en` suffix (`Page-Name-en.md`)
|
||||
|
||||
## Examples
|
||||
|
||||
- `EndUser/Guides/Framework-Dependency.md`
|
||||
- `EndUser/Guides/Framework-Dependency-en.md`
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-contributors-reference"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
# Troubleshooting Index EN
|
||||
|
||||
- [Troubleshooting EN](overview)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-contributors-troubleshooting"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
# Troubleshooting EN
|
||||
|
||||
## Common Contributor Issues
|
||||
|
||||
- Outdated links after restructuring
|
||||
- Inconsistent file names
|
||||
- Non-atomic commits
|
||||
|
||||
## Fix
|
||||
|
||||
- Always update sidebar and redirect pages together.
|
||||
- Apply naming convention consistently.
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Contributors",
|
||||
"position": 30,
|
||||
"key": "wiki-import-root-contributors"
|
||||
}
|
||||
Reference in New Issue
Block a user