Releases: Kir-Antipov/mc-publish
v3.3.0
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
recommended-dependency@0.1.0(recommended)
optional-dependency@0.2.0(optional)
embedded-dependency@0.3.0(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: |
sodium@0.4.10(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
v3.2.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
javadoc
jars are excluded from primary files by default (#18)
New Contributors
Full Changelog: v3.1.0...v3.2.0
v3.1.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
- Target-specific inputs (e.g.,
modrinth-dependencies
,curseforge-dependencies
, etc.) are officially supported now (#13) 🛈 - Added support for Modrinth
embedded
dependency type (#15) - Changed default publishing order to CurseForge, Modrinth, GitHub (#16)
- New
fail-mode
input. Determines how errors that occur during mod publishing process are handled - Fabric mods can be marked as Quilt-compatible 🛈
Fixes
- Sequential uploads to GitHub could not find previously created releases
Full Changelog: v3.0.0...v3.1.0
v3.0.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
- Quilt support (#5)
- Modrinth Dependencies now work the same way as CurseForge's Relations (#4, #8)
- New
modrinth-featured
input. Indicates whether the version should be featured on Modrinth or not (#9) - New
modrinth-unfeature-mode
input. Determines the way automatic unfeaturing of older Modrinth versions works (#9) mc-publish
is able to create GitHub Releases now (#7)- New
github-generate-changelog
input. Indicates whether to automatically generate the changelog for this release - New
github-draft
input.true
to create a draft (unpublished) release,false
to create a published one - New
github-prerelease
input.true
to identify the release as a prerelease,false
to identify the release as a full release - New
github-commitish
input. Specifies the commitish value that determines where the git tag is created from - New
github-discussion
input. If specified, a discussion of the specified category is created and linked to the release
- New
github-tag
can be inferred from theGITHUB_REF
environment variable now
Fixes
- CurseForge upload fails when dependency list only consists of non-accessible dependencies (#6)
New Contributors
Full Changelog: v2.1.0...v3.0.0
v2.1.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
- Added the ability to retry publishing assets. This behavior can be configured with the new
retry-attempts
andretry-delay
options
Fixes
- Sometimes a primary file on Modrinth was not set correctly
Full Changelog: v2.0.0...v2.1.0
v2.0.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
modrinth-id
andcurseforge-id
can be retrieved from the config file of your modgame-versions
can be retrieved from the config file of your mod- Default value of the
loaders
property is nowfabric
for Fabric mods andforge
for Forge mods - Added ability to make use of CurseForge's relations via the new
dependencies
property
Fixes
- The action won't try to publish assets if no token was specified (#2)
Full Changelog: v1.1.0...v2.0.0
v1.1.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
- Added
version-resolver
input name
can be omitted with an empty string
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Warning
This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.
Features
- Initial release
Full Changelog: ...v1.0.0