-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added patch scripts to enable releasing fork to existing PoB installs #1
Conversation
Add fork info to about Changed Tree lua sources to use the repo instead of the zip as its master/DL src Added Pantheons to manifest, moved fork info to manifest version number
I have this in the repo at the moment, but the patch_forks.ps1 does not always work. When my friends have tried it, it will lock them into dev mode as it does not add the |
Ah, I think I've found the issue. My manifest.xml in the PR/my fork had a change to include the Since the logic to detect dev mode in Launch.lua is if localManXML and not self.versionBranch and not self.versionPlatform then
-- Looks like a remote manifest, so we're probably running from a repository
-- Enable dev mode to disable updates and set user path to be the script path
self.devMode = true
end the existence of either a branch or a platform tag will stop the dev mode from enabling, which is why it was working for my testing on my dev fork where I've added the tag, but it won't yet be working for your friends using this fork which doesn't have it yet. to fixall you should need is to add in the |
Fixes for Typos
…ves in Radius count towards Strength Melee Damage bonus" without a node - This happens when sorting the unique item list by DPS when a jewel socket on a cluster jewel is allocated To reproduce the issue: - Create a new build - Go to the tree - Allocate an outer jewel socket - Go to items and craft a large cluster jewel with a jewel socket - Add the item and assign it to Socket PathOfBuildingCommunity#1 - Go back to the tree and allocate the jewel socket in the new cluster jewel - Go back to items and sort the unique list by Combined DPS Previous Result: The progress would stop around 62% complete and the list would not fill. In dev builds an exception is displayed. New Result: The progress properly finishes and the list fills as expected.
Slots with names like "Weapon 2 Abyssal Socket #1" will match the first group of digits as the slotNum for abyssal sockets, which is checked against the abyssal socket count on the parent item when considering whether an abyssal socket is active or not. This fix ensures that we if possible match against the end of the string by anchoring the match, falling back on matching anywhere if that's not possible. This ensures that the match for items like "Weapon 2Swap" is still correct.
Adding ModSyntax document update for change.
Minor tweak to docker compose and ignore files.
Fix: subtract out BASE, INC, MORE increases to double and triple attributes
…qualities not applying. (#4906) * FIX: fix binary mods from auras scaling with aura effect * FIX: fix odd scaling of avoid modifiers from auras. * FIX: wron argument to mergeBuffs * FIX: Add unscalabe flags to tempest shield shock avoidance and add a dummy display stat. Re add entries in skillStatMap in case they're used by something. * Add support for poision immunity and fix scalability * Use a more standard format. * Cleanup unscalable mod list * minor cleanup * Fix other related issues and add support for a couple mods. (#1) * Fix Up several other instances of this and add support for a couple aura mods while at it. * FIX: add a check in case (env.configInput["enemyCritChance"] ends up nil. Co-authored-by: Paliak <91493239+Paliak@users.noreply.github.com> * FIX: Artic Armour is a buff not an aura. * FIX: Typo. Co-authored-by: QuickStick <31533893+QuickStick123@users.noreply.github.com>
lua: Classes/PassiveSpec.lua:237: bad argument PathOfBuildingCommunity#1 to 'pairs' (table expected, got nil) stack traceback: [C]: in function 'pairs' Classes/PassiveSpec.lua:237: in function 'ImportFromNodeList' Classes/ImportTab.lua:627: in function 'ImportPassiveTreeAndJewels'
lua: Classes/PassiveSpec.lua:237: bad argument #1 to 'pairs' (table expected, got nil) stack traceback: [C]: in function 'pairs' Classes/PassiveSpec.lua:237: in function 'ImportFromNodeList' Classes/ImportTab.lua:627: in function 'ImportPassiveTreeAndJewels' Co-authored-by: Tony <tony@cldly.com>
Hi,
I've been using/tweaking PoB for a while now, and I was getting frustrated at some of the slowdown in being kept up to date or reviewing pull reqs on the master repo combined with the inability for a non-technical user to use a fork repo. As Openarl appears to be the only person with the sources to SimpleGraphics engine, installer, etc., while PoB's core was open source, if he didn't have time to make a public release then nobody else could make an easy-to-use public release either.
I saw that a few people had made efforts to re-create SimpleGraphics to allow for users to install their forks without needing dev mode/git, but these had stagnated. I started looking into how to make my own release packages, and after finding the graphics re-impls and skipping over install wizards to auto-install forks into dev mode I looked into how the
manifest.xml
and update system works.From this, I created a python script to allow devs to make compatible
manifest.xml
files for their forks so that PoB can auto-update from the new forks, and I added a small PowerShell script for end users to use to switch their update sources from the Openarl repo to an updater-compatible fork.The python script will only need to be run by the dev, so a Python dependency there is ok, while I used PowerShell for the end-user manifest-patcher script as Powershell 2.0 and higher should already be installed on every Windows 7 and higher machine (this is also why I used WebClient objects instead of the newer Invoke-RestMethod/WebRequest commands not included in PowerShell 2.0, the Windows 7 default version).
To use,
updatemanifest.py
will read the existingmanifest.xml
and outputmanifest-updated.xml
, which can then be checked over/version incremented before replacing the old manifest. To add a new source file to the update system, it will need a entry in the manifest, then haveupdatemanifest.py
run again.Once the remote repo contains the appropriate updated manifest file, end users can then run
patch_fork.ps1
to replace their installed PoB's manifest with this fork's updated manifest file. The next time PoB checks for an update, it will update itself from the fork's repo instead, using the fork's manifest.xml to check for which files to download and replace.Once this is done, PoB will auto-update from the fork's repo as per usual (keeping the
manifest.xml
updated is therefore important, hence having theupdatemanifest
script).You will want to change the
$fork
variable inpatch_forks.ps1
to point to your repo.TL;DR
These scripts allow a dev to make their repo PoB-update compatible (
updatemanifest.py
) and allow an end user to switch their regular, installed PoB's update channel from Openarl to any compatible fork (just edit the$fork
variable in patch_fork.ps1`) and then PoB-update Just Works