Skip to content

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

License

Notifications You must be signed in to change notification settings

Mr-Tao/source-build

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.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.

About

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

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PowerShell 58.3%
  • Shell 38.3%
  • CMake 3.3%
  • Batchfile 0.1%