Path of Building Community follows Semantic Versioning.
Releases are done via GitHub actions in order to simplify release note generation.
Steps:
- First, update any GGPK files and tree files needed in the dev branch. This will minimize what you have to update later.
- Navigate to the "Release new version" action
- Click "Run workflow" on the right, and fill in the values
- Run the workflow from the 'dev' branch
- Fill in the most recent tag
- Choose a new version number (see above)
- This will run and create a new branch and PR so you can review the changes, making tweaks to any of the release notes that don't make sense
- If you changed any files after the PR was created, you'll have to update the manifest file
- Run
python3 update_manifest.py --in-place
from the root directory of PoB
- Run
- Create a tag for the new release either by creating a release on GitHub, or running (for example)
git tag v2.4.0; git push --tags
- Merge the PR into
master
. PoB will take a few minutes before it can find the update
Updating data from the GGPK uses the PoB exporter (see CONTRIBUTING.md#exporting-ggpk-data-from-path-of-exile), followed by some manual tweaks that haven't been fixed in a script, yet.
Steps:
- Run each script in the Exporter in order
- Revert the following changes similar to the linked examples:
Skill tree updates require JSON data, usually released by GGG a few days before a new
league starts, in forum posts like
this one.
The JSON data and required skill tree assets should come in a .zip
archive.
Steps:
- Download the
.zip
archive. - Create a new directory in
./src/TreeData
with the following schema:<major_league_version>_<minor_league_version>
. For 3.14, the correct directory name would be3_14
. - Copy the following file from the
.zip
archive root to the new directory:data.json
.
- Copy the following files from the
assets
subdirectory in the.zip
archive to the new directory:mastery-active-effect-3.png
mastery-active-selected-3.png
mastery-connected-3.png
mastery-disabled-3.png
skills-3.jpg
skills-disabled-3.jpg
.
- Run
./fix_ascendancy_positions.py
. - Open
./src/GameVersions.lua
and updatetreeVersionList
andtreeVersions
according to the file's format. This is important, otherwise the JSON data converter won't trigger. - Restart Path of Building Community. This should result in a new file
tree.lua
. - Remove
data.json
from the new directory. Do not commit this file.
Path of Building Community offers both installable and standalone releases. They're built with automation scripts found in the repository described below.
Prerequisites:
- Have Git 2.21.0+ installed and
git
in yourPATH
. Verify by runninggit --version
. - Have NSIS 3.07+ installed and
makensis
in yourPATH
. Verify by runningmakensis /version
. You may have to add this manually after installation. - Have Python 3.7+ installed and
python
in yourPATH
. Verify by runningpython --version
. - NB: You don't have to create a virtual environment, as you don't need to install any third-party libraries.
Installation:
-
Clone this repository to a directory of your choice:
git clone https://github.com/PathOfBuildingCommunity/PathOfBuildingInstaller.git
-
Please note that you might not have access to this repository if you're not a Path of Building Community maintainer.
Usage:
python make_release.py
-
To change the output folder or repository URL, simply edit the script file.
-
Created installers can be found in the
./Dist
directory. -
NB: Output like the following can be safely ignored. This is due to NSIS complaining about including an empty directory.
AppData\Local\Temp\tmp5fo1ha19\Update -> no files found. (NSIS/Setup.nsi:158)