Add shared core, Configurate and SQL libraries without changing legacy APIs - #76
Merged
Conversation
Build core, Configurate and SQL artifacts from the existing maintained sources without changing the legacy SimpleAPI POM or existing public APIs. Add revisioned local YAML editing, native SQL configuration, packaged classpath checks and pinned AdvancedCore/VotingPlugin compatibility builds.
BenCodez
marked this pull request as ready for review
September 7, 2026 23:02
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Summary
Follow-up to merged #75: prepare the reusable SimpleAPI layer for AdvancedCore/VotingPlugin's native Fabric/Forge/NeoForge work without rewriting the existing implementation or changing the Bukkit API.
simpleapi-core,simpleapi-configurate, andsimpleapi-sqlartifacts, plus source JARs.SimpleAPI/src/main/javatree. Shared modules do not compile against Bukkit, Minecraft, or proxy APIs.ConfigurateConfigViewand document/editor/snapshot contracts.YamlConfigDocumentuses detached edits, content revisions, last-good reload behavior, bounded I/O, target symlink rejection, and staged atomic replacement.MysqlConfigViewwith the existing configuration keys/defaults.Extra workflow removed at Ben's request
.github/workflows/shared-libraries.ymlhas been removed entirely from the PR branch. No replacement workflow was added and no checks were moved into another workflow.The existing
maven.ymland publication workflows remain unchanged. Java implementation, tests, POMs, artifact packaging, and public APIs are unchanged by this removal. The shared-module tests and packaged-artifact probes remain in the repository and can be run manually;docs/shared-libraries.mdnow includes their commands.The unchanged automatic Maven job builds only
SimpleAPI/pom.xml. It does not build/test the sibling shared modules or run the extra packaged-artifact probes. Cross-repository compatibility builds also remain an explicit task rather than an automatic PR dependency.Validation of the removal
ebd0a104e702f3cdb2978d3f9bc6d467cc16fc7c: delete the optional shared-library workflow.8511a30bdb9080b18b9bbb141c7a18fc568dde8b: update the manual-validation documentation.78563dba6a5cbb168020d4ea65277cd229d738a7..8511a30bdb9080b18b9bbb141c7a18fc568dde8bconfirms exactly two changed paths: the removed workflow and its documentation.Historical implementation validation
PR integration run and existing Maven CI passed for implementation head
50369b7e15c7584348e4b310252824af5049d5a4merged into main8d3d0adaf88e760b868fdd2ed151e7ca9fe04e18. Production implementation and tests have not changed in the subsequent workflow/documentation updates.Core reuses 24 existing duration/headless cases; these are executions per module, not all-new tests. The initial branch validation also recorded 48 packaged shared classes linked without server APIs, a packaged native consumer pass, and 174 Bukkit/shared configuration comparisons.
Historical downstream fixtures were AdvancedCore
3f66545590644d87ec45d7864d831691a07830acand VotingPlugin350caccb12053a12bb47bbe22012b875580a77d2. Those pins are retained here only as evidence of what was previously tested, not in an automatic workflow.Compatibility and scope
Existing public Java APIs, the legacy
SimpleAPI/pom.xml, dependency versions, shading, and existing publishing workflows remain unchanged. The originalmvn -B -f SimpleAPI/pom.xml packagecommand remains valid. Native consumers use the new thin artifacts; current Bukkit consumers retain the full distribution without source/dependency changes.The thin SQL artifact uses unrelocated HikariCP while the full distribution relocates it. Future mixed AdvancedCore common/Bukkit packaging needs aligned shading and final packaged-linkage testing; exclusions alone do not prove that combination compatible.
The merged HTTP transport is not reworked here; thin transport packaging remains a separate task. AdvancedCore still needs platform boundaries for scheduling, players, items, messages, and menus. No live Minecraft server smoke test or live database matrix was run.
YAML documents are for administrator-owned local files with trusted parents and application-owned cross-process writes, not unrestricted remote uploads, filesystem compare-and-swap transactions, or guarantees of comment/format/ACL preservation.
Shared artifacts are built and tested but not published to Nexus. Publication instructions are documented. Nothing has been merged or deployed by this PR, and no AdvancedCore/VotingPlugin repository has been modified.
AI disclosure: This implementation and pull-request description were prepared with assistance from ChatGPT.