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:renpy_path
: Path to the Ren'Py installation used to build the distributions.registry
: Path to the registry directory containing the Ren'Py installation(s).
-
The
pre_build
andpost_build
methods of custom tasks must now accept an additional parameter:on_builds
: A dictionary mapping build names to the paths of the built distributions. The values of this dictionary will beNone
duringpre_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 |