Changelog
This is a major release with breaking changes for plugin creators (and therefore third-party ASF plugins), usual release for the users.
Changes since V5.2.8.4:
- ASF's internal HTML parsing module was rebased on top of new major version. This is pretty big update, and while we thoroughly tested this against regressions, please let us know if you find anything unusual not working as expected (@JustArchi).
- Added workaround against apparently-not-so-rare Steam issue which caused ASF to cache invalid packages data. ASF will now cache Steam packages data for no longer than a week, so removing
ASF.db
manually should no longer be required in any circumstance (@JustArchi). - Enhanced
addlicense
command to recognizeFail/AlreadyPurchased
andFail/RateLimited
(subIDs only for the second). ASF will now skip requests to Steam if it determines that it already owns given apps/packages, which makes it possible to supply a huge "activation list", and activate only what's needed from it, without tripping rate limits on Steam side (@JustArchi). - Latest ASF-ui with new features, improvements and bugfixes (@MrBurrBurr).
- Updated localization provided by our community (@JustArchi-ArchiBot).
- Usual amount of other core improvements, optimizations and bugfixes (@JustArchi).
Plugin creators
AngleSharp.XPath
was updated to new major version2.0
which has breaking changes. ASF's code, especially public API in core utilities was adapted to them. All plugins that are parsing HTML will likely require additional fixes to work with this release. You can find our detailed changelog further below (@JustArchi).ASF.GlobalDatabase.PackagesDataReadOnly
changed its signature, you'll need to recompile if using it, although usage remains the same (@JustArchi).
The below helpful section concerns you if you're parsing HTML in your plugins, you can skip it if you don't.
- XPath ending with
/@attr
no longer returns parentIElement
node(s) with attributes inside, butIAttr
attribute nodes themselves. This is the biggest change, as previously working xpaths may simply no longer work or result in something else than you expect. I've confirmed that this is expected breaking change, against my initial impression that it shouldn't be. SelectNodes<T>()
andSelectSingleNode<T>()
helper APIs use generics now, so you can also more easily extract and/or cast other types of nodes.SelectNodes()
now returnsIList<INode>
instead ofIEnumerable<IElement>
. UseSelectNodes<IElement>()
if you need previous functionality.SelectSingleNode()
now returnsINode?
instead ofIElement?
. UseSelectSingleNode<IElement>()
if you need previous functionality.SelectSingleElementNode()
no longer exists, useSelectSingleNode<IElement>()
instead.- Consider using
SelectNodes<IAttr>()
andSelectSingleNode<IAttr>()
when you need to extract attributes, rather than selectingIElement
nodes and callingGetAttribute()
on them. As long as you're not extracting more attributes than one, you can simply append/@attr
to your XPath and selectIAttr
node(s) directly. It's easier and more convenient that way, but old style will work too, and might be more appropriate when you're accessing 2+ attributes at once from a singleIElement
node.
For more information including example of changes done across ASF, visit the commit itself. I'm not that much happy doing those breaking changes, because old style worked fine and there was no "problem" with it, but I went with upstream changes and adapted ASF to them rather than sticking with old unsupported release - this warrants a major B
ASF version bump. While pretty annoying, those changes shouldn't require that much effort, as across whole ASF there were just a dozen of places or so.
Personally I'm sorry for causing you hassle, but as a project maintainer I don't want to stick with old, unsupported version for the sake of compatibility, as further described in deprecation section. Since I can't really support both versions at once in ASF, I've decided to upgrade to new one as part of major B
version bump.
Support
ASF is available for free, this release was made possible thanks to the people that decided to support the project. If you're grateful for what we're doing, please consider a donation. Developing ASF requires massive amount of time and knowledge, especially when it comes to Steam (and its problems). Even $1 is highly appreciated and shows that you care. Thank you!