Commit Graph

79 Commits

Author SHA1 Message Date
Andrea Luzzardi
74e084944e compiler cleanup
Now using the same pattern as Go's http package.

- the `compiler.Compiler` struct can be used directly (and tests to do
  to avoid messing with the global version)
- `compiler.DefaultCompiler` contains a public default Compiler instance
- `compiler` exposes proxy functions (e.g. Compile) back to the
  DefaultCompiler

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-17 10:26:38 -08:00
Andrea Luzzardi
5ba6dd1617 embedded stdlib
This PR embeds the stdlib into the dagger binary itself for convenience.
Long term we will want to source the stdlib directly from git.

- Updated go to 1.16 to use the new built-in embedding functionality
- The `stdlib` go package now contains an embed of the stdlib

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-17 10:08:56 -08:00
Andrea Luzzardi
31f1cd9f1d
Merge pull request #119 from dagger/small-cleanup
Small cleanup
2021-02-16 14:41:18 -08:00
Solomon Hykes
be8f600c59 dagger/cc: remove locking methods from public API
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-13 17:40:21 +00:00
Solomon Hykes
bff4186bf4 dagger compute auto-fetches standard library from external repo
- Standard library is hosted at github.com/blocklayerhq/dagger-stdlib
- When dagger repo is made public, stdlib can be hosted from same repo
- Vendored cue.mod is merged with stdlib at file granularity
- When developing dagger, set DAGGER_DEV_STDLIB to a local stdlib
  directory

Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-12 23:31:13 +00:00
Solomon Hykes
e8527ddcf5 No more runtime spec validation
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-12 23:30:46 +00:00
Solomon Hykes
acba8b3988 Simplify runtime code by removing layers of abstraction
- Remove intermediary types `Component`, `Script`, `Op`, `mount`: just use
  `cc.Value` directly
- Remove `Executable` interface.
- Execute llb code with a simple concrete type `Pipeline`
- Analyze llb code with a simple utility `Analyze`

Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-12 22:20:20 +00:00
Andrea Luzzardi
3718749db5 re-enable spec generation
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-10 18:43:07 -08:00
Andrea Luzzardi
7cbce4eec1
Merge pull request #108 from verdverm/mount-path
support path option in script/component mounts
2021-02-09 12:51:14 -08:00
Tony Worm
8de7a47b8d support path option in script/component mounts
Signed-off-by: Tony Worm <tony@hofstadter.io>
2021-02-09 15:00:23 -05:00
Solomon Hykes
781b89e41c Simplify op.go by removing unnecessary cue validations
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-08 15:10:32 -08:00
Solomon Hykes
612a25fb9f Simplify code by moving polyfill cue compiler to sub-package cc
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-08 15:10:32 -08:00
Solomon Hykes
622de21883 {do:"subdir"} to select a subdirectory in a script
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-05 15:27:37 -08:00
Solomon Hykes
0202f4447b Don't instantiate a global shared Env in cmd/compute.go
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-05 15:27:19 -08:00
Solomon Hykes
0fe2ef4fe4 Simplify Env API: Compute/Components instead of Compute/Walk
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-05 15:27:19 -08:00
Andrea Luzzardi
5b7bc78cf1
Merge pull request #104 from blocklayerhq/mnt-cache
mount cache support
2021-02-05 15:18:32 -08:00
Andrea Luzzardi
b0294e79d1 solver: trace LLB
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-05 15:14:45 -08:00
Andrea Luzzardi
f336164699 mount cache support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-05 15:08:44 -08:00
Solomon Hykes
b30febc7c2 Fix out-of-the-blue linter errors
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-02-03 12:39:25 -08:00
Andrea Luzzardi
c6e010d4f0 Misc Export fixes
- Temporarily disable export of base.cue as it causes merge errors at
  the end of compute
- Fixes for JSON export for Scalar and Lists
- Add YAML export
- Removed BOOL and NUMBER support, using JSON for now
- Re-enabled all export tests

