Improvements & updates: housekeeping, CI/tests, and prepared dependency bumps - #11
Closed
BloddyMichi wants to merge 4 commits into
Closed
BloddyMichi wants to merge 4 commits into
BloddyMichi wants to merge 4 commits into
Conversation
Phase 1 (risk-free housekeeping): - Rewrite corrupted (mojibake) src/.editorconfig as clean UTF-8; drop the dead [*.vb] naming section and duplicate style blocks, preserve all C# rules. - Align UnityEditorPackage/package.json version (4.12.7) with the assembly version 4.13.5 and document the version scheme in ExplorerCore.cs. - Add global.json pinning the .NET 8 SDK for reproducible builds. - Unify Microsoft.Unity.Analyzers to 1.19.0 across both projects. - Add bilingual CONTRIBUTING.md (branch, build, style, in-game test guidance). Phase 2 (CI & tests): - Add tests/UnityExplorer.Tests: first unit tests covering platform-independent UniverseLib utilities (MiscUtility, IOUtility). The project links the real source files so no Unity/IL2CPP assemblies are required. - Add .github/workflows/ci.yml running the unit tests on push and pull request, complementing the existing Windows CoreCLR build workflow. Documented in CHANGELOG.md (Unreleased). Dependency runtime bumps (Il2CppInterop, HarmonyX, net6->net8) are intentionally deferred as they require an in-game smoke test against Data Center. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwZk8tHDBTSZQB25KsMdXY
MelonLoader 0.7.3 bundles Il2CppInterop 1.5.1-ci.845 at runtime; the compile-time reference is aligned to 1.5.1 so the mod links against the same API surface it runs on. Applied to both the Interop/CoreCLR configs in src/UnityExplorer.csproj and UniverseLib/src/UniverseLib.csproj. NOT YET VERIFIED: not compiled or tested in-game in this environment. Il2CppInterop had API changes between 1.0 and 1.5, so a compile pass and a Data Center smoke test are required before release. Isolated commit so it can be reverted alone. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwZk8tHDBTSZQB25KsMdXY
HarmonyX is referenced with IncludeAssets="compile", so it is not shipped with the mod; at runtime MelonLoader force-resolves its own bundled 0Harmony.dll. This only refreshes the compile-time API. UnityExplorer uses stable core Harmony APIs (Harmony ctor, CreateAndPatchAll, Patch, AccessTools) unchanged across 2.x. NOT YET VERIFIED: not compiled or tested in-game in this environment. Isolated commit so it can be reverted alone. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwZk8tHDBTSZQB25KsMdXY
Tomlet is bundled with the mod (no IncludeAssets=compile) and is self-contained, so this does not depend on MelonLoader's runtime. Kept within major 3.x so the config handlers' API usage (TomlParser.ParseFile, TomlDocument.Put(string, string, bool), TomlDocument.CreateEmpty, GetString, SerializedValue) is preserved; the 4.x/6.x majors change that API and are intentionally deferred. NOT YET VERIFIED: not compiled or tested in-game in this environment. Isolated commit so it can be reverted alone. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwZk8tHDBTSZQB25KsMdXY
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Improves consistency and maintainability of the Data Center UnityExplorer fork, adds the first CI/tests, and prepares (but does not yet verify) the dependency updates. Work is split so the risk-free parts can merge independently of the runtime-affecting bumps.
Phase 1 — Housekeeping (risk-free, no behavior change)
src/.editorconfig— it was mojibake (Shift-JIS read as Latin-1). Rewritten as clean UTF-8; dropped the dead[*.vb]naming section (no VB files) and duplicate style blocks, all C# rules/diagnostics preserved. (The UniverseLib.editorconfigis valid UTF-8 Japanese and was left untouched.)UnityEditorPackage/package.json(4.12.7→4.13.5) with the assembly version, and documented inExplorerCore.csthat4.13.5is the upstream base while the fork release series is thev1.xline in the changelog.global.jsonpinning the .NET 8 SDK for reproducible builds.Microsoft.Unity.Analyzersto1.19.0across both projects (compile-time analyzer only).CONTRIBUTING.md(branch, build, style, in-game test guidance).Phase 2 — CI & tests
tests/UnityExplorer.Testscovering platform-independent UniverseLib utilities (MiscUtility,IOUtility). It links the real source files, so no Unity/IL2CPP assemblies are required and it runs on any OS..github/workflows/ci.ymlruns the tests on every push and pull request (including feature branches), complementing the existing Windows CoreCLR build.Phase 3 — Dependency bumps (prepared as isolated commits, NOT yet verified)
Each is its own commit so it can be compile-/game-tested and reverted independently. None were compiled or tested in-game in the authoring environment — see the "pending in-game verification" note in
CHANGELOG.md.1.0.0→1.5.11.5.1-ci.845). API changed across 1.0→1.5, so a compile pass is required.2.5.2→2.14.0IncludeAssets="compile"); runtime patching still uses MelonLoader's force-resolved0Harmony.dll.3.1.3→3.2.23.xto preserve the config API (ParseFile,Put(key,value,bool)).Deferred:
net6 → net8— the MelonLoader 0.7.x CoreCLR runtime targets net6, so a net8 mod likely would not load. Needs a loader-compatibility test first.Verification
ci.yml) runs the unit tests on Linux — they do not reference the bumped packages, so they validate Phases 1–2 only.Build Data Center CoreCLRworkflow, which runs on this PR. After a green build, load the mod in Data Center and run the smoke test inCONTRIBUTING.md(UI opens, Object Explorer lists objects, C# console evaluates, a hook can be created).🤖 Generated with Claude Code
https://claude.ai/code/session_01XwZk8tHDBTSZQB25KsMdXY
Generated by Claude Code