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

Update daily builds guidance #22468

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ dotnet add package Microsoft.EntityFrameworkCore.Cosmos

Use the `--version` option to specify a [preview version](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/absoluteLatest) to install.

Use the [daily builds](https://github.com/dotnet/aspnetcore/blob/master/docs/DailyBuilds.md) to verify bug fixes and provide early feedback.
### Daily builds

We recommend using the [daily builds](docs/DailyBuilds.md) to get the latest code and provide feedback on EF Core. These builds contain latest features and bug fixes; previews and official releases lag significantly behind.

### Usage

Expand Down Expand Up @@ -78,7 +80,9 @@ dotnet add package Microsoft.Data.Sqlite

Use the `--version` option to specify a [preview version](https://www.nuget.org/packages/Microsoft.Data.Sqlite/absoluteLatest) to install.

Use the [daily builds](https://github.com/dotnet/aspnetcore/blob/master/docs/DailyBuilds.md) to verify bug fixes and provide early feedback.
### Daily builds

We recommend using the [daily builds](docs/DailyBuilds.md) to get the latest code and provide feedback on Microsoft.Data.Sqlite. These builds contain latest features and bug fixes; previews and official releases lag significantly behind.
ajcvickers marked this conversation as resolved.
Show resolved Hide resolved

### Usage

Expand Down
63 changes: 63 additions & 0 deletions docs/DailyBuilds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Daily Builds

Daily builds are created automatically whenever a new commit is merged to the `main` branch. These builds are verified by more than 70,000 tests each running on a range of platforms. These builds are reliable and have significant advantages over using previews:
ajcvickers marked this conversation as resolved.
Show resolved Hide resolved

* Previews typically lag behind daily builds by around three to five weeks. This means that each preview is missing many bug fixes and enhancements, even if you get it on the day it is released. The daily builds always have the latest features and bug fixes.
* Serious bugs are usually fixed and available in a new daily build within one or two days--sometimes less. The same fix will likely not make a new preview/release for weeks.
* You are able to provide feedback immediately on any change we make, which makes it more likely we will be able to take action on this feedback before the change is baked in.

## Using daily builds

The daily builds are not published to NuGet.org because there are way too many of them! Instead they can be pulled from a custom NuGet feed. To access this feed, create a `NuGet.config` file in the same directory as your .NET solution or projects. The file should contain the following content:
ajcvickers marked this conversation as resolved.
Show resolved Hide resolved

```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
ajcvickers marked this conversation as resolved.
Show resolved Hide resolved
<add key="dotnet6-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-transport/nuget/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
```

## Which version to use

Daily builds are currently branded as EF Core 6.0. For example, `6.0.0-alpha.1.20457.2`. This is an artifact of the build system; these builds still contain the bits what we plan to ship as EF Core 5.0.

### Using an explicit version

You can use your IDE to choose the latest version. For example, in Visual Studio:

![image](https://user-images.githubusercontent.com/1430078/92644977-01108780-f299-11ea-897e-bb8e9705ada7.png)

Alternately, your IDE might provide auto-completion directly in the .csproj file:

![image](https://user-images.githubusercontent.com/1430078/92645046-1d142900-f299-11ea-9e40-c2b1fe1f61c1.png)

### Using wildcards

It may be more convenient to use wildcards in project references. For example:

```xml
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0-*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.0-*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0-*" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Version="6.0.0-*" />
</ItemGroup>
```

This will cause NuGet to pull the latest daily build whenever packages are restored.

## What about Visual Studio and the SDK?

EF Core 5.0 targets .NET Standard 2.1. This means that:

* Your application does not need to target .NET 5; .NET Core 3.1 is fine.
* The daily builds should work with any IDE that supports .NET Core 3.1.
* They do not require a Visual Studio preview release, although previews will also work.
* The daily builds should work with either the .NET Core 3.1 SDK or the .NET 5 SDK installed.