• The concept
  • Why (what are we solving)?
  • Demo
  • Prior Art
  • Some details to think about
  • Problem: startup, discovery, and lifecycle of the build server
  • Problem: client-server communication machinery
  • Problem: long-running tasks block the build server
  • Problem: capturing stdout/stderr
  • Problem: supporting multiple sbt versions in clients
  • Problem: who watches files and takes action accordingly?
  • Problem: Mapping Scala types to wire protocol
  • Problem: Task cancellation
  • Problem: State across build server restarts
  • Problem: Plugins which use the terminal directly
  • Problem: Completion
  • Problem: Notification of build reload
  • Problem: Comprehensive error list
  • Problem: How do clients filter what they get over the socket?
  • Problem: How long is the history?
  • Problem: Tasks and plugins sending events
  • Problem: Tasks and plugins receiving requests
  • Client API
  • Ideas: what could the model provided by the build server look like?
  • Ideas: Backgroundable Tasks
  • Ideas: command-line flexibility
  • Ideas: Wire protocol
  • Other ideas