Skip to content

Add shared core, Configurate and SQL libraries without changing legacy APIs - #76

Merged
BenCodez merged 6 commits into
mainfrom
codex/simpleapi-shared-libraries
Sep 8, 2026
Merged

Add shared core, Configurate and SQL libraries without changing legacy APIs#76
BenCodez merged 6 commits into
mainfrom
codex/simpleapi-shared-libraries

Conversation

@BenCodez

@BenCodez BenCodez commented Sep 7, 2026

Copy link
Copy Markdown
Owner

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.

  • Add separately publishable simpleapi-core, simpleapi-configurate, and simpleapi-sql artifacts, plus source JARs.
  • Compile explicit allow-lists from the one maintained SimpleAPI/src/main/java tree. Shared modules do not compile against Bukkit, Minecraft, or proxy APIs.
  • Add production ConfigurateConfigView and document/editor/snapshot contracts. YamlConfigDocument uses detached edits, content revisions, last-good reload behavior, bounded I/O, target symlink rejection, and staged atomic replacement.
  • Reuse existing SQL connection/table/query/value implementations; add MysqlConfigView with the existing configuration keys/defaults.
  • Add headless tests, packaged-class linkage/native-consumer checks, and Bukkit behavior parity checks.

Extra workflow removed at Ben's request

.github/workflows/shared-libraries.yml has been removed entirely from the PR branch. No replacement workflow was added and no checks were moved into another workflow.

The existing maven.yml and 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.md now 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.
  • GitHub's comparison of 78563dba6a5cbb168020d4ea65277cd229d738a7..8511a30bdb9080b18b9bbb141c7a18fc568dde8b confirms exactly two changed paths: the removed workflow and its documentation.
  • No Maven build or tests were rerun for this workflow/documentation-only removal. The results below are historical implementation validation, not a new test run.

Historical implementation validation

PR integration run and existing Maven CI passed for implementation head 50369b7e15c7584348e4b310252824af5049d5a4 merged into main 8d3d0adaf88e760b868fdd2ed151e7ca9fe04e18. Production implementation and tests have not changed in the subsequent workflow/documentation updates.

Module/consumer Tests Failures Errors Skipped
simpleapi-core 25 0 0 0
simpleapi-configurate 28 0 0 0
simpleapi-sql 3 0 0 0
Full SimpleAPI, including merged HTTP transport 341 0 0 0
AdvancedCore 269 0 0 0
VotingPlugin 500 0 0 0

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 3f66545590644d87ec45d7864d831691a07830ac and VotingPlugin 350caccb12053a12bb47bbe22012b875580a77d2. 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 original mvn -B -f SimpleAPI/pom.xml package command 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.

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
BenCodez marked this pull request as ready for review September 7, 2026 23:02
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-08T00:15:11.935644Z 8511a30 New commits
🔒 Security Review Completed 2026-09-07T23:08:13.947191Z d08f861 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@BenCodez
BenCodez merged commit d5014cd into main Sep 8, 2026
4 checks passed
@BenCodez
BenCodez deleted the codex/simpleapi-shared-libraries branch September 8, 2026 01:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant