Drydock is a resource allocation system for hardware and software. It is mostly an infrastructure component which supports other applications, not an application that normal users are expected to interact with much.
The primary use case for Drydock is creating, managing, and destroying repository working copies for build systems. In particular, these are the short-term use cases:
- (T9123) Harbormaster should be able to ask Drydock to give it a working copy containing an arbitrary commit, then run build processes in that working copy.
- (T182) Differential should be able to ask Drydock to give it a working copy so it can commit a revision.
In the long term, Drydock will be able to build resources incrementally: you tell it how to allocate hosts and other hardware resources, and it manages pools of hardware and software to satisfy these requests.
For v1, the focus is on enabling T9123 + T182 by allocating working copies, not incremental resource construction or hardware resource management. Roughly, this means:
- Hardware is in static, pre-allocated pools in Almanac.
- Push as much dynamic/incremental allocation to later versions as possible.