Skip to content

Releases: juraj-hrivnak/Pakku

v0.24.1

22 Dec 22:02
Compare
Choose a tag to compare
  • Refactored sync command's subpath search algorithm to async.
  • Fixed export profiles' orElse function not working as intended. (Optional integration with FileDirector did not work.)

v0.24.0

22 Dec 19:59
Compare
Choose a tag to compare

Highlights

  • Fixed a major bug where projects were not being exported to modpack manifests.
  • Implemented the sync command.
    • This command can be used to sync your modpack with local project files.
  • Limited max number of retries for fetch command to 3 instead of 10.

Other

  • Made most of the commands print help on empty args and added a spinner progress bar to some of them.
  • Projects will now be compared with lowercase and white space filtered project names and their project file hashes.
  • Trailing commas are now allowed in the config file and lock file.
  • Added a better error message to ProjNotFound errors.
  • .jar.meta is now allowed extension when removing old files on fetch.
  • Created tests for CurseForge and Modrinth modpack models.

v0.23.0

20 Dec 10:32
Compare
Choose a tag to compare
  • Fixed that updating GitHub projects was not working properly.

Technical Notes

  • Implemented DSL builder for export profiles.
  • Implemented error severity and made the AlreadyAdded error only a notice.

v0.22.0

16 Dec 22:29
Compare
Choose a tag to compare

Highlights

  • When removing a project, Pakku will always ask whether you want to remove each of its dependencies.
  • Added glob pattern support for specifying overrides, server_overrides and client_overrides, in #70.
    • This new implementation is optimized to work with large modpacks.
    • For more info see v0.20.0.

Fixes

  • Removed hyperlink from exported modpack file path messages. They didn't work properly on all platforms.

API

  • Breaking change: Refactored action errors to separate data classes.
  • Created a mini framework for simplifying tests.

v0.21.0

02 Nov 18:28
Compare
Choose a tag to compare
  • Improved projects updating, by @SettingDust in #49.
    • Projects now prefer their current loaders of project files when updating.
  • Added option the specify the project type when adding projects, by @SettingDust in #54.
    • Fixed duplicated project files when updating.
  • Updated Exporting a Modpack docs page and improved the Managing Projects docs page.

v0.20.2

14 Oct 18:24
Compare
Choose a tag to compare
  • Fixed an issue that caused project files from CurseForge to be outdated due to incorrect release date parsing.

v0.20.1

13 Oct 00:07
Compare
Choose a tag to compare
  • Reverted glob pattern matching support for overrides, due to performance limitations with large modpacks.
    • It will be reintroduced in the next releases.

v0.20.0

12 Oct 16:48
Compare
Choose a tag to compare

What's new?

  • Implemented glob pattern support for specifying overrides. by @SettingDust in #43, and @juraj-hrivnak.
    • An asterisk "*" matches anything except a slash. The character "?" matches any one character except "/". The range notation, e.g. [a-zA-Z], can be used to match one of the characters in a range.
    • Two consecutive asterisks ("**") means match in all directories; <directory>/** means match everything inside the directory.
    • An optional prefix "!" negates the pattern; any matching file included by a previous pattern will become excluded again.
  • Implemented retry logic for the fetch command.
    • Use pakku fetch --retry to retry downloading when it fails, with an optional number of times to retry. (Defaults to 2.)
  • Added support for specifying a different version of an already added project using the add command.
  • Added simple colored diff for showing changes to file names when using the status command.
  • The newest file from all providers is now preferred when downloading, by @SettingDust in #41.

v0.19.0

08 Oct 21:27
Compare
Choose a tag to compare

Highlights

  • Added the cfg command for configuring properties of the config file, by @SettingDust in #29.
    • This change deprecated the pakku set [<projects>] argument. Use the config file (pakku.json) or the cfg prj subcommand instead.
  • Implemented configurable subpaths for projects and configurable paths for project types.
  • Implemented configurable project aliases, by @SettingDust in #34.
  • Added support for data packs.
  • Added better support for multi-loader modpacks, by @SettingDust in #36 and #37. (Sinytra Connector support.)
    • Project files are now also sorted in order of loaders in the lock file.
  • Rewritten fetch command's deleting algorithm to account for subpaths.
    • Saves & screenshots are always excluded.
  • Improved the UI of the status command.
    • Now it's much nicer and shows you changes to project files.

Fixes

  • Fixed ConcurrentModificationException on running fetch command in some cases.
  • Fixed setting loaders using the set command when projects have unusual loaders.

Configurable Subpaths

There is now a new subpath property for projects that you configure in the config file or using the cfg prj subcommand.

Config file - syntax:

{
  "projects": {
    "<project>": {
      "subpath": "<path>"
    }
  }
}

Config file - example usage:

{
  "projects": {
    "sodium-extras": {
      "subpath": "optimize.client"
    },
    "iris": {
      "subpath": "decoration.client"
    }
  }
}

Configurable Paths for Project Types

There is now a variable for each project type that you configure in the config file or using the cfg command.

Config file - syntax:

{
  "paths": {
    "mods": "<path>",
    "resource_packs": "<path>",
    "data_packs": "<path>",
    "worlds": "<path>",
    "shaders": "<path>"
  }
}

Project Aliases

There is now a new aliases property of type array for projects that you configure in the config file or using the cfg prj subcommand.

Config file - syntax:

{
  "projects": {
    "<project>": {
      "aliases": ["<alias>"]
    }
  }
}

Config file - example usage:

{
  "projects": {
    "forgified-fabric-api": {
      "aliases": ["fabric-api"]
    }
  }
}

API

  • Updated Clikt to 5.0.0 & Mordant to 3.0.0.
  • Improved docs generation with better subcommand support.

v0.18.2

25 Sep 10:42
Compare
Choose a tag to compare
  • Fixed error when GitHub license URL is null.