Skip to content

Modernize build tooling, dependencies, and documentation for Guilds#756

Merged
darbyjack merged 14 commits into
masterfrom
feat/modernize
May 24, 2026
Merged

Modernize build tooling, dependencies, and documentation for Guilds#756
darbyjack merged 14 commits into
masterfrom
feat/modernize

Conversation

@darbyjack
Copy link
Copy Markdown
Member

This pull request modernizes the build system, updates the project documentation, and improves dependency management for the Guilds plugin. The most significant changes include switching to Quark for runtime dependency loading, updating Gradle and build configuration files, and overhauling the README with clearer requirements and build instructions.

Build and Dependency Management Improvements:

  • Switched runtime dependency loading from SlimJar to Quark, simplifying dependency management and reducing plugin jar size. The plugin now loads Kotlin and other dependencies at runtime using Quark, configured for the Bukkit platform. (Guilds.java, gradle/libs.versions.toml, settings.gradle.kts, [1] [2] [3] [4] [5] [6]
  • Upgraded Gradle to version 9.5.1 and updated the Gradle wrapper script accordingly. (gradle/wrapper/gradle-wrapper.properties, gradlew, [1] [2]
  • Added a .gitattributes file to ensure consistent line endings and proper handling of binary files.
  • Enhanced gradle.properties for better performance and Kotlin configuration, including enabling parallel builds, build caching, and setting Java memory options.

Continuous Integration (CI) Enhancements:

  • Improved the GitHub Actions workflow for Gradle: added workflow dispatch, concurrency controls, updated to latest action versions, set explicit build timeouts, and improved Gradle build steps for better caching and reliability.

Documentation and Licensing:

  • Completely rewrote and expanded the README.md to clarify requirements (Java 11+), supported integrations, build instructions, runtime dependency handling, and contribution guidelines.
  • Added a HEADER.txt file with the MIT license and copyright.

These changes collectively modernize the development workflow, make local and CI builds more reliable, and provide clearer guidance for users and contributors.

darbyjack added 14 commits May 24, 2026 17:02
Configure local Paper test servers across the supported Minecraft range.

- Add version-specific runServer tasks for legacy, modern, and latest Paper targets
- Configure per-version Java toolchains for server runtime compatibility
- Generate local eula.txt files before server startup
- Explicitly attach the shaded Guilds jar to custom RunServer tasks
- Preload Vault, LuckPerms, and EssentialsX where compatible
- Exclude EssentialsX from 26.1.2 due to current Paper API version parsing issues
Update the Gradle CI workflow to current GitHub Actions standards.

- Use current checkout and setup-java actions
- Replace deprecated gradle-build-action usage with gradle/actions/setup-gradle
- Run the shaded plugin build with configuration cache enabled
- Add workflow dispatch support for manual CI runs
- Add concurrency control for branch and PR builds
Move Kotlin stdlib from the shaded plugin jar to Quark runtime dependency loading.

- Add Quark Bukkit runtime and Gradle plugin configuration
- Raise the plugin runtime baseline to Java 11
- Keep the Quark loader on the Bukkit platform for Spigot/Paper compatibility
- Load Kotlin stdlib from Maven Central at plugin startup
- Keep other implementation dependencies shaded and relocated
- Validate runtime loading across the supported Paper test matrix
Refresh the README for the modernized Guilds build and runtime setup.

- Document current Java 11+ runtime requirement
- Clarify supported server environment expectations
- Add Gradle build and local run-server task guidance
- Mention Quark runtime dependency loading for Kotlin
- Preserve support, contribution, addon, and special thanks sections
Disable Gradle configuration cache in CI while Quark is enabled.

Quark's generateQuarkFiles task is not currently configuration-cache compatible and fails when Gradle attempts to serialize Project and Configuration references.

- Run the CI shadowJar build with --no-configuration-cache
- Keep the workflow on the modern Gradle setup action
- Preserve the no-daemon stacktrace build flags
Disable Gradle configuration cache while Quark is part of the normal build path.

Quark's generateQuarkFiles task is not currently configuration-cache compatible, so keeping configuration cache enabled by default causes local and CI builds to fail unless every command opts out manually.

- Set org.gradle.configuration-cache=false in gradle.properties
- Allow normal Gradle commands to run without repeated --no-configuration-cache flags
- Keep dependency and task caching unaffected
@darbyjack darbyjack merged commit 9858d68 into master May 24, 2026
1 check passed
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