An extensible build system which performs at scale.
Build steps are executed in their own tightly controlled hermetic environment. With access to only files and env variables that they have explicitly been given access to, builds have never been more correct! Please can take this a step further, utilising Linux namespaces to sandbox the network and filesystem!
Built from the ground up with correct and reliable model for incremental builds, Please only builds what it needs to. Combined with the tightly controlled build environment, task parallelism, and distributed caching, this makes for a reliable and performant build system at scale. You worry about what to build, Please will worry about when, or indeed, if to build it!
Build any target, or execute any test, all with the same familiar CLI! Please can even manage your toolchain; no more talking to IT to update to the next language version. Define aliases for common tasks leveraging Please auto-completions for the ultimate developer experience. Written in Go, Please provides all this power behind a snappy user experience with no runtime dependency.
With a powerful framework for automating every part of your build process, get started quickly with the built-in definitions, then expand on them crafting a truly holistic build process. Generate code, configurations, deployment manifests, or whatever your imagination conceives, while rest assured Please is handling correctness and performance no matter what you do.
Please isn't magic; it's built on a set of powerful core mechanisms that can be easily understood. By relying on these mechanisms rather than opaque abstractions, configuration is light weight, largely optional, and easily understood. There's no central workspace file that nobody truly owns with pages of configuration and incantation nobody truly understands.
We've developed Please in tandem with our internal integration tools, so integrating with Please is a dream. Leveraging the build graph and git integrations, determine the minimal set of targets that have been effected between changes. Run the effected tests, then export artifacts with a single command. Leave it to Please to figure out what needs to be built and re-deploy only that which has changed!