Skip to content

Releases: Kir-Antipov/mc-publish

v3.3.0

30 May 12:47
Compare
Choose a tag to compare

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

21 Aug 12:27
Compare
Choose a tag to compare

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

05 Jul 18:24
Compare
Choose a tag to compare

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

07 Jun 19:42
Compare
Choose a tag to compare

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

12 Jan 16:11
Compare
Choose a tag to compare

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

11 Dec 13:40
Compare
Choose a tag to compare

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

01 Oct 13:41
Compare
Choose a tag to compare

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

26 Sep 19:32
Compare
Choose a tag to compare

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