Skip to content

Introduces new matthiesen-lib-api package for server-friendly projects#10

Merged
Adammatthiesen merged 46 commits into
mainfrom
api
May 26, 2026
Merged

Introduces new matthiesen-lib-api package for server-friendly projects#10
Adammatthiesen merged 46 commits into
mainfrom
api

Conversation

@Adammatthiesen
Copy link
Copy Markdown
Member

@Adammatthiesen Adammatthiesen commented May 22, 2026

This pull request introduces a major refactor and migration of the Matthiesen Lib project, splitting it into two distinct mods: matthiesen-lib-api (server-side API) and matthiesen-lib (full server/client mod). It also overhauls the CI/CD workflow to support multi-project publishing, dependency management, and improved release automation. Extensive developer documentation is provided to aid migration and clarify the new project structure.

Project Structure & Documentation Updates:

  • Added a new api/README.md describing the purpose and usage of the matthiesen-lib-api mod, and updated the root README.md to explain the split between API and Lib mods, including setup instructions for developers using Loom. [1] [2]
  • Introduced a comprehensive DEV-DOCS.md detailing the migration, new module structure, API/lib separation, and compatibility strategies for developers.

Build & Workflow Overhaul:

  • Removed the old monolithic build workflow (.github/workflows/build.yml) and replaced it with a snapshot PR workflow (pr-snapshot.yml) and a much more sophisticated release workflow (publish-release.yml). These workflows now handle building, publishing, dependency resolution, Modrinth uploads for both API and Lib, and Discord notifications. [1] [2] [3] [4] [5] [6] [7]

Dependency & Publishing Improvements:

  • The release workflow now dynamically constructs Modrinth dependency lists per project and loader, supports multi-platform (Fabric/NeoForge) and multi-module (API/Lib) publishing, and synchronizes project descriptions from the correct README files. [1] [2] [3]
  • Added a new Gradle build script for the API common module (api/common/build.gradle.kts) with correct dependencies, resource processing, and plugin setup.

Release Automation & Notifications:

  • Automated Discord notifications for new releases, with embeds containing version, platform, and links to Modrinth and GitHub releases.

Most Important Changes:

1. Project Structure & Migration

  • Split the codebase into two mods: matthiesen-lib-api (API-only, server-side) and matthiesen-lib (full mod, includes API as a required dependency), with dedicated documentation and migration notes for developers. [1] [2] [3]

2. Build & CI/CD Workflow

  • Replaced the old build workflow with new PR snapshot and release workflows, supporting multi-module, multi-platform builds, artifact publishing, and dependency management for both mods. [1] [2] [3] [4] [5] [6]

3. Publishing & Dependency Management

  • Improved release automation: builds are published to Modrinth for both API and Lib (Fabric/NeoForge), with dynamically generated dependencies and project metadata. [1] [2] [3] [4]

4. Release Notifications

  • Added Discord webhook notifications for new releases, with detailed embeds for each published project.

5. Developer Experience

  • Added developer documentation (DEV-DOCS.md) and improved setup instructions, including a bootstrap script for fresh clones and detailed migration notes. [1] [2]

This refactor lays the foundation for a more maintainable, modular, and developer-friendly Matthiesen Lib ecosystem.

…dated build instructions, and improve logging for permission validation
…ttings.gradle.kts, and enhance logger identity management
… API as an optional dependency for API and Lib modules
@Adammatthiesen Adammatthiesen marked this pull request as ready for review May 26, 2026 21:01
@Adammatthiesen Adammatthiesen merged commit 0938284 into main May 26, 2026
2 checks passed
@Adammatthiesen Adammatthiesen deleted the api branch May 26, 2026 23: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