Fixes #36

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-02 16:19:46 -08:00
Andrea Luzzardi
86aa031f92 fix concurrency issues in Compiler.Compile and Value.Source
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-02 13:52:52 -08:00
Andrea Luzzardi
cd0f21dbd2 client: simplify Compute logic
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-02 12:32:22 -08:00
Andrea Luzzardi
c9e0d0854d client: remove unused printer
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-02 11:12:24 -08:00
Andrea Luzzardi
167edf4a76 simplify: remove compute.go
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-02 11:03:12 -08:00
Andrea Luzzardi
6e31193d64
Merge pull request #87 from blocklayerhq/input-ux
Better ux for inputs
2021-02-02 10:45:48 -08:00
Andrea Luzzardi
78601fefd6 fix dependencies between tasks
due to using an old snapshot of cue.Value, components relying on
dependent tasks were failing because of non-concretness.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-02 10:31:52 -08:00
Solomon Hykes
1954c3f731 dagger compute [--input-dir TARGET=DIR] [--input-string TARGET=STRING] [--input-cue CUE] [--input-git REMOTE#REF]
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-31 22:48:30 -08:00
Dan POP
23a1211cdf Update gen.sh to remove redundant error check
cue eval spec.cue >/dev/null removed (redunant per @shykes)

Signed-off-by: Dan POP <dan.papandrea@sysdig.com>
2021-01-28 22:38:38 -08:00
Solomon Hykes
c4e55a6915 Refactor how client prepares environment. Inputs may now reference local directories
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-28 19:29:57 -08:00
Solomon Hykes
a26b767780 Fix bug in localdir (optional fields in spec not supported)
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-28 19:29:57 -08:00
Solomon Hykes
3e5063828a Fix bug in exec/mount
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-28 19:29:57 -08:00
Andrea Luzzardi
cc5a48d39b
Merge pull request #76 from blocklayerhq/output-no-merge
output: merge base/input/output into a single state.cue
2021-01-26 16:53:32 -08:00
Solomon Hykes
f933278d43 Fix spec validation & merge so that default values are correctly applied
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-26 16:52:14 -08:00
Andrea Luzzardi
04526b5b78 output: merge base/input/output into a single state.cue
Exporting base/input/output separately causes merge errors.
For instance, `foo: string | *"default foo"` gets serialized as
`{"foo":"default foo"}`, which will fail to merge if output contains
a different definition of `foo`.

This change temporarily merges the 3 streams together before
serializing.

Fixes #51

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-26 12:12:42 -08:00
Andrea Luzzardi
75fbddf6be op: exec: fix dir
Fixes #30

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-25 16:19:20 -08:00
Solomon Hykes
e10025d688 Refactor op/script/component loading and spec validation
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-25 11:36:18 -08:00
Solomon Hykes
bbe16283ab Incremental cleanup: wrap env instance in a Value
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-25 11:36:18 -08:00
Solomon Hykes
795b7f585c Clean up client config. Preparation for fixing local dir issues
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-22 17:15:22 -08:00
Solomon Hykes
eab6028b70 Replace Fillable interface with a concrete wrapper
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-21 23:46:58 -08:00
Andrea Luzzardi
2ee27e83f3
Merge pull request #65 from blocklayerhq/fix-value-json
Fix bug in Value.JSON(), with regression test
2021-01-21 15:52:16 -08:00
Solomon Hykes
7322ed1aa4 Fix bug in Value.JSON(), with regression test
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-21 15:27:09 -08:00
Solomon Hykes
91654ba786 Unit tests to reproduce issue #19 and narrow down root cause.
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-01-21 15:24:00 -08:00
Andrea Luzzardi
007b10f455 explicit log message when failing to Fill
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-21 12:16:10 -08:00
Andrea Luzzardi
b59c020631
Merge pull request #58 from blocklayerhq/buildkit-errors
cleanup buildkit errors everywhere
2021-01-20 18:23:25 -08:00
Andrea Luzzardi
a9698ccd18
Merge pull request #57 from blocklayerhq/clean-abort-non-concrete
script: abort execution with a warning when the op is not concrete
2021-01-20 18:06:32 -08:00
Andrea Luzzardi
0381c58d80 cleanup buildkit errors everywhere
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-20 18:05:40 -08:00
Andrea Luzzardi
4edc5764e5 script: abort execution with a warning when the op is not concrete
Fixes #28

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-20 17:34:15 -08:00
Andrea Luzzardi
41515c931e dagger.Value: make compiler instance private
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-20 16:13:33 -08:00
Andrea Luzzardi
d22326b512 export: log exported value
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-20 13:03:28 -08:00
Andrea Luzzardi
644713e3f9 spec: simplify signature
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-01-20 13:01:45 -08:00