We've been making steady progress over the past few months migrating the Service Fabric source code and build to GitHub, while simultaneously continuing our normal development and release cadence. We'd like to share some of the progress we've made so far and what's coming next.
Complete Linux builds
We're excited to now have a .NET Core build process enabled on Linux. This is a big milestone in the transition to open source that has allowed us to push all of the C# components of Service Fabric to GitHub, with the ability to produce complete builds and run tests.
Although the core Service Fabric runtime does operate without any of the C# components, they provide important capabilities and a lot of the application-level functionality and APIs when developing .NET applications on Service Fabric.
We've also pushed the latest Service Fabric source - over 4,500 new files - to GitHub. In total this includes:
- Reliable Collections, at nearly a quarter-million lines of C#, this includes the source for the entire Reliable Collections library and storage engine.
- Kernel Template Library, or KTL, a homebrew kernel STL library that can run in either kernel mode or user mode. Service Fabric uses this library extensively for core kernel-mode components, including the Reliable Collections transactional log.
- Runtime and client libraries, targeting .NET Standard 2.0, these are the C# APIs you use when writing Reliable Services applications in C#.
- System services, including the Fault Analysis Service for chaos testing and fault injection, and the Container Activator Service, which is responsible for activating and managing containers on Service Fabric, are both written in C# and have now been pushed to the Service Fabric repo.
- Tests. Lots more tests - 343 to be exact - that can be run in a container using a simple script.
Putting this all together, we can now produce complete Service Fabric builds for Linux from GitHub with a growing test suite.
Windows builds and more ahead
Our primary goal continues to be an overhaul of our build process on Windows using only publicly-available tools, which will allow anyone to produce Service Fabric builds for Windows as well as Linux from GitHub. Complete test infrastructure and a CI environment are also on the horizon, as we continue to work toward a full open development model on GitHub.
In the meantime, we're putting together a container image that has a complete Windows build environment using some of the custom build tools we currently use, which we will add to the Service Fabric repo. That will help get an early start on producing builds of Service Fabric for Windows from GitHub as we continue to make progress on a unified build environment for both Windows and Linux. This is the first major milestone to building Service Fabric for Windows from GitHub with more in the works. Stay tuned!