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

[PROPOSAL] Retire the net461 target & migrate to .NET 6 SDK #125

Closed
Xtansia opened this issue Dec 12, 2022 · 1 comment · Fixed by #256
Closed

[PROPOSAL] Retire the net461 target & migrate to .NET 6 SDK #125

Xtansia opened this issue Dec 12, 2022 · 1 comment · Fixed by #256
Labels
good first issue Good for newcomers

Comments

@Xtansia
Copy link
Collaborator

Xtansia commented Dec 12, 2022

What/Why

What are you proposing?

I propose removing the explicit net461 target from our packages as .NET Framework 4.6.1 reached End of Support in April 2022, and additionally updating the SDK used to build the packages to .NET 6 as .NET 5 reached End of Support in May 2022.

What problems are you trying to solve?

  • Due to .NET Framework 4.6.1 reaching EoS, more and more packages (especially those published by Microsoft) are removing it from their supported targets, which results in issues for us when we want to update our own dependencies.
  • Continuing to use .NET 5 as our build SDK may result in security issues due to being at EoS, and it limits support for our test packages and other tools. Additionally .NET 6 supports the Apple M1 processor, meaning a better developer experience for any who may be using an M1 based machine.

What is the developer experience going to be?

  • Increasing the required SDK version will mean developers will need to install the newer SDK if not already installed, otherwise the experience will be unchanged.

Are there any security considerations?

  • If anything this will improve the security situation by enabling us to stay better up to date

What is the user experience going to be?

Consumers of the library will only be impacted if they are specifically targeting .NET Framework 4.6.1, all other consumers (including those who have updated to .NET Framework 4.6.2 from 4.6.1) will be unaffected as all other recent versions of .NET Framework and .NET support .NET Standard 2.0 which we target.

Are there breaking changes to the User Experience?

As above regarding those on 4.6.1

Why should it be built? Any reason not to?

Enables continued modernisation and package updates of the client, resulting in better user experiences and improved security posture.

What will it take to execute?

Requires minimal effort, updating SDK version number in global.json and workflows, updating necessary packages, removing net461 target from projects.

Any remaining open questions?

  • Dropping the net461 target likely implies a major semver bump due to it being a breaking change for a (very small if any) percentage of users.
@Xtansia
Copy link
Collaborator Author

Xtansia commented Dec 12, 2022

Additionally this can be done as separate stages:

  • Update required .NET SDK for compiling to 6
  • Remove net461 target from projects only used internally within the repo that aren't published
  • Remove net461 target from the main client projects

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants