Soup is a cross platform build system for developing software as a community, with a primary focus on developer velocity. Soup was built from the ground up to support guaranteed minimum incremental builds while allowing for reusability of both build logic and runtime code.
The system utilizes a three phased approach to building code. A declarative frontend Recipe tells the build what to build. A generate layer uses Extensions to define how to build. And finally, the evaluate engine executes the build Operations to generate the desired output.
The clean isolation individual projects, coupled with the ability to write custom build logic work together to allow for easy authoring of a package that can be shared with other teams or organizations through a public source based Package Manager.
The entire system is programming language agnostic and allows for easy integration with any language. This allows for developers to learn one solution and apply that knowledge to any project regardless of the languages it uses.
- Design Requirements and Goals - The core goals and requirements for the system.
- Architecture - An up to date breakdown of the system Runtime and Design.
- Command Line Interface (CLI) - The help documentation for the Soup Command line application.
- Simple Minimal Language (SML) - The documentation for the Declarative language used by Soup Recipes.
Soup is currently in an Beta
stage. This means that anyone is welcome to play around with the source code or the releases on GitHub, however there may be breaking changes in the internal structures and definitions as work is completed. It is therefor recommended not to be used in any production capacity. The design is stabilizing over time and Version 1 will be released when we believe there will be no more breaking changes or security concerns that would block a first release.
Soup is currently in active prototyping and testing. If you are interested in contributing to the project feel free to submit a PR or download the latest release and file an issue with suggestions or bugs. 😄.