Skip to content

feat: quark 2.0.0 - #51

Merged
NONPLAYT merged 31 commits into
masterfrom
feat/2.0.0
Oct 5, 2026
Merged

NONPLAYT merged 31 commits into
masterfrom
feat/2.0.0

Conversation

@NONPLAYT

@NONPLAYT NONPLAYT commented Oct 2, 2026

Copy link
Copy Markdown
Member

Quark 2.0: the single core is split into optional modules that are shaded and relocated into each plugin. Libraries no longer depend on a server platform; thin adapters connect them to Paper, Folia, Bukkit, Velocity and BungeeCord.

New

  • Modules: quark-common, quark-platform-api, quark-dependency, quark-logger, quark-update, quark-config (+ -yaml, -validator, -serdes-bukkit), quark-bom.
  • Adapters: platform/{paper,bukkit,velocity,bungee} with a scheduler (Helix features, Folia regions), ClassLoaderAppender and update notifiers on join.
  • Configs: annotation-driven, migrations, validation (@NotNull, @Min, @Max, @Pattern, @Check), Bukkit types. snakeyaml-engine is loaded at runtime, not shipped.
  • Update checker: Modrinth, Hangar, GitHub, Spigot, Reposilite, JSON URL.
  • Gradle plugin org.bxteam.quark: quark { platform; modules(...) }, runtime manifest, relocation to <group>.libs.quark, quark(...) { relocate = true } per dependency, devServer { } → runServer. run-server-plugin is merged in; org.bxteam.runserver remains as a deprecated shim.
  • Our own ASM relocator replaces me.lucko:jar-relocator (no second ASM).
  • Warning when the server already ships a library that Quark loaded.

Fixed

  • Resolver: POM dependencies are resolved against the parent hierarchy; dependencyManagement no longer leaks.
  • One version per library: a root's version wins, otherwise the newest (MavenVersions). The Gradle manifest is loaded non-transitively.

Breaking

  • 1.x manifest files (quark/dependencies.txt etc.) are no longer read; plugins built with the 1.x Gradle plugin must be rebuilt.
  • Scheduler.sync() on Folia goes to the global region scheduler; use sync(entity/location, ...) for context-bound work.
  • Lombok and examples removed. Sponge support dropped.
  • License changed to MIT.

Build

  • buildSrc → build-logic convention plugins, Gradle 9.8.0 (the plugin is tested on 8.14.3).
  • CI runs build and checkArtifactSize (common + platform-api + dependency + paper < 200 KB) with the configuration cache.
  • Repository conventions, new README and logo, Renovate on the BX Team preset; Qodana removed.

Things done

  • Tested, as applicable:
    • Covered by a new or updated test.
    • Ran a plugin built against this change on a real server — Paper 1.20.1.
  • lib/* and common/ stay platform-free, and quark-common gained no runtime dependency.
  • API compatibility, where this touches a published module:
    • Source- and binary-compatible with the last release, or
    • Breaking, with the old API kept as @Deprecated(forRemoval = true).
  • Platform reach, where this touches an adapter or the scheduler:
    • Paper
    • Folia
    • Spigot / Bukkit
    • Velocity
    • BungeeCord
  • Gradle plugin changes do no resolution or network access during configuration, and new modules are added to bom/ and to the plugin's functional-test publish list.
  • Documentation updated — <link to the BX-Team/code PR>
  • This pull request has one subject.
  • Fits CONTRIBUTING.md.

@NONPLAYT NONPLAYT added the 📄 README Applies to README.md file label Oct 2, 2026
@NONPLAYT NONPLAYT added 🧹 refactor Code cleanup without behaviour changes ⚙️ ci Workflows and automation labels Oct 2, 2026
@NONPLAYT
NONPLAYT marked this pull request as ready for review October 4, 2026 22:11
@NONPLAYT
NONPLAYT force-pushed the feat/2.0.0 branch 2 times, most recently from 072d195 to 713e2d3 Compare October 5, 2026 19:27
@NONPLAYT
NONPLAYT merged commit 713e2d3 into master Oct 5, 2026
1 check passed
@NONPLAYT
NONPLAYT deleted the feat/2.0.0 branch October 5, 2026 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚙️ ci Workflows and automation 📄 README Applies to README.md file 🧹 refactor Code cleanup without behaviour changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant