* CI: make the comment in 'Build' more verbose * Doc: add Linux running from source and build instructions * Doc: fix name in running from source on Linux * Update docs/running from source.md Co-authored-by: qwint <qwint.42@gmail.com> --------- Co-authored-by: qwint <qwint.42@gmail.com>
6.3 KiB
Running From Source
If you just want to play and there is a compiled version available on the Archipelago releases page, use that version. These steps are for developers or platforms without compiled releases available.
General
What you'll need:
- Python 3.11.9 or newer but less than 3.14, not the Windows Store version
- On Windows, please consider only using the latest supported version in production environments since security updates for older versions are not easily available.
- pip: included in downloads from python.org, separate in many Linux distributions
- Matching C compiler
- possibly optional, read operating system specific sections
Then run any of the starting point scripts, like Generate.py, and the included ModuleUpdater should prompt to install or update the required modules and after pressing enter proceed to install everything automatically. After this, you should be able to run the programs.
Launcher.pygives access to many components, including clients registered inworlds/LauncherComponents.py.- The Launcher button "Generate Template Options" will generate default yamls for all worlds.
- With yaml(s) in the
Playersfolder,Generate.pywill generate the multiworld archive. MultiServer.py, with the filename of the generated archive as a command line parameter, will host the multiworld locally.--log_networkis a command line parameter useful for debugging.
WebHost.pywill host the website on your computer.- You can copy
docs/webhost configuration sample.yamltoconfig.yamlto change WebHost options (like the web hosting port number).
- You can copy
Windows
Recommended steps
-
Download and install a "Windows installer (64-bit)" from the Python download page
- read above which versions are supported
-
Optional: Download and install Visual Studio Build Tools from Visual Studio Build Tools.
- Refer to Windows Compilers on the python wiki for details. Generally, selecting the box for "Desktop Development with C++" will provide what you need.
- Build tools are not required if all modules are installed pre-compiled. Pre-compiled modules are pinned on Discord in #ap-core-dev
-
It is recommended to use PyCharm IDE
-
Run ModuleUpdate.py which will prompt installation of missing modules, press enter to confirm
- In PyCharm: right-click ModuleUpdate.py and select
Run 'ModuleUpdate' - Without PyCharm: open a command prompt in the source folder and type
py ModuleUpdate.py
- In PyCharm: right-click ModuleUpdate.py and select
macOS
Refer to Guide to Run Archipelago from Source Code on macOS.
Linux
If your Linux distribution ships a compatible Python version (see General) and pip, you can use that, otherwise you may need to install Python from a 3rd party. Refer to documentation of your Linux distribution.
Installing a C compiler is usually optional. The package is typically named gcc, sometimes another package with the
base build tools may be required, i.e. build-essential (Debian/Ubuntu) or base-devel (Arch).
After getting the source code, it is strongly recommended to create a venv (Virtual Environment) by hand or using an IDE, such as PyCharm, because Archipelago requires specific versions of Python packages.
Run python ModuleUpdate.py in the project root to install packages, run python Launcher.py to run the Launcher.
Building
Builds contain (almost) all dependencies to run Archipelago on any Linux distribution that is as new or newer than the
one it was built on. Beware that currently only the oldest Ubuntu LTS available in GitHub actions is supported for that.
This means the easiest way to generate a build is by running the Build action from GitHub actions instead of building
locally. If you still want to, e.g. for local testing, you can by running
python setup.py build_exe to generate a binary distribution of Archipelago in build/. Or to generate an AppImage
first generate the binary distribution and then run python setup.py bdist_appimage to populate dist/. You need to
put an appimagetool into the directory you run the command from, rename it to appimagetool and make it executable.
Optional: A Link to the Past Enemizer
Only required to generate seeds that include A Link to the Past with certain options enabled. You will receive an error if it is required.
You can get the latest Enemizer release at Enemizer Github releases. It should be dropped as "EnemizerCLI" into the root folder of the project. Alternatively, you can point the Enemizer setting in host.yaml at your Enemizer executable.
Optional: SNI
SNI is required to use SNIClient. If not integrated into the project, it has to be started manually.
You can get the latest SNI release at SNI Github releases. It should be dropped as "SNI" into the root folder of the project. Alternatively, you can point the sni setting in host.yaml at your SNI folder.
Optional: Git
Git is required to install some of the packages that Archipelago depends on. It may be possible to run Archipelago from source without it, at your own risk.
It is also generally recommended to have Git installed and understand how to use it, especially if you're thinking about contributing.
You can download the latest release of Git at The downloads page on the Git website.
Beyond that, there are also graphical interfaces for Git that make it more accessible. For repositories on Github (such as this one), Github Desktop is one such option. PyCharm has a built-in version control integration that supports Git.
Running tests
Information about running tests can be found in tests.md