Commit Graph

9594 Commits

Author SHA1 Message Date
Archi
944df1cfc8 Decrease PICS refresh timer
We don't need to fetch info that often
5.2.1.1
2021-12-11 15:35:48 +01:00
Archi
e259f9e32f STD: Misc 2021-12-11 15:17:28 +01:00
Archi
c2cabfba49 STD: Add additional safeguards against depot keys corruption 2021-12-11 15:11:35 +01:00
Renovate Bot
dee8add183 Update ASF-ui commit hash to 45fe8ff 2021-12-11 02:47:31 +00:00
ArchiBot
06829beda4 Automatic translations update 2021-12-11 02:09:43 +00:00
Renovate Bot
2a35c82e0c Update ASF-ui commit hash to 28ad0e2 2021-12-10 19:28:45 +00:00
Renovate Bot
dbd8fa9877 Update ASF-ui commit hash to 43b3e47 2021-12-10 15:16:35 +00:00
Archi
d8a0d2f22d OCD 2021-12-10 15:00:59 +01:00
Archi
88996d1e35 Make ASF helper scripts aware of --service 2021-12-10 14:59:19 +01:00
Archi
78a88979dc Add service parameter to GET /Api/ASF 2021-12-10 14:22:49 +01:00
ArchiBot
2513bd4163 Automatic translations update 2021-12-10 02:09:39 +00:00
Archi
d9a5c30659 Closes #2472 2021-12-09 18:24:00 +01:00
ArchiBot
c60ea2ba3d Automatic translations update 2021-12-09 02:11:40 +00:00
Renovate Bot
7a07b6a22b Update crowdin/github-action action to v1.4.2 2021-12-08 22:08:30 +00:00
Renovate Bot
d89b6112dd Update ASF-ui commit hash to 3c31ac3 2021-12-08 20:47:55 +00:00
Archi
5d33bca611 Add IUpdateAware plugin interface 2021-12-08 19:48:59 +01:00
Renovate Bot
0f489f55e4 Update wiki commit hash to 9046b44 2021-12-08 16:41:15 +00:00
Archi
bf70f27449 Bump 2021-12-08 17:01:14 +01:00
Archi
0eab358af9 Plugins breaking: Convert all synchronous interface methods to Task
Okay, I wish we had uncovered it earlier as part of V5.2 but it has bitten us in the back just now, so I'm addressing it as part of monthly cycle instead.

Previously used void methods did not allow async operations in plugins in a "nice way". If plugin didn't require synchronization with the ASF and just minded its own business, it wasn't half bad as it could use async void signature. However, if plugin by any chance had to do something BEFORE ASF continued with the rest of the logic, it had to explicitly leave non-async void signature and call its async-capable stuff in synchronous manner (usually with Wait() or .Result), which is vastly suboptimal.

This was visible even in our STD plugin, which previously had (and still has) GlobalCache initialization in OnASFInit(). If that cache initialization took a bit longer time, STD would hit InvalidOperationException() in OnLicenseList() callback as global cache didn't load yet while we were already long past OnASFInit().

Therefore, I've decided to make a breaking change for a very good reason - all previous methods were converted to tasks, which allows from plugin to do one of three things:

- If plugin is async and requires synchronization (like STD), it can declare itself as async await, and do its awaits as-needed, and ASF will wait for those.
- If plugin is truly synchronous (and not just a synchronous signature with awful Wait() or .Result, see above), it can simply return Task.CompletedTask and has exactly the same logic.
- Finally, if plugin calls some async stuff but doesn't need ASF synchronization, it can "offload" itself from it by calling e.g. ASF's Utilities.InBackground() with whole logic, while returning Task.CompletedTask from the main method. This will allow it to effectively do what async void previously did, by just hooking into the process without intention of slowing it down.

All in all I'm confident this approach, while a bit counter-intuitive at first, will result in better compatibility between ASF and the plugins, as if I wanted to fix my STD issue right now without that breaking change, I'd have to actually call .Result on my async global cache loader function, which is utterly stupid if we can fix ASF to do the right thing instead.

This "approach" can be commonly found in some other libs with similar to ASF's event-hook behaviour, e.g. Discord.Net.

