Skip to content

v0.18.0

Compare
Choose a tag to compare
@juraj-hrivnak juraj-hrivnak released this 24 Sep 17:17
· 127 commits to main since this release

Highlights

Pakku now fully supports GitHub.

Adding GitHub projects

GitHub repositories with releases can be added as projects.
To add a GitHub project, run pakku add {owner}/{repo} or pakku add https://github.com/{owner}/{repo}.

You can also use the prj subcommand: pakku add prj --gh {owner}/{repo} or pakku add prj --gh https://github.com/{owner}/{repo}

Combining projects is also possible: pakku add prj --mr greenery --gh juraj-hrivnak/Greenery

To add a specific version (tag) of a GitHub project, run pakku add {owner}/{repo}@{tag}, pakku add https://github.com/{owner}/{repo}/releases/tag/{tag} or pakku add https://github.com/{owner}/{repo}/tree/{tag}.

Updating

GitHub projects can be updated using the pakku update command.
They are also recognized in other commands as expected.

Exporting

For CurseForge, GitHub projects are added to the overrides.
For Modrinth, GitHub projects are added to the modrinth.index.json also with generated sha512 and sha1 hashes.

The project side of GitHub projects defaults to BOTH. If you need to change this, do so in pakku.json.
Pakku determines whether the GitHub project is redistributable based on its licence's spdx code. No licence means ARR.

UI

GitHub projects are displayed in the format: gh={owner}/{repo}

gh_support

Other Changes

  • Project types can now be overridden in the config file (pakku.json).
  • Deprecated set command's -s, --side and -r, --redistributable options. Use the config file (pakku.json) instead.

Technical Notes

  • Many functions now support IProjectProviders instead of Platforms only.
  • The lock file is now sorted by project names instead of slugs.
  • Implemented the ProjectArg monad to better handle project additions.
    • Its fold() function can be used to map the possible arg types:
      arg.fold(
          commonArg = { },
          gitHubArg = { }
      )
  • Integrity checking will now allow projects without hashes (GitHub) and will warn the user instead.