Skip to content

Commit 3730e4f

Browse files
author
LocalIdentity
committed
Merge branch 'dev'
2 parents 7d19d63 + a0b4766 commit 3730e4f

File tree

109 files changed

+12272
-8441
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+12272
-8441
lines changed

.github/ISSUE_TEMPLATE/accuracy_bug_report.yaml

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
name: Accuracy bug report
2-
description: Create a bug report to help us fix incorrect wordings
2+
description: Create a bug report to help us fix incorrect wording in Path of Building for PoE2.
33
labels: ["bug:accuracy"]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for reporting an issue.
9-
Please try to fill in as much of the form below as you're able to. Some of the fields marked with an asterisk (*) are required.
8+
Thank you for reporting an issue with PoB-**PoE2**.
9+
[Issues with PoB-PoE1 go here.](https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues)
10+
Please try to fill in as much of the form below as you're able to. Fields marked with an asterisk (*) are required.
1011
- type: checkboxes
1112
id: version
1213
attributes:
@@ -56,9 +57,9 @@ body:
5657
- type: textarea
5758
id: build_code
5859
attributes:
59-
label: Character build code
60+
label: PoB for PoE2 build code
6061
description: Always provide a build code that exhibits the bug you want to report, even if it is not specific to a particular build. This helps us greatly to reproduce bugs faster.
61-
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a shared build.
62+
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a PoB build.
6263
render: shell
6364
validations:
6465
required: false

.github/ISSUE_TEMPLATE/application_bug_report.yaml

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
name: Application bug report
2-
description: Create a bug report to help us fix an issue in Path of Building
2+
description: Create a bug report to help us fix an issue in Path of Building for PoE2.
33
labels: [bug]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for reporting an issue.
9-
Please try to fill in as much of the form below as you're able to. Some of the fields marked with an asterisk (*) are required.
8+
Thank you for reporting an issue with PoB-**PoE2**.
9+
[Issues with PoB-PoE1 go here.](https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues).
10+
Please try to fill in as much of the form below as you're able to. Fields marked with an asterisk (*) are required.
1011
- type: checkboxes
1112
id: version
1213
attributes:
@@ -65,9 +66,9 @@ body:
6566
- type: textarea
6667
id: build_code
6768
attributes:
68-
label: Character build code
69+
label: PoB for PoE2 build code
6970
description: Always provide a build code that exhibits the bug you want to report, even if it is not specific to a particular build. This helps us greatly to reproduce bugs faster.
70-
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a shared build.
71+
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a PoB build.
7172
render: shell
7273
validations:
7374
required: false

.github/ISSUE_TEMPLATE/behaviour_bug_report.yaml

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
name: Behaviour bug report
2-
description: Create a bug report to help us fix incorrect behaviour or logic
2+
description: Create a bug report to help us fix incorrect behaviour or logic in Path of Building for PoE2.
33
labels: ["bug:behaviour"]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for reporting an issue.
9-
Please try to fill in as much of the form below as you're able to. Some of the fields marked with an asterisk (*) are required.
8+
Thank you for reporting an issue with PoB-**PoE2**.
9+
[Issues with PoB-PoE1 go here.](https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues).
10+
Please try to fill in as much of the form below as you're able to. Fields marked with an asterisk (*) are required.
1011
- type: checkboxes
1112
id: version
1213
attributes:
@@ -71,9 +72,9 @@ body:
7172
- type: textarea
7273
id: build_code
7374
attributes:
74-
label: Character build code
75+
label: PoB for PoE2 build code
7576
description: Always provide a build code that exhibits the bug you want to report, even if it is not specific to a particular build. This helps us greatly to reproduce bugs faster.
76-
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a shared build.
77+
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a PoB build.
7778
render: shell
7879
validations:
7980
required: true

.github/ISSUE_TEMPLATE/calculation_bug_report.yaml

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
name: Calculation bug report
2-
description: Create a bug report to help us fix incorrect calculations
2+
description: Create a bug report to help us fix incorrect calculations in Path of Building for PoE2.
33
labels: ["bug:calculation"]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for reporting an issue.
9-
Please try to fill in as much of the form below as you're able to. Some of the fields marked with an asterisk (*) are required.
8+
Thank you for reporting an issue with PoB-**PoE2**.
9+
[Issues with PoB-PoE1 go here.](https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues)
10+
Please try to fill in as much of the form below as you're able to. Fields marked with an asterisk (*) are required.
1011
- type: checkboxes
1112
id: version
1213
attributes:
@@ -71,9 +72,9 @@ body:
7172
- type: textarea
7273
id: build_code
7374
attributes:
74-
label: Character build code
75+
label: PoB for PoE2 build code
7576
description: Always provide a build code that exhibits the bug you want to report, even if it is not specific to a particular build. This helps us greatly to reproduce bugs faster.
76-
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a shared build.
77+
placeholder: This can be either a code copied from the "Import/Export Build" tab or a link to a PoB build.
7778
render: shell
7879
validations:
7980
required: true

.github/ISSUE_TEMPLATE/crash_report.yaml

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
name: Crash report
2-
description: Create a crash report to help us fix critical issues
2+
description: Create a crash report to help us fix critical issues in Path of Building for PoE2.
33
labels: [bug, crash]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for reporting a crash or severe graphical issue.
9-
Please try to fill in as much of the form below as you're able to. Some of the fields marked with an asterisk (*) are required.
8+
Thank you for reporting a crash or severe graphical issue in PoB-**PoE2**.
9+
[Issues with PoB-PoE1 go here.](https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues)
10+
Please try to fill in as much of the form below as you're able to. Fields marked with an asterisk (*) are required.
1011
- type: checkboxes
1112
id: version
1213
attributes:
@@ -70,10 +71,10 @@ body:
7071
- type: textarea
7172
id: build_code
7273
attributes:
73-
label: Character build code
74+
label: PoB for PoE2 build code
7475
description: Provide a build code if the crash/graphical issue is caused by a certain build.
7576
placeholder: |
76-
This can be either a code copied from the "Import/Export Build" tab or a link to a shared build.
77+
This can be either a code copied from the "Import/Export Build" tab or a link to a PoB build.
7778
In the case where Path of Building crashes/doesn't work on startup or when you open a build.
7879
Go to your builds folder (default %userprofile%/Documents/Path of Building/Builds) and copy the problematic build's .xml contents into a pastebin and supply the link.
7980
render: shell

.github/ISSUE_TEMPLATE/feature_request.yaml

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
name: Feature request
2-
description: Suggest an idea for this project
2+
description: Suggest an idea for Path of Building for PoE2.
33
labels: [enhancement]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for suggesting a feature.
9-
Please try to fill in as much of the form below as you're able to. Some of the fields marked with an asterisk (*) are required.
8+
Thank you for suggesting a feature for PoB-**PoE2**.
9+
[Feature requests for PoB-PoE1 go here.](https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues).
10+
Please try to fill in as much of the form below as you're able to. Fields marked with an asterisk (*) are required.
1011
- type: checkboxes
1112
id: duplicates
1213
attributes:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Update SimpleGraphic DLLs
2+
on:
3+
repository_dispatch:
4+
types: [update-simple-graphic]
5+
jobs:
6+
update:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout
10+
uses: actions/checkout@v3
11+
with:
12+
ref: 'dev'
13+
- name: Download DLLs
14+
uses: robinraju/release-downloader@v1
15+
with:
16+
repository: ${{ github.repository_owner }}/PathOfBuilding-SimpleGraphic
17+
tag: ${{ github.event.client_payload.tag }}
18+
fileName: SimpleGraphicDLLs-x64-windows.tar
19+
extract: true
20+
out-file-path: runtime
21+
- name: Create Pull Request
22+
uses: peter-evans/create-pull-request@v5
23+
with:
24+
title: Update to SimpleGraphic ${{ github.event.client_payload.tag }}
25+
branch: simple-graphic-${{ github.event.client_payload.tag }}
26+
body: |
27+
Update DLLs to SimpleGraphic-${{ github.event.client_payload.tag }} from ${{ github.event.client_payload.release_link }}
28+
commit-message: Update DLLs to SimpleGraphic-${{ github.event.client_payload.tag }}
29+

CHANGELOG.md

+1-1
Large diffs are not rendered by default.

CONTRIBUTING.md

+47-29
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* Please provide detailed instructions on how to reproduce the bug, if possible.
2424
* Provide a build share code for a build that is affected by the bug, if possible.
2525
In the "Import/Export Build" tab, click "Generate", then "Share" and add the link to your post.
26-
26+
2727
Build share codes allow us to reproduce bugs much more quickly.
2828

2929
## Requesting features
@@ -48,7 +48,7 @@ Feature requests are always welcome. Note that not all requests will receive an
4848
### When submitting a pull request:
4949
* **Pull requests must be created against the `dev` branch**, as all changes to the code are staged there before merging to `master`.
5050
* Make sure that the changes have been thoroughly tested!
51-
* If you're updating mod parsing logic, make sure to reload PoB with `Ctrl` + `F5` to regenerate `./src/Data/ModCache.lua`. This is a very large, automatically generated file that can be used to verify your changes didn't affect any other mods inadvertently.
51+
* If you're updating mod parsing logic, make sure to reload PoB with `Ctrl` + `F5` to regenerate `./src/Data/ModCache.lua`. This is a very large, automatically generated file that can be used to verify your changes didn't affect any other mods inadvertently. Make sure to commit `./src/Data/ModCache.lua` if your changes cause it to differ.
5252
* There are many more files in the `./src/Data` directory that are automatically generated. This is indicated by the header
5353
`-- This file is automatically generated, do not edit!`. To change these, instead change the scripts in the `./src/Export` directory and rerun the exporter.
5454
For your PR, please include all relevant changes to both the scripts and data files.
@@ -66,7 +66,7 @@ The easiest way to make and test changes is by setting up a development installa
6666

6767
cd PathOfBuilding-PoE2
6868

69-
3. Start Path of Building from the repository by running `./runtime/Path{space}of{space}Building.exe`.
69+
3. Start Path of Building from the repository by running `./runtime/Path{space}of{space}Building-PoE2.exe`.
7070

7171
You can now use the shortcut to run the program from the repository. Running the program in this manner automatically enables "Dev Mode", which has some handy debugging feature:
7272
* `F5` restarts the program in-place (this is what usually happens when an update is applied).
@@ -158,7 +158,7 @@ To do this in VSCode find the Java installation folder on your computer as displ
158158
-- This is the path to emmy_core.dll. The ?.dll at the end is intentional.
159159
package.cpath = package.cpath .. ";C:/Users/someuser/.vscode/extensions/tangzx.emmylua-0.5.19/debugger/emmy/windows/x64/?.dll"
160160
local dbg = require("emmy_core")
161-
-- This port must match the Visual Studio Code configuration. Default is 9966.
161+
-- This port must match the IDE configuration. Default is 9966.
162162
dbg.tcpListen("localhost", 9966)
163163
-- Uncomment the next line if you want Path of Building to block until the debugger is attached
164164
--dbg.waitIDE()
@@ -196,38 +196,39 @@ Files in /Data /Export and /TreeData can be massive and cause the emmyLua langua
196196
6. Attach the debugger
197197

198198
#### Miscellaneous tips
199+
199200
If you're on windows, consider downloading [git for windows](https://git-scm.com/downloads) and installing git bash. Git bash comes with a variety of typical linux tools such as grep that can make navigating the code base much easier.
200201

201202
If you're using linux you can run the ./runtime/Path{space}of{space}Building.exe executable with wine. You will need to provide a valid wine path to the emmy lua debugger directory.
202203

204+
```bash
205+
# winepath -w ~/.vscode/extensions/tangzx.emmylua-0.8.20-linux-x64/debugger/emmy/windows/x64/
206+
Z:\home\dev\.vscode\extensions\tangzx.emmylua-0.8.20-linux-x64\debugger\emmy\windows\x64\
207+
```
203208

204209
## Testing
205210

206-
PoB uses the [Busted](https://olivinelabs.com/busted/) framework to run its tests. Tests are stored under `spec/System` and run automatically when a PR is modified.
211+
PoB uses the [Busted](https://olivinelabs.com/busted/) framework to run its tests. Tests are stored under `spec/System` and run automatically when a PR is modified.
207212
More tests can be added to this folder to test specific functionality, or new test builds can be added to ensure nothing changed that wasn't intended.
208213

209214
### Running tests
210-
1. Install [LuaRocks](https://luarocks.org/)
211-
2. Run `luarocks install busted`
212-
3. Run `busted --lua=luajit` from the command line. You may need to add `luajit` to your PATH
213-
214-
Docker alternative:
215215

216216
1. Install [Docker](https://www.docker.com/get-started)
217-
2. Run `docker-compose up -d` from the command line
218-
3. View last results in `spec/test_results.log`
217+
2. Run `docker-compose up` from the command line
218+
3. Review the results in the terminal
219219

220-
### Creating new test builds or fixing an existing build
220+
Please try to include tests for your new features in your pull request. Additionally, if your pr breaks a test that should be passing please update it accordingly.
221221

222-
Sometimes a change will be made that intends to change the stats garnered by PoB, which will break our tests.
223-
1. Add the new build XML (if applicable) to the `TestBuilds` folder
224-
2. Run `busted --lua=luajit -r generate` to generate a LUA file that contains the current stats of that build
225-
3. Run `busted --lua=luajit` and the tests should pass
226-
227-
Docker alternative:
228-
229-
1. Add the new build XML (if applicable) to the `TestBuilds` folder
230-
2. Run `docker-compose up -d` to generate a LUA file that contains the current stats of that build and run the tests
222+
### Debugging tests
223+
When running tests with a docker container it is possible to use emmylua for debugging. Paste in the following right under `function launch:OnInit()` in `./src/Launch.lua`:
224+
```lua
225+
package.cpath = package.cpath .. ";/usr/local/bin/?.so"
226+
local dbg = require("emmy_core")
227+
-- This port must match the IDE Code configuration. Default is 9966.
228+
dbg.tcpListen("localhost", 9966)
229+
dbg.waitIDE()
230+
```
231+
After running `docker-compose up` the code will wait at the `dbg.waitIDE()` line until a debugger is attached. This will allow stepping through any code that is internal to POB but will not work for busted related code. Note that this only works for unit tests described above.
231232

232233
## Path of Building development tutorials
233234

@@ -236,6 +237,8 @@ Docker alternative:
236237
* [How skills work in Path of Building](docs/addingSkills.md)
237238

238239
## Exporting GGPK data from Path of Exile
240+
> [!WARNING]
241+
> This will not work on files from the torrent that is released before league launches, as it contains no `Data` section.
239242
240243
Note: This tutorial assumes that you are already familiar with the GGPK and its structure. [poe-tool-dev/ggpk.discussion](https://github.com/poe-tool-dev/ggpk.discussion/wiki)
241244
is a good starting point.
@@ -244,6 +247,9 @@ The `./src/Data` folder contains generated files which are created using the scr
244247
If you change any logic/configuration in `./src/Export`, you will need to regenerate the appropriate `./src/Data` files. You can do so by running the `./src/Export` scripts using the `.dat` viewer at `./src/Export/Launch.lua`:
245248

246249
### Obtain an Oodle extractor
250+
> [!TIP]
251+
> Binaries are usually available at https://github.com/zao/ooz/releases.
252+
247253
Note: For this tutorial, you will need a working installation of [Visual Studio Community](https://visualstudio.microsoft.com/vs/community/)
248254
as well as some familiarity with build tools such as [CMake](https://cmake.org).
249255
1. In Visual Studio, clone the following repository using this command:
@@ -252,13 +258,25 @@ as well as some familiarity with build tools such as [CMake](https://cmake.org).
252258
2. Configure CMake.
253259
3. Build `bun_extract_file.exe`, `libbun.dll` and `libooz.dll`.
254260

255-
### Set up the exporter
256-
1. Copy `bun_extract_file.exe`, `libbun.dll` and `libooz.dll` to `./src/Export/ggpk/`.
257-
2. Create a shortcut to `./runtime/Path{space}of{space}Building.exe` with the path to `./src/Export/Launch.lua` as first argument. You should end up with something like: `"<path to repo>\runtime\Path{space}of{space}Building.exe" "<path to repo>\src\Export\Launch.lua"`.
258-
3. Run the shortcut, and the GGPK data viewer UI will appear. If you get an error, be sure you're using the latest release of Path of Building Community.
259-
4. Paste the path to `Content.ggpk` (or, for Steam users, `C:\Program Files (x86)\Steam\steamapps\common\Path of Exile`) into the text box in the top left, and hit `Enter` to read the GGPK. If successful, you will see a list of the data tables in the GGPK file. Note: This will not work on the GGPK from the torrent file released before league launches, as it contains no `Data` section.
260-
5. Click `Scripts >>` to show the list of available export scripts. Double-clicking a script will run it, and the box to the right will show any output from the script.
261-
6. If you run into any errors, update the code in `./src/Export` as necessary and try again.
261+
### Set up the exporter
262+
1. Copy `bun_extract_file.exe`, `libbun.dll` and `libooz.dll` to `.\src\Export\ggpk\`.
263+
2. Create a shortcut to `.\runtime\Path{space}of{space}Building.exe` with the path to `.\src\Export\Launch.lua` as the first argument. You should end up with something like:
264+
265+
"<path to repo>\runtime\Path{space}of{space}Building.exe" "<path to repo>\src\Export\Launch.lua"
266+
3. Run the shortcut. "Dat View", the GGPK data viewer UI, should appear. If you get an error, be sure you're using the latest release of Path of Building Community.
267+
4. Click `Edit Sources...` to display the "New DAT Source" popup. Click `New` and enter a name.
268+
5. Paste the full path to `Content.ggpk` into the "Source from GGPK/Steam PoE path" box and hit `Enter`. For the stand-alone client, the path must include the file-name. (Do not put anything in the "Source from DAT files" box unless you have already manually unpacked the relevant files.)
269+
270+
Example input for the stand-alone client:
271+
272+
C:\Path of Exile 2\Content.ggpk
273+
Example input for Steam:
274+
275+
C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2
276+
277+
If successful, you should see some cmd windows pop up as the files are unpacked, and then a list of the data tables in the GGPK file should appear.
278+
6. Click `Scripts >>` to show the list of available export scripts. Double-clicking a script will run it, and the box to the right will show any output from the script.
279+
7. If you run into any errors, update the code in `./src/Export` as necessary and try again.
262280

263281
## Using the inbuilt profiler
264282
The profiler is found at https://github.com/charlesmallah/lua-profiler and is written entirely in lua under a MIT license.

0 commit comments

Comments
 (0)