Features
- Node.js 16 support (#39)
- CurseForge project IDs in dependency declarations support (#56)
- NeoForge support (#85)
- Game version ranges support (#25)
- Any range, such as
>=1.19 <1.19.3
or even[3D Shareware v1.34,19w45b)
, is now interpretable by the action as intended - As a result,
version-resolver
is now deprecated as it is no longer needed - New
game-version-filter
input
- Any range, such as
- Enhanced
dependencies
format - More descriptive and user-friendly error messages (#40, #87)
- The automatic unfeaturing of Modrinth versions now considers version types (i.e., alpha, beta, or release) (#41)
- New
modrinth-unfeature-mode
flags:version-type-subset
,version-type-intersection
, andversion-type-any
. These have been automatically integrated into the existingsubset
,intersection
, andany
presets, respectively
- New
- The action now provides useful outputs (#54)
Fixes
- Older Modrinth versions will no longer be unfeatured if the publication of a new version fails (#37)
- The action will no longer fail when attempting to upload a plugin or resource pack to CurseForge (#42)
- An issue causing
files-secondary
to be ignored has been resolved;files-secondary
is now deprecated and should no longer be used. This counts as a fix, right? (#47)
Obsolete Functionality
This version initiates the migration away from legacy design decisions, aiming for complete deprecation by v4.0
. To be clear, your existing configurations should still operate as expected, so there's no immediate rush to update your configurations, especially if they are complex. At most, the action may emit a few deprecation warnings.
files-primary
and files-secondary
This change is rather straightforward. files
now accept an array of globs. Honestly, I'm not sure why it wasn't like this from the start - it seems much more logical. So, instead of:
files-primary: primary-file*.jar
files-secondary: secondary-files*.jar
You should now use:
files: |
primary-file*.jar
secondary-files*.jar
even-tertiary-files-which-was-not-possible-before*.jar
dependencies
Rest assured, the input itself is not being deprecated, but its format is. Currently, you specify your dependencies like this:
dependencies: |
required-dependency | depends | *
optional-dependency | recommends | 0.1.0
suggested-dependency | suggests | 0.2.0
included-dependency | includes | 0.3.0
conflicting-dependency | conflicts | *
incompatible-dependency | breaks | *
This format is simple but lacks flexibility. It doesn't accommodate features such as platform-specific aliases (useful when a dependency uses different slugs on Modrinth/CurseForge/etc., or wants to specify IDs instead of slugs for each platform) or ignored platforms (handy when your dependencies are not available on a particular platform, e.g., the latest Sodium on CurseForge). Also, this format uses Fabric-like dependency types that, although fine in a metadata file, seem awkwardly worded in this context.
The same list of dependencies can be formatted as follows in the new format:
dependencies: |
required-dependency
[email protected](recommended)
[email protected](optional)
[email protected](embedded)
conflicting-dependency(conflicting)
incompatible-dependency(incompatible)
To specify platform-specific aliases or to ignore a dependency on some platforms, you can format it like this:
dependencies: |
[email protected](required){modrinth:AANobbMI}{curseforge:394468}#(ignore:curseforge,github)
version-resolver
With mc-publish
now capable of understanding version ranges, even those including the most obscure Minecraft snapshots, additional hints via version-resolver
have become unnecessary. However, version-resolver
served a vital role in filtering the resulting version range. Its successor, game-version-filter
, can help you filter out snapshots, select only the latest or earliest version, etc.
Here are some rough equivalents of version-resolver
as game-version-filter
values, which mc-publish
uses to remap your deprecated inputs:
version-resolver |
game-version-filter |
---|---|
exact |
min | releases |
latest |
min-major | min-minor | max-patch | releases |
all |
min-major | min-minor |
releases |
min-major | min-minor | releases |
releasesIfAny |
min-major | min-minor | releases |
"quilt": true
To indicate your Fabric mod's compatibility with Quilt Loader, you should now overload loaders
in your fabric.mod.json
instead.
"custom": {
"mc-publish": {
- "quilt": true
+ "loaders": ["fabric", "quilt"]
}
}
New Contributors
- @osfanbuff63 made their first contribution in #43
- @Minecraftschurli made their first contribution in #89
- @LukenSkyne made their first contribution in #98
Full Changelog: v3.2.0...v3.3.0