Skip to content
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

.NET Core 3.1 review list #1365

Closed
16 tasks done
JustArchi opened this issue Aug 8, 2019 · 13 comments
Closed
16 tasks done

.NET Core 3.1 review list #1365

JustArchi opened this issue Aug 8, 2019 · 13 comments
Labels
✨ Enhancement Issues marked with this label indicate further enhancements to the program, such as new features. ☝️ External Issues marked with this label have external scope and typically depend on third-party projects. 🟢 Low priority Issues marked with this label are actively being worked on if nothing serious is on the list. 🙏 Wishlist Issues marked with this label are wishlisted. We'd like to make them happen but they're not crucial.

Comments

@JustArchi
Copy link
Member

JustArchi commented Aug 8, 2019

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

Backlog:

Code upgrades:

  • Make HttpClient use HTTP/2 by default. Needs testing.
  • 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)
  • See how we can adapt to nullable checks

Maintenance:

  • 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.
  • 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.
  • Review Compilation in regards to above.

Initial:

  • Final reading of what's new and whether I missed anything below.
  • Get rid of ILLink.Tasks (should now be bundled), check enhanced trimming and publishing single executables, like this.
  • Once above is considered, review rootDescriptor.xml, see for the new approach and whether it's still needed.
  • rcedit should no longer be needed, eradicate it out of tools and appveyor.yml, Review rcedit usage when targetting netcoreapp3.0+ #926.
  • CoreCompileCache workaround in csproj should no longer be needed, DefineConstants should be considered for CoreCompile incrementality dotnet/msbuild#3350 is supposed to be solved.
  • 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.
  • 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?):

@JustArchi JustArchi added ✨ Enhancement Issues marked with this label indicate further enhancements to the program, such as new features. ⛔ On hold Issues marked with this label are blocked from being worked on, very often due to third-parties. ☝️ External Issues marked with this label have external scope and typically depend on third-party projects. labels Aug 8, 2019
@JustArchi JustArchi removed the ⛔ On hold Issues marked with this label are blocked from being worked on, very often due to third-parties. label Sep 24, 2019
@JustArchi JustArchi added this to the Next milestone Sep 24, 2019
@JustArchi JustArchi removed this from the Next milestone Sep 26, 2019
@JustArchi JustArchi added 🟢 Low priority Issues marked with this label are actively being worked on if nothing serious is on the list. 🙏 Wishlist Issues marked with this label are wishlisted. We'd like to make them happen but they're not crucial. ☝️ External Issues marked with this label have external scope and typically depend on third-party projects. and removed ☝️ External Issues marked with this label have external scope and typically depend on third-party projects. labels Oct 26, 2019
@guixxx
Copy link

guixxx commented Dec 5, 2019

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

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

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

Thanks

@JustArchi
Copy link
Member Author

JustArchi commented Dec 5, 2019

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.

@JustArchi JustArchi changed the title .NET Core 3.0 review list .NET Core 3.1 review list Dec 5, 2019
@JustArchi
Copy link
Member Author

Done in #1542.

@JustArchi
Copy link
Member Author

Since all outstanding issues have been dealt with, we can close this task in favour of last task that is left: #1543

@guixxx
Copy link

guixxx commented Dec 5, 2019

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!

@JustArchi
Copy link
Member Author

JustArchi commented Dec 5, 2019

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.

@guixxx
Copy link

guixxx commented Dec 5, 2019

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!

@JustArchi
Copy link
Member Author

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).

@guixxx
Copy link

guixxx commented Dec 5, 2019

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

@JustArchi
Copy link
Member Author

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

@JustArchi
Copy link
Member Author

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

@guixxx
Copy link

guixxx commented Dec 8, 2019

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

@JustArchi
Copy link
Member Author

JustArchi commented Dec 8, 2019

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).

@lock lock bot locked as resolved and limited conversation to collaborators Jan 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
✨ Enhancement Issues marked with this label indicate further enhancements to the program, such as new features. ☝️ External Issues marked with this label have external scope and typically depend on third-party projects. 🟢 Low priority Issues marked with this label are actively being worked on if nothing serious is on the list. 🙏 Wishlist Issues marked with this label are wishlisted. We'd like to make them happen but they're not crucial.
Projects
None yet
Development

No branches or pull requests

2 participants