You'll sadly need to do some method signature changes in all of your plugins, as the core OnLoaded() was also changed. See the ones I did in SteamTokenDumperPlugin.cs if you need a practical example, and see ExamplePlugin.cs if you need further explanation.
5.2.1.0
2021-12-08 16:52:27 +01:00
Renovate Bot
3eae143c55 Update ASF-ui commit hash to aa650c8 2021-12-08 03:32:40 +00:00
ArchiBot
a33d46c85b Automatic translations update 2021-12-08 02:12:18 +00:00
Renovate Bot
4aa524f03e Update actions/upload-artifact action to v2.3.0 2021-12-08 00:01:56 +00:00
Renovate Bot
861e7ded16 Update actions/download-artifact action to v2.1.0 2021-12-07 21:18:02 +00:00
Archi
581d5167b9 Closes #2465 2021-12-07 21:34:46 +01:00
Archi
b9108742d4 Bump 2021-12-07 21:27:30 +01:00
Renovate Bot
86c19a2dce Update wiki commit hash to c8647e6 2021-12-07 13:54:40 +00:00
Renovate Bot
f64abc02ab Update ASF-ui commit hash to 9c9c415 2021-12-07 09:02:01 +00:00
Renovate Bot
d6e569c970 Update dependency System.Linq.Async to v5.1.0 2021-12-06 18:25:27 +00:00
Renovate Bot
a75d63cd7f Update ASF-ui commit hash to 09ad8a5 2021-12-06 17:01:23 +00:00
Renovate Bot
8bfc48d8dc Update ASF-ui commit hash to 468291f 2021-12-06 05:54:48 +00:00
ArchiBot
3de4069e3f Automatic translations update 2021-12-06 02:11:52 +00:00
Renovate Bot
874eb2d1c6 Update ASF-ui commit hash to 9a44864 2021-12-05 03:11:55 +00:00
ArchiBot
803d4554aa Automatic translations update 2021-12-05 02:14:37 +00:00
Renovate Bot
549ddb4271 Update dependency SteamKit2 to v2.4.0 2021-12-04 18:52:13 +00:00
renovate[bot]
9017c3970d Update dependency JustArchiNET.Madness to v3 (#2468)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-04 19:51:45 +01:00
Renovate Bot
1eecd8ace0 Update wiki commit hash to 758a267 2021-12-04 15:30:14 +00:00
Archi
31da584f75 Relax root warning
Even though the case is justified, we shouldn't render whole setups unsupported because of that, as running as root, while discouraged, does not directly affect the program stability.

This is especially true on Windows boxes where there is a lot of setups running with administrators by default and users are not even aware of that, I don't have a good fix for them (apart from reinstallation), and because I do not, I should not expect from them to supply cmd-line arg they don't even understand why.
5.2.0.10
2021-12-04 13:38:00 +01:00
Renovate Bot
1b1cdb8c3e Update ASF-ui commit hash to cff26d6 2021-12-04 10:33:11 +00:00
Renovate Bot
37e7f9f51c Update wiki commit hash to 835074b 2021-12-04 02:55:11 +00:00
ArchiBot
fc9dda13a0 Automatic translations update 2021-12-04 02:09:09 +00:00
Archi
94c214af96 Init emergency loggers to notify user about very early failures
"Very early failures" include exclusively lack of being able to navigate to given --path, as everything else is postponed until we get core loggers up and running. We should print the information to the user and abort the program at the minimum in this case.

Until now ASF silently ignored those errors and proceeded like usual, this is unwanted, if --path is wrong then it's on user to fix it.
2021-12-04 02:33:23 +01:00
Renovate Bot
a184fc555b Update wiki commit hash to 17b4272 2021-12-03 22:53:24 +00:00
Łukasz Domeradzki
ad2dae4faf Update RELEASE_TEMPLATE.md 2021-12-03 18:51:08 +01:00
Archi
aaf9cc67b3 Misc
60 days for lock-threads to ensure that issues and PRs get more or less a full month in stable release in case somebody would like to add something to them
2021-12-03 10:51:48 +01:00
ArchiBot
fe866554d6 Automatic translations update 2021-12-03 02:09:26 +00:00
Renovate Bot
97200da414 Update ASF-ui commit hash to 94a5e72 2021-12-02 15:44:18 +00:00
ArchiBot
876c332452 Automatic translations update 2021-12-01 02:13:09 +00:00
Renovate Bot
75bc0ed598 Update wiki commit hash to d204892 2021-11-30 10:00:20 +00:00
Renovate Bot
bcbc44cb1f Update ASF-ui commit hash to 2ec2c77 2021-11-30 07:53:18 +00:00
ArchiBot
db8b23031a Automatic translations update 2021-11-30 02:03:56 +00:00