Various .NET Core repos have switched their master branches to "5.0", and will use 3.x branches for 3.0 and 3.1 projects. This is very similar to how we approached 2.x and 3.0 projects. As context, master branches produced 3.0 builds for the entire period of the 2.2 project.
At present, this change is only relevant if you contribute to .NET Core repositories. Otherwise, we recommend that you wait for the 5.0 Preview releases before installing this new version.
The following repos have moved their master branches to "5.0":
You can see that 5.0 .NET Core Runtime builds are now being built and published at dotnet/core-setup.
In large part, we switched master to 5.0 to enable to the community to contribute changes. As the .NET Core 3.0 released has progressed, we've had to increase scrutiny on the changes we will accept. Now that we've permanently branched for 3.0, we can accept a much broader set of changes. Please consider that to be an open invitation!
Notably, dotnet/core-sdk is not yet producing 5.0 builds. We expect that the dotnet/core-sdk master branch will continue as a 3.0 branch for 2-3 months while we finish up the .NET Core 3.0 project.
At present, there is no developer experience for 5.0. We are waiting on the dotnet/core-sdk repo to switch to 5.0. Switching your project file to target netcoreapp5.0 won't do anything useful. We'll update this issue when a 5.0 SDK comes available.
Great news Rich! Really looking forward to using .NET 5.
Given the name "Core" will be dropped in 5 onwards, what is the story for the repositories/target frameworks etc? Will we have dotnet/fx, dotnet/clr, dotnet/sdk etc? Will it be netapp5.0?
@stephentoub is currently thinking about that topic. It is unlikely that we’ll rename existing repos. He is thinking about going the “mono repo” route (in this case “mono” means “monolithic”). Some things would be worse with the mono repo approach, but many things would be better like building a feature that requires runtimes and framework changes.
Agreed. It will also be easier for the community to contribute to a mono repo since the majority of the modules are housed together, and folks can see everything happening in the one place.
What is worse with a mono repo?
Git VFS to the rescue, folks!
@GSPP
What is worse with a mono repo?
Quoting the "Limitations and disadvantages" from the Wikipedia article:
I personally find that the "loss of version information" is one of the bigger issues. Since a git tag marks the _whole_ repo at a given commit, this makes it slightly awkward with monorepos if you release the individual packages independently from each other. You have to use some foo-1.2, bar-2.3 scheme where you prefix the tag with the component/package name to work around this, and even so, it makes e.g. GitHub releases slightly more awkward to work with (all the releases for _all_ the packages will be listed, making it harder for users to find the release info for a given package & version).
All things considered though, I do think that the monorepo approach might make a whole lot of sense for something like the .NET SDK and runtime.
Most helpful comment
@stephentoub is currently thinking about that topic. It is unlikely that we’ll rename existing repos. He is thinking about going the “mono repo” route (in this case “mono” means “monolithic”). Some things would be worse with the mono repo approach, but many things would be better like building a feature that requires runtimes and framework changes.