The ASP.NET build system uses 3 MyGet feeds for each branch (dev/release), and also nuget.org for official releases.

  • aspnetcore-volatile-<branch> (aspnetcore-volatile-dev/aspnetcore-volatile-release)
  • aspnetcore-ci-<branch> (aspnetcore-ci-dev/aspnetcore-ci-release)
  • aspnetcore-<branch> (aspnetcore-dev/aspnetcore-release)

The MyGet feeds are hosted on [https://dotnet.myget.org] (they used to be on myget.org, see the announcement for info about the change).

After each repo under github.com/aspnet builds successfully, each package produced by it is pushed to the corresponding volatile feed.

After the graph of repos is build, the Coherence build is triggered. This build verifies that the packages have matching versions and their references are correct (that they are coherent). Then, it pushes them to aspnetcore-ci-<branch>.

Once the Coherence build passes, all tests are run on the packages in the aspnetcore-ci-<branch> feed. If the tests pass, they are signed and uploaded to aspnetcore-dev (or aspnetcore-release).

So the differences are:

  • aspnetcore-volatile-<branch>

    • latest packages
    • possible not coherent
    • not tested
    • not signed
    • updated on every checkin
    • mostly used to diagnose build failure
  • aspnetcore-ci-<branch>

    • possible not latest
    • coherent
    • not tested
    • not signed
    • updated when all repos build successfully
    • used by our build system
  • aspnetcore-<branch> / nuget.org

    • possible not latest
    • coherent
    • signed
    • tested
    • updated when everything works
    • used for stable packages
  • aspnetcore-patch

    • used for latest patch nightly builds
    • coherent
    • signed
    • tested
    • updated when everything works
    • used for stable packages

Once the aspnetcore-release feed is stable, the packages (without the timestamp suffix) are pushed to nuget.org.

Unless you work on developing new features for ASP.NET and EF, it is recommended that you use aspnetcore-dev (for dev bits) or nuget.org (for release bits). The release feed (aspnetcore-release) is just a staging feed and is not recommended for any general use.

Latest* Coherent Tested Signed Branch
aspnetcore-volatile-dev :white_check_mark: dev
aspnetcore-ci-dev :white_check_mark: dev
aspnetcore-dev :white_check_mark: :white_check_mark: :white_check_mark: dev
aspnetcore-volatile-release :white_check_mark: release
aspnetcore-ci-release :white_check_mark: release
aspnetcore-release :white_check_mark: :white_check_mark: :white_check_mark: release
aspnetcore-patch :white_check_mark: :white_check_mark: :white_check_mark: rel/*
nuget.org :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: master

* for that branch