Skip to content

Conversation

@deathbeam
Copy link
Contributor

@deathbeam deathbeam commented Jun 12, 2022

Adds support for skill sets for socket groups. This is useful for adding
different sets for different character state or progression (e.g
Acts/Starter/High Budget etc).

Fixes #2060

Signed-off-by: Tomas Slusny slusnucky@gmail.com

Example:

"Arc set"
image

"Crackling lance set"
image

The build values/reservations and active skill is properly updated.

Example pob:

https://pastebin.com/u6zGbcp0

The format the data is stored in:

image

@deathbeam deathbeam force-pushed the socket-group-sets branch 3 times, most recently from 20ce3e9 to fcaf69c Compare June 12, 2022 19:49
@Nostrademous Nostrademous added the enhancement New feature, calculation, or mod label Jun 14, 2022
@deathbeam deathbeam force-pushed the socket-group-sets branch from fcaf69c to 3811c62 Compare June 17, 2022 19:22
@deathbeam
Copy link
Contributor Author

Added also missing copy function for sets and fixed up changing of order

@deathbeam deathbeam force-pushed the socket-group-sets branch 3 times, most recently from ed3429b to e6a79ee Compare June 18, 2022 01:07
@deathbeam deathbeam force-pushed the socket-group-sets branch 2 times, most recently from d5894e3 to 3b4a7c2 Compare July 9, 2022 19:40
Copy link
Member

@Wires77 Wires77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm glad someone finally got around to doing this! I do think it should follow the same data format that ItemSets and TreeSpecs do (i.e. <Skills activeSkillSet="1"><SkillSet id="1">) We'll just have to let our build xml consumers know we're making this change and have backward compatibility with the old format

@deathbeam
Copy link
Contributor Author

Ah alright, that makes stuff a lot easier, I was trying to keep the format as close to current as possible

@deathbeam deathbeam force-pushed the socket-group-sets branch 2 times, most recently from bed6ae3 to 287457a Compare July 11, 2022 08:11
@deathbeam
Copy link
Contributor Author

Alright updated, also updated the example pob. With this ideal format the solution is a lot faster and simpler

Adds support for skill sets for socket groups. This is useful for adding
different sets for different character state or progression (e.g
Acts/Starter/High Budget etc).

Fixes PathOfBuildingCommunity#2060

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
@deathbeam deathbeam force-pushed the socket-group-sets branch from 287457a to 7d85684 Compare July 11, 2022 08:46
@LocalIdentity LocalIdentity merged commit 81a13db into PathOfBuildingCommunity:dev Jul 11, 2022
@deathbeam deathbeam deleted the socket-group-sets branch July 11, 2022 09:36
@InevitableWaste
Copy link

InevitableWaste commented Jul 11, 2022

I'm not sure what your deprecation policy is, but you may want to consider a 1 release deprecation. Keep a backwards compatible format (perhaps by appending all the sets together but keeping them disabled, and using a single gem group as a "comment" in between each), and also include the new format. That will give more time for tools to update, and then in the following release you can remove the backwards compatible format.

Of course that means tracking more things and making more code changes, and nobody's got time for that.

@Wires77
Copy link
Member

Wires77 commented Jul 11, 2022

While we don't have an official deprecation policy, we do reach out to other tool developers (usually via Discord) that we know consume build files to let them know about upcoming changes that may break their workflow. The downside of doing this is that we can only contact those people who have joined Discord or that we know about. I don't think GitHub has an ability to get notifications on a certain label for PRs, because otherwise labeling things as a breaking change would be the most convenient for everyone.

As to the actual 1 release deprecation, I'm willing to give it a shot, but I'm afraid your last sentence is going to become a big factor. Perhaps making two PRs at once, one for the change, and one to merge before the next major release would help keep things fresh in mind and not forgotten.

@InevitableWaste
Copy link

InevitableWaste commented Jul 11, 2022

That is a good idea about the double PR.

the reason for a 1 release deprecation would be to add a DEPRECATED FOR TOOL DEVS section in the patch notes, which I imagine reaches more tool devs then the discord? It would also give them more time, without being unreasonable bloat to carry forward.

I was thinking more on this, and you might be able to accomplish most this without additional PRs and code. Depending on your branching model, you could just release a NOOP release with only patch notes to notify tool devs of an upcoming breaking change they might need to be aware of. The downside of this is more releases, and nagging non-tool devs with an update/notes that don't include anything for them.

Anyways I'm just happy this feature was merged, been looking forward to it! I'll let y'all figure out if you want to do anything about the BCs or not, anything you choose including nothing seems completely reasonable approach to me!

Keep it up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature, calculation, or mod

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Socket Group Sets

5 participants