All Projects → dotnet → Source Build

dotnet / Source Build

Licence: mit
A repository to track efforts to produce a source tarball of the .NET Core SDK and all its components

Programming Languages

powershell
5483 projects

.NET Core Source-Build

Build Status Join the chat at https://gitter.im/dotnet/source-build

This repository helps .NET SDK and .NET Runtime package maintainers comply with common Linux distribution guidelines.

To build the full .NET SDK from source, pick a specific Git tag with your desired version, or use a release branch to build the latest servicing release of that version. Refer to the tag/branch's README for build instructions:

The current branch is a work in progress that produces several .NET SDK components for Arcade-powered source-build. Once Arcade-powered source-build is complete, it will allow building a .NET SDK from source directly from the dotnet/installer repository.

Using this repository

The scripts are written for Bash and supported on macOS and Linux.

The source-build repository doesn't currently support Windows. See source-build#1190.

Build on Linux or macOS

Optionally, run ./check-submodules.sh to ensure the submodules are set up and synchronized. Then, run the build command:

./build.sh

Once the build is successful, the outputs are placed in artifacts/packages/Debug/.

Goals

The key goal of source-build is to satisfy the official packaging rules of commonly used Linux distributions, such as Fedora and Debian. Many Linux distributions have similar rules. These rules tend to have two main principles: consistent reproducibility, and source code for everything.

A secondary goal of source-build is to allow .NET Core contributors to build a .NET Core SDK with coordinated changes in multiple repositories. However, the developer experience is significantly better in individual repositories and, if possible, contributors should make and test changes in the target repo, not source-build.

What does the source-build infrastructure do?

Source-build solves common challenges that most developers encounter when trying to build the whole .NET Core SDK from source.

  • .NET Core is composed of many repositories that need to be built at a specific combination of commits.
  • Each repository's build output needs to flow into the next repository's build.
  • By default, most .NET Core repositories download prebuilt binary dependencies from online sources. These are forbidden by typical Linux distribution rules, and interfere with build output flow.
  • Nearly all .NET Core repositories require the .NET Core SDK to build. This is a circular dependency, which presents a bootstrapping problem.

The source-build repository contains scripts and build logic to help Linux distribution maintainers address these challenges.

License

This repo is licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].