Skip to content

Releases

v3.3.2

Choose a tag to compare

@Kira-NT Kira-NT released this 22 Oct 15:58

Fixes

  • Fixed an issue where the version inferred from the release tag would be preferred over the actual mod version specified in its metadata file

Full Changelog: v3.3.1...v3.3.2

v3.3.1

Choose a tag to compare

@Kira-NT Kira-NT released this 14 Jul 20:59

Features

Fixes

  • Links to files uploaded to Modrinth are now reported using version IDs instead of version numbers in order to avoid ambiguity (#104)
  • Tokens can once again be omitted by setting them to an empty string (#106, #137)
  • (Neo)Forge mods can now be automatically recognized without an explicit dependency on their respective mod loader in the metadata file (#130, #139)
  • If the Piston server is temporarily inaccessible due to being hosted on perfectly stable and very robust Microsoft infrastructure, mc-publish will now retry querying it a few times instead of immediately giving up (#131)
  • Uploads should no longer be accidentally marked as pre-releases on some very rare occasions (#148)
  • Latest April Fools snapshots are now recognized as valid game versions (#168)
  • Projects targeting old Minecraft betas can now be successfully uploaded to CurseForge (#156)
  • The modloader loader value is now recognized as Risugami's ModLoader when uploading to CurseForge, the same way it has always been for Modrinth

Full Changelog: v3.3.0...v3.3.1

v3.3.0

Choose a tag to compare

@Kira-NT Kira-NT released this 30 May 12:47

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
  • 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, and version-type-any. These have been automatically integrated into the existing subset, intersection, and any presets, respectively
  • 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

Full Changelog: v3.2.0...v3.3.0

v3.2.0

Choose a tag to compare

@Kira-NT Kira-NT released this 21 Aug 12:27

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

Choose a tag to compare

@Kira-NT Kira-NT released this 05 Jul 18:24

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

Choose a tag to compare

@Kira-NT Kira-NT released this 07 Jun 19:42

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
  • github-tag can be inferred from the GITHUB_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

Choose a tag to compare

@Kira-NT Kira-NT released this 12 Jan 16:11

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 and retry-delay options

Fixes

  • Sometimes a primary file on Modrinth was not set correctly

Full Changelog: v2.0.0...v2.1.0

v2.0.0

Choose a tag to compare

@Kira-NT Kira-NT released this 11 Dec 13:40

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 and curseforge-id can be retrieved from the config file of your mod
  • game-versions can be retrieved from the config file of your mod
  • Default value of the loaders property is now fabric for Fabric mods and forge 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

Choose a tag to compare

@Kira-NT Kira-NT released this 01 Oct 13:41

Warning

This version is deprecated, as GitHub no longer supports actions based on Node.js 12.
Please update to a newer version.

Features

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@Kira-NT Kira-NT released this 26 Sep 19:32

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