Dependency manager for WanadevStudio
Project description
Gonto is a tool we developed to handle our multiple Unreal Engine versions on our CI and our developers’ PCs. It can automatically download our UE versions (and some other dependencies like Android SDK with its associated JDK) from our centralised repository, prepare the environment and run our build scripts.
Gonto handles dependencies as disk images, mounts them on Windows drive letters (for example U:) and adapts the environment and registry to point to the right places. Using disk images allows us to directly use the dependencies without having to extract them.
When you have a Zip, you need twice the disk space (for the Zip itself and the extracted files), and it can take hours to extract (a complete Unreal Engine build contains more than 200 000 files and requires more than 140 GiB of disk space).
Features:
Dependency management (download and cache on disk).
Centralised repository (any HTTP server with a specific file organization).
Targets, like a Makefile (e.g. "build-windows", "build-android", "build-meta", "build-playstation",…).
Complete pipeline execution with the "gonto run <TARGET>" command (download images missing from the cache, mount all dependencies and update environment, run build script, cleanup).
A way to permanently mount the dependencies of a specific target without running the scripts (for developers’ PCs): "gonto mount <TARGET>".
A command to create a disk image from a source folder: "gonto create <SOURCE_FOLDER> <DEST_IMAGE>.vhd".
Requirements
Windows 10 or Windows 11
Python >= 3.11 (for the source code version, standalone builds do not require any Python installation)
Usage
Example Gonto config:
gonto:
cache_dir: "W:\\gonto-cache\\"
repository: "https://example.org/gonto-repo/"
targets:
build-windows:
requires:
- name: "unreal"
version: "5.4.0"
env:
UNREAL_PATH: "{{mount_point}}"
reg:
- root: "HKEY_CURRENT_USER"
path: "Software\\Epic Games\\Unreal Engine\\Builds"
name: "5.4"
data: "{{mount_point}}"
script: |
.\build.bat --target=windows
build-android:
requires:
- name: "unreal"
version: "5.4.0"
env:
UNREAL_PATH: "{{mount_point}}"
- name: "android"
version: "36"
env:
ANDROID_HOME: "{{mount_point}}android\\"
JAVA_HOME: "{{mount_point}}java\\JDK25\\"
script: |
.\build.bat --target=android
List available targets:
gonto.exe list
Run a target:
gonto.exe run build-windows
Download and mount dependencies from a target:
gonto.exe mount build-android
Create a new disk image from a folder:
gonto.exe create --label "UE 5.5 Custom" .\build_output unreal_v5.5-custom1_win64.vhd
Documentation
Contributing
Lint and test the code
You must install Nox first:
pip3 install nox
Then you can check for lint errors:
nox -s lint
Run the tests:
nox -s test
And you can fix coding style errors automatically with:
nox -s black_fix
Build the documentation
You must install Nox first:
pip3 install nox
Then you can build the documentation with the following command:
nox -s gendoc
The result goes to build/html/.
Changelog
[NEXT] (changes on master, but not released yet):
Nothing yet ;)
v0.3.0:
feat: Added “create” command to create VHDs from a folder
feat: Improved error/success reporting
feat: Improved titles drawing
fix(main): Do not read config for “create” command
fix(mount): Try to detach all disk images if mount fails
v0.2.0:
feat: Added “mount” command to download and permanently mount target images
feat: Added “reg” option to requirements allowing to set registry key after mounting disk images
v0.1.1:
fix(download): Do not continue running target on incomplete download
misc(winbuild): Build with unbuffered output option
v0.1.0 (initial release):
feat: Multiple config files with overrides (gonto.yaml)
feat: List targets (gonto list)
feat: Run target (gonto run <TARGET>):
Download missing VHDs from a repository
VHD cache
Mount/Unmount VHDs
before_script/script/after_script
Handle environment variable with dynamic replacement of the mount point
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gonto-0.3.0.tar.gz.
File metadata
- Download URL: gonto-0.3.0.tar.gz
- Upload date:
- Size: 42.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28257fe266547616ad3821b2d081816dc77287aa480d761dd9e335aea5820345
|
|
| MD5 |
abde63aa7c03acb539fd56ad19fcae3a
|
|
| BLAKE2b-256 |
073f07a2d12e35338f21c41ea862c03ec82f23ee4ffe81440855c3761abfb9cc
|
File details
Details for the file gonto-0.3.0-py3-none-any.whl.
File metadata
- Download URL: gonto-0.3.0-py3-none-any.whl
- Upload date:
- Size: 47.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1057a2ff9d0b134e659b56b137443c18e5775c24ab401064e5c49830645b09df
|
|
| MD5 |
67da2ecec2c10f60a2a3483eafb9c441
|
|
| BLAKE2b-256 |
ae9a413328effb8273d831b2aa7701135db31f5f16e45faa40100d8f4307a5bb
|