Archisteamfarm: .NET Core 3.1 review list

Created on 9 Aug 2019  路  13Comments  路  Source: JustArchiNET/ArchiSteamFarm

Issue for myself to remind me about areas to explore when upgrading ASF to .NET Core 3.0:

Backlog:

Code upgrades:

  • [x] Make HttpClient use HTTP/2 by default. Needs testing.
  • [x] See how viable new JSON is (not viable enough for our use cases yet, can't even work with non-public setters, but outstanding issue is lack of schema enforcements, like disallowing nulls)
  • [x] See how we can adapt to nullable checks

Maintenance:

  • [x] Bump of at least ASF's Minor version should be done, Major depending on whether there will be breaking changes across updates and alike, nothing justifying it as of now.
  • [x] Compatibility wiki page should be purged out of obsolete entries (issues), everything else should be updated. CLR_OPENSSL_VERSION_OVERRIDE=1.1 should no longer be needed.
  • [x] Review Compilation in regards to above.

Initial:

  • [x] Final reading of what's new and whether I missed anything below.
  • [x] Get rid of ILLink.Tasks (should now be bundled), check enhanced trimming and publishing single executables, like this.
  • [x] Once above is considered, review rootDescriptor.xml, see for the new approach and whether it's still needed.
  • [x] rcedit should no longer be needed, eradicate it out of tools and appveyor.yml, #926.
  • [x] CoreCompileCache workaround in csproj should no longer be needed, https://github.com/microsoft/msbuild/issues/3350 is supposed to be solved.
  • [x] Review CI building scripts, dockerfiles, csproj and cc.sh, especially stuff like LinkDuringPublish or CrossGenDuringPublish. Correct dotnet publish to still use FDD and SCD and not FDE.
  • [x] Check size difference in PublishReadyToRun and determine whether to AOT-compile ASF binaries. Not supported in cross-platform building (yet?)

Future (.NET Core 5.0?):

Enhancement External Low priority Wishlist

All 13 comments

Hey there, may I ask if you have any plans to add this feature anytime soon?

Consider giving single file publish another try once mono/linker#763 is resolved

If I understand correctly a fix for that issue has been added to .NET Core 3.1

Thanks

It's more complicated than that since it also bundles all of my files ASF needs to work with, such as config directory and alike. I'll need to see if there is an easy way to exclude them from bundling.

But yes, now that I merged 3.1 in, it's time to see how the list above reflects today.

Done in #1542.

Since all outstanding issues have been dealt with, we can close this task in favour of last task that is left: https://github.com/JustArchiNET/ArchiSteamFarm/issues/1543

I tried it building ASF myself in my Debian machine and it compiled with no errors. However, when I tried to open it (the linux-x64 release), I got a bunch of errors regarding missing libraries. I could have messed up something as I'm not familiar with .NET, so I'll wait for the last appveyor build to complete so I can test it properly.

Thanks a lot for implementing this!

Remember that you can always download artifacts directly from AppVeyor (or GitHub in case of releases): https://ci.appveyor.com/project/JustArchi/archisteamfarm/builds/29348255/artifacts

I tested linux-x64 and it worked fine for me.

Yup I was actually waiting for this one: https://ci.appveyor.com/project/JustArchi/archisteamfarm/builds/29348262

Anyway, I've just downloaded it. The binary size is the same of when I compiled it, so I don't think I've messed it up 馃槃

Also, the 'missing libraries' errors I was getting is related to this one plugin I have installed: https://github.com/Ryzhehvost/ASF-Achievement-Manager

I have no idea how to fix it and honestly it's fine if I just disable them for now. I know this fix shouldn't be done by you, but I'll leave my ASF's log file here just in case:

https://gist.github.com/guixxx/5d4b597659bf84fb6726246e1b9c0af4/raw/63d92b7ba8800a41d999296c3bc729e7e8b02257/ASF.log

Thanks again!

I had to disable single file publishing anyway for now due to update issues on Windows boxes, I'll see if I can think of something clever upcoming days (single file forces handle on main binary and I can't do anything with it as part of the process, previously I could move it around).

Too bad... Happy to say that it's working great on Linux though! (except for the plugins part)

It is because on Linux I can move/rm anything I want to, only Windows is problematic.

@guixxx Windows awaits reasoning in https://github.com/dotnet/sdk/issues/4022

Thanks for heads up. Anyway, since I mostly use Linux and I was able to build ASF from source, I'm good for now...

Linux (and OS X) will be published as single file starting from V4.1.1.2, officially, since this isn't a blocker for it. And as an extra it's actually a good opportunity to test if my enhanced logic for HomeDirectory works properly (as ASF wasn't fully compatible with it before I added support just a few days ago).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ttrl picture ttrl  路  3Comments

jat001 picture jat001  路  4Comments

Botan626 picture Botan626  路  4Comments

light444 picture light444  路  3Comments

Gilrain picture Gilrain  路  3Comments