v0.18.0
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}
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
IProjectProvider
s instead ofPlatform
s 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 = { } )
- Its
- Integrity checking will now allow projects without hashes (GitHub) and will warn the user instead.