* Add 3_26 standard and ruthless trees as per release.md guide * Add alternate version for 3_26 trees, reorder trees to ensure base tree is default * Update docs with suggestion for naming of alternate/ruthless trees and data json rename * Fix a contentious word flagged by the spellcheck action * Switch tree version from poeplanner --------- Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
6.3 KiB
How to release Path of Building Community
Prerequisites
Choosing a new version number
Path of Building Community follows Semantic Versioning.
General Application updates
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-placefrom 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
GGPK Data updates
Updating data from the GGPK uses the PoB exporter (see CONTRIBUTING.md#exporting-ggpk-data-from-path-of-exile). Run each script in order, then check the differences in data to make sure nothing is missing that is expected.
Skill tree updates
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
.ziparchive. - Create a new directory in
./src/TreeDatawith the following schema:<major_league_version>_<minor_league_version>. For alternate or ruthless trees, add the suffixing as appropriate. For 3.14, the correct directory name would be3_14. For 3.25 Ruthless 'alternate' tree, the correct directory name would be3_25_ruthless_alternate. - Copy the following file from the
.ziparchive root to the new directory:data.json. Note for Ruthless for example, the exported data from GGG will beruthless.json, and this file should be copied into the new directory and renamed todata.jsonfor the following steps to pick it up.
- Copy the following files from the
assetssubdirectory in the.ziparchive to the new directory:mastery-active-effect-3.pngmastery-active-selected-3.pngmastery-connected-3.pngmastery-disabled-3.pngskills-3.jpgskills-disabled-3.jpg.
- Run
./fix_ascendancy_positions.py. - Open
./src/GameVersions.luaand updatetreeVersionList,treeVersions, andpoePlannerVersions. The latter can be found via https://cdn.poeplanner.com/json/versions.json 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.jsonandsprites.jsonfrom the new directories. Do not commit these files.
Timeless Jewel updates
The Timeless jewels determine what effect they have on a node based on the "Look up Tables" in \src\Data\TimelessJewelData The LuTs for the Timeless jewels come from https://github.com/Regisle/TimelessJewelData More information can be found there.
The LuTs PoB uses are slightly different due to historical reasons, and so they can be generated using the generator from there.
Steps to Generate Timeless Jewel LuTs for PoB:
- Clone repo from https://github.com/Regisle/TimelessJewelData/tree/Generator
- Open DatafileGenerator.sln in Visual Studio
- Grab new data.json tree file
- Grab new AlternatePassiveAdditions.json and AlternatePassiveSkills.json from https://snosme.github.io/poe-dat-viewer/ and clicking on 'Export data' in the top right
- Run following commands in the Visual Studio command prompt order, adjusting for file location dotnet run --project DataFileGenerator E:\PoB Dev Work\TimelessJewelData\AlternatePassiveAdditions.json E:\PoB Dev Work\TimelessJewelData\AlternatePassiveSkills.json E:\PoB Dev Work\GGG Skill Tree\data.json E:\PoB Dev Work\PathOfBuildingCommunity\src\Data\TimelessJewelData
- Choose Compressed
- Replace updated Files in \src\Data\TimelessJewelData
Alt tab out and back in to make right click paste work
If updated this way making a PR to https://github.com/Regisle/TimelessJewelData with the files in the format it uses is appreciated. To do this follow steps 1-5 the same and choose the other option for step 6.
Installer creation
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
gitin yourPATH. Verify by runninggit --version. - Have NSIS 3.07+ installed and
makensisin yourPATH. Verify by runningmakensis /version. You may have to add this manually after installation. - Have Python 3.7+ installed and
pythonin 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
./Distdirectory. -
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)