This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
dagger/pkg/dagger.io
Solomon Hykes 3231d69d06
Merge pull request #1550 from talentedmrjones/europa-decode-secret-task
implemented #DecodeSecret as engine task
2022-02-08 11:48:14 -08:00
..
cue.mod WIP: Fix Europa yarn 2022-01-19 11:17:05 -08:00
dagger Merge pull request #1550 from talentedmrjones/europa-decode-secret-task 2022-02-08 11:48:14 -08:00
README.md typo: Fix some minor typos. 2022-02-07 21:10:25 -05:00

Europa Core packages

About this directory

stdlib/europa/ holds the development version of the Core packages for the upcoming Europa release.

Once Europa is released, stdlib/europa will become the new stdlib/

What are Dagger core packages?

Dagger core packages are CUE packages released alongside the Dagger engine, to allow developers to access its features.

Dagger Core API: dagger.io/dagger

Development import path: alpha.dagger.io/europa/dagger

The Dagger Core API defines core types and utilities for programming Dagger:

  • #Plan: a complete configuration executable by dagger up
  • #FS to reference filesystem state
  • #Secret to (securely) reference external secrets
  • #Service to reference network service endpoints
  • #Stream to reference byte streams

Low-level Engine API: dagger.io/dagger/engine

  • Development import path (implemented subset): alpha.dagger.io/europa/dagger/engine
  • Development import path (full spec): alpha.dagger.io/dagger/europa/dagger/engine/spec/engine

engine is a low-level API for accessing the raw capabilities of the Dagger Engine. Most developers should use the Dagger Core API instead (dagger.io/dagger), but experts and framework developers can target the engine API directly for maximum control.

This API prioritizes robustness, consistency, and feature completeness. It does NOT prioritize developer convenience or leveraging Cue for composition.

In Europa, engine will deprecate the following implicit API:

  • Low-level operations defined in alpha.dagger.io/dagger/op
  • Imperative DSL to assemble Dockerfile-like arrays as Cue arrays
  • Convention to embed pipelines in the Cue lattice with the special nested definition #up
  • Convention to reference filesystem state from the Cue lattice with @dagger(artifact)
  • Convention to reference external secrets from the Cue lattice with @dagger(secret)
  • Convention to reference external network endpoints from the Cue lattice with @dagger(stream)
  • Convention that some operations (specifically op.#Local) are meant to be generated at runtime rather than authored manually.