Skip to content

Version 5.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 15 Dec 17:53

Release Notes

This release introduces several new features, some of which include breaking changes.

Introduction of .renpy-version

renutil launch now supports reading a .renpy-version file in the project directory to determine the Ren'Py version to use when launching a project in --direct mode. This file should contain a single line with the Ren'Py version to use (optionally containing trailing newline). If the file is not present, renutil will require the version to be specified as an argument.

This breaks the CLI API as renutil launch now doesn't require a version anymore. It can still be specified as an optional argument via the new -v <version> flag. If it is specified, the version given in the .renpy-version file will be ignored.

Auto-installation of Ren'Py when using renutil launch

If the Ren'Py version requested when invoking renutil launch is not installed, renutil will now automatically download and install it by default. This feature can be disabled either by supplying the --no-auto-install flag or setting the RENUTIL_AUTOINSTALL environment variable to false or 0. The --no-auto-install flag will override RENUTIL_AUTOINSTALL=true for that specific invocation.

renconstruct Task System Rework

The task system in renconstruct has been reworked to allow for more flexibility in defining tasks. While this is mostly backwards-compatible, there are some breaking changes:

  • Custom tasks must now accept two additional parameters in their __init__ method:

    1. renpy_path: Path to the Ren'Py installation used to build the distributions.
    2. registry: Path to the registry directory containing the Ren'Py installation(s).
  • The pre_build and post_build methods of custom tasks must now accept an additional parameter:

    1. on_builds: A dictionary mapping build names to the paths of the built distributions. The values of this dictionary will be None during pre_build because nothing has been built at that point. Example: { "mac": "output/mygame-1.0-mac.zip" }. Tasks can then opt to either do processing per build artifact or globally, allowing them to -for example- handle ZIP files differently than directory outputs.

Support for nested values in config files

This release adds support for nested dict-like values for custom tasks (see #24), allowing for properties like:

[tasks.example]
type = "custom"
enabled = true

[tasks.example.dict_config_val]
key = "value"

This will result in the following config structure:

{ "dict_config_val": { "key": "value" } }

Support for building custom distributions

Custom packages are now supported, which can now be built like any other package (provided they exist for the target game that is being built). They can be specified by name like any other package:

[builds]
pc = true
mac = true
custom = true

In addition, many of the dependencies that renkit relies on have been updated to their latest versions.

Install renkit 5.0.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/kobaltcore/renkit/releases/download/v5.0.0/renkit-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy ByPass -c "irm https://github.com/kobaltcore/renkit/releases/download/v5.0.0/renkit-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install kobaltcore/renkit/renkit

Download renkit 5.0.0

File Platform Checksum
renkit-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
renkit-x86_64-apple-darwin.tar.xz Intel macOS checksum
renkit-x86_64-pc-windows-msvc.zip x64 Windows checksum
renkit-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
renkit-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum