Skip to content

Commit

Permalink
Update readme.md, contributing.md (#622)
Browse files Browse the repository at this point in the history
* docs: update readme.md, contributing.md

* Change position

---------

Co-authored-by: LocalIdentity <[email protected]>
  • Loading branch information
Paliak and LocalIdentity authored Jan 27, 2025
1 parent 3ba2d18 commit 2201aac
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 65 deletions.
44 changes: 23 additions & 21 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Feature requests are always welcome. Note that not all requests will receive an
### When submitting a pull request:
* **Pull requests must be created against the `dev` branch**, as all changes to the code are staged there before merging to `master`.
* Make sure that the changes have been thoroughly tested!
* 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.
* 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.
* There are many more files in the `./src/Data` directory that are automatically generated. This is indicated by the header
`-- This file is automatically generated, do not edit!`. To change these, instead change the scripts in the `./src/Export` directory and rerun the exporter.
For your PR, please include all relevant changes to both the scripts and data files.
Expand All @@ -66,7 +66,7 @@ The easiest way to make and test changes is by setting up a development installa

cd PathOfBuilding-PoE2

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

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:
* `F5` restarts the program in-place (this is what usually happens when an update is applied).
Expand Down Expand Up @@ -158,7 +158,7 @@ To do this in VSCode find the Java installation folder on your computer as displ
-- This is the path to emmy_core.dll. The ?.dll at the end is intentional.
package.cpath = package.cpath .. ";C:/Users/someuser/.vscode/extensions/tangzx.emmylua-0.5.19/debugger/emmy/windows/x64/?.dll"
local dbg = require("emmy_core")
-- This port must match the Visual Studio Code configuration. Default is 9966.
-- This port must match the IDE configuration. Default is 9966.
dbg.tcpListen("localhost", 9966)
-- Uncomment the next line if you want Path of Building to block until the debugger is attached
--dbg.waitIDE()
Expand Down Expand Up @@ -196,38 +196,39 @@ Files in /Data /Export and /TreeData can be massive and cause the emmyLua langua
6. Attach the debugger

#### Miscellaneous tips

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.

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.

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

## Testing

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.
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.
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.

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

Docker alternative:

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

### Creating new test builds or fixing an existing build

Sometimes a change will be made that intends to change the stats garnered by PoB, which will break our tests.
1. Add the new build XML (if applicable) to the `TestBuilds` folder
2. Run `busted --lua=luajit -r generate` to generate a LUA file that contains the current stats of that build
3. Run `busted --lua=luajit` and the tests should pass
2. Run `docker-compose up` from the command line
3. Review the results in the terminal

Docker alternative:
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.

1. Add the new build XML (if applicable) to the `TestBuilds` folder
2. Run `docker-compose up -d` to generate a LUA file that contains the current stats of that build and run the tests
### Debugging tests
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`:
```lua
package.cpath = package.cpath .. ";/usr/local/bin/?.so"
local dbg = require("emmy_core")
-- This port must match the IDE Code configuration. Default is 9966.
dbg.tcpListen("localhost", 9966)
dbg.waitIDE()
```
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.

## Path of Building development tutorials

Expand Down Expand Up @@ -272,6 +273,7 @@ as well as some familiarity with build tools such as [CMake](https://cmake.org).
Example input for Steam:

C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2

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.
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.
7. If you run into any errors, update the code in `./src/Export` as necessary and try again.
Expand Down
58 changes: 15 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,14 @@
# Path of Building Community Fork
## Formerly known as LocalIdentity Fork
# Path of Building 2 Community
## Welcome to Path of Building 2, an offline build planner for Path of Exile 2!

This is a fork of Openarl's Path Of Building that includes many extra features not in the base version of PoB
* Adds support for new and updated uniques from league 3.8 onwards
* Pantheon support
* Impale DPS support
* Enemy armour and physical damage reduction calculations
* Catalysts
* Dual influence crafting
* Search for all dropdown boxes
* Barrage Support skill gem
* Ensnaring Arrow support
* Thread of Hope support
* Crimson Dance support
* Void Shot support
* Delve helmet mod support
* Breakdown for aura and curse effect
* List of recently imported accounts to the Import/Export Build tab
* More tree highlighting options for node power
* Support for fossil mods in the crafting window. Including correct parsing for some mods that previously didn't work (e.g., 60% chance to deal 100% more poison/bleed damage)
* Add parsing for more nodes on the tree (i.e., Slayer, Champion, Berserker, Chieftain, Hierophant, Trickster, Assassin, Necromancer and Elementalist ascendancy nodes)
* Add oil combinations to notables on the passive tree
* Support for Elusive and Nightblade support gem
* Incremental shock values (not a locked 50%)
* Fixed Close Combat and Multistrike to have their correct damage values
* Logic for melee distance scaling attack multipliers (Close Combat and Slayer's Impact node)
* Withered now shows on the configuration screen
* Support for Ryslatha's Coil, Vaal Arc Lucky Buff, Perquil's Toe and more
<p float="middle">
<img alt="Tree tab" src="https://github.com/user-attachments/assets/225bf25f-1ac4-4639-b280-565a24d2a2fc" width="48%" />
<img alt="Items tab" src="https://github.com/user-attachments/assets/de8e6dc0-1e1a-46c5-b8a4-18877e67d48d" width="48%" />
</p>

## Download
Head over to the [Releases](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/releases) page to download the install wizard or portable zip.

## Contribute
You can find instructions on how to contribute code and bug reports [here](CONTRIBUTING.md).

## Changelog
You can find the full version history [here](CHANGELOG.md).

Welcome to Path of Building, an offline build planner for Path of Exile!
## Features
* Comprehensive offence + defence calculations:
* Calculate your skill DPS, damage over time, life/mana/ES totals and much more!
Expand All @@ -47,8 +18,9 @@ Welcome to Path of Building, an offline build planner for Path of Exile!
* Supports all skills and support gems, and most passives and item modifiers
* Throughout the program, supported modifiers will show in blue and unsupported ones in red
* Full support for minions
* Support for party play and support builds
* Passive skill tree planner:
* Support for jewels including most radius/conversion jewels
* Support for jewels including most radius/conversion and timeless jewels
* Features alternate path tracing (mouse over a sequence of nodes while holding shift, then click to allocate them all)
* Fully integrated with the offence/defence calculations; see exactly how each node will affect your character!
* Can import PathOfExile.com and PoEPlanner.com passive tree links; links shortened with PoEURL.com also work
Expand All @@ -60,6 +32,7 @@ Welcome to Path of Building, an offline build planner for Path of Exile!
* Item planner:
* Add items from in game by copying and pasting them straight into the program!
* Automatically adds quality to non-corrupted items
* Search the trade site for the most impactful items
* Fully integrated with the offence/defence calculations; see exactly how much of an upgrade a given item is!
* Contains a searchable database of all uniques that are currently in game (and some that aren't yet!)
* You can choose the modifier rolls when you add a unique to your build
Expand All @@ -71,20 +44,19 @@ Welcome to Path of Building, an offline build planner for Path of Exile!
* Also contains a database of rare item templates:
* Allows you to create rare items for your build to approximate the gear you will be using
* Choose which modifiers appear on each item, and the rolls for each modifier, to suit your needs
* Has templates that should cover the majority of builds (inb4 'why is there no coral amulet?')
* Has templates that should cover the majority of builds
* Other features:
* You can import passive tree, items, and skills from existing characters
* Share builds with other users by generating a share code
* Automatic updating; most updates will only take a couple of seconds to apply
* Somewhat more open source than usual (look in "%ProgramData%\Path of Building" if you're interested)

## Screenshots
![ss1](https://user-images.githubusercontent.com/23911/153694681-cbc7b83a-970c-4020-b9e3-2a09f0808e38.png)
![ss2](https://user-images.githubusercontent.com/23911/153694692-0309bab1-6776-43ac-bb5a-6cc40265c7c7.png)
![ss3](https://user-images.githubusercontent.com/23911/153694693-2471e491-6ed9-47ae-abcc-a3bff81cdc7c.png)
## Changelog
You can find the full version history [here](CHANGELOG.md).

## Licence
## Contribute
You can find instructions on how to contribute code and bug reports [here](CONTRIBUTING.md).

## Licence
[MIT](https://opensource.org/licenses/MIT)

For 3rd-party licences, see [LICENSE](LICENSE.md).
Expand Down
1 change: 0 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ services:
environment:
HOME: /tmp
container_name: pathofbuilding-tests
user: nobody:nobody
command: busted --lua=luajit
security_opt:
- no-new-privileges:true
Expand Down

0 comments on commit 2201aac

Please sign in to comment.