#github-feed
1 messages · Page 24 of 1
Bumps sass from 1.42.1 to 1.43.2.
Release notes
Sourced from sass's releases.
Dart Sass 1.43.2
To install Sass 1.43.2, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Improve the error message when the default namespace of a @use rule is not a valid identifier.
See the full changelog for changes in earlier releases.
Dart Sass 1.43.1
To install Sass 1.43.1, download one of...
Bumps golang.org/x/mod from 0.4.2 to 0.5.1.
Commits
49f84bc [release-branch.go1.17] modfile: in SetRequireSeparateIndirect, convert lines...
57376c6 [release-branch.go1.17] modfile: in SetRequireSeparateIndirect, arrange requi...
0f08993 modfile: add SetRequireSeparateIndirect
22458ad modfile: factor out methods for changing Require properties
9eb10b1 modfile: make marking for removal a method on Line instead of FileSyntax
6e4e729 modfile: clean up SetRequir...
Getting an error:
9:24PM ERR load.save | failed: ResourceExhausted: trying to send message larger than max (53984186 vs. 16777216) duration=1.7s
9:24PM FTL system | failed to up environment: task failed: ResourceExhausted: trying to send message larger than max (53984186 vs. 16777216)
Signed-off-by: Richard Jones
Bumps @docusaurus/core from 2.0.0-beta.6 to 2.0.0-beta.7.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.7 (2021-10-15)
:rocket: New Feature
docusaurus-module-type-aliases, docusaurus
#5683 feat: make Translate children optional (@lex111)
docusaurus-theme-classic, docusaurus-theme-common
#5674 polish(theme-classic): guard against potential definition mistakes in Tabs (@Josh-Cena)
#5618 feat: ...
Signed-off-by: jffarge
Signed-off-by: jffarge
Signed-off-by: Andrea Luzzardi
Issue
To support the multi-architecture with Dagger and solve #106, it's necessary to improve the engine to handle other architecture than the remote one.
Here's a repro case to understand the problem
My computer supports amd64 so we got the following output :
package main
import (
"alpha.dagger.io/dagger/op"
)
// Alpîne amd64
amd64: #up: [
op.#FetchContainer & {
ref: "docker.io/library/alpine:latest@sha256:69...
Bumps @docusaurus/core from 2.0.0-beta.6 to 2.0.0-beta.8.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.8 (2021-10-21)
:rocket: New Feature
docusaurus-plugin-content-blog
#5702 feat(content-blog): new readingTime plugin option (@Josh-Cena)
docusaurus
#5740 feat(core): write-heading-ids options maintainCasing, overwrite (@Josh-Cena)
docusaurus-plugin-content-docs
#5705 feat(content-docs): ...
Update dagger engine to use a given architecture instead of the default one.
Solve #1071
Signed-off-by: Tom Chauveau
Bumps sass from 1.42.1 to 1.43.3.
Release notes
Sourced from sass's releases.
Dart Sass 1.43.3
To install Sass 1.43.3, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Improve performance.
See the full changelog for changes in earlier releases.
Dart Sass 1.43.2
To install Sass 1.43.2, download one of the packages below and add it to your PATH, or see the Sass website for ful...
- Implemented proper logging in git transfer code
- Implemented version selection for mods install and updates (add version constraints to a package)
- Lock version of
alpha.dagger.ioto the latest0.1.xversion (will not break current dagger installs when upgrading stdlib to "> 0.1") - Required unit tests
Remote universe vendoring is still disabled but enabling it will be one-liner. This PR does not impact the user.
Separate CUE scopes for executable (“what”) and invocation (“how”)
Context
This is a written follow-up to a live conversation with @talentedmrjones. In that conversation we agreed on the following:
- Under the hood,
dagger upinvolves two distinct components: thedaggerclient which compiles a CUE plan to LLB code and invokes its execution by builtkid; and thebuildkitddaemon which actually executes the code. - The defining feature of Dagger (at least according t...
I noticed in the Dagger documentation it explains that input values need to be provided at runtime because the "package system could be a source of attacks."
https://docs.dagger.io/1003/get-started/#define-input-values-per-environment
Could I get a bit more detail on how/why the package system is an attack vector, perhaps with some examples? Is it, for instance, dangerous to have a specially designated 'secrets.cue' file that is evaluated along with the rest of the package at runtime, and...
Dagger currently supports a secure implementation for secrets but we are working on a new interface for all inputs. As for packages being an attack vector imagine if I write a series of components that claim to do something, and perhaps they actually do, but they also siphon arbitrary (potentially sensitive files) from your Dagger host and send them back to me without you realizing. I could write a component that connects to your local docker daemon and uses it to launch crypto mining sof...
Bumps cypress from 8.6.0 to 8.7.0.
Release notes
Sourced from cypress's releases.
8.7.0
Released 10/25/2021
Features:
There are changes to how "slow" tests are determined and displayed in Cypress.
Addresses #18496.
Added a slowTestThreshold
configuration option to customize when tests are considered "slow" during
cypress run. A test that runs slower than the given threshold will display
in orange text in the default 'spec' repor...
Bumps sass from 1.43.3 to 1.43.4.
Release notes
Sourced from sass's releases.
Dart Sass 1.43.4
To install Sass 1.43.4, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
JS API
Fix a bug where the logger option was ignored for the render() function.
See the full changelog for changes in earlier releases.
Changelog
Sourced from sass's changelog.
1.43.4
JS API
Fix a bug whe...
In an effort to very clearly define and enforce a separation of concerns between code and data, between what is to be executed and how to execute I propose the following. In come cases a user may have predefined data that is always used for a particular plan and they want to include that in the same repo and track changes. In other cases different machines may pull the same data from different sources (env var vs remote stores, aws config vs aws-vault, etc). In other cases the data may be...
Overall this feels like the right direction just want to weigh in on some finer details such as Plan keys, their names and usage:
archglad to see this come back :) it makes sense hereparamsremind me how is this used? how is it filled?sourcewhy?environmentshould be required. Partly for unambiguous log messages, partly for the relationship to state management, and because directory and file names aren't reliable sources for this valueruntimeis to be filled b...
Also, so we don't lose this particular point: we should force a package name for the project. It will make loading files simpler, make it clear to the user that their CUE files are meant to be used by Dagger, and allow them to colocate other packages. Either way we are forcing something on the user:
- If we allow arbitrary package names, we force them to put other packages in other directories
- If we allow colocation of non-Dagger packages (stax, grafana, etc) we either
- force a pack...
Bumps amplitude-js from 8.8.0 to 8.9.0.
Release notes
Sourced from amplitude-js's releases.
v8.9.0
8.9.0 (2021-10-28)
Features
eu dynamic configuration support (#439) (0618a90)
Changelog
Sourced from amplitude-js's changelog.
8.9.0 (2021-10-28)
Features
eu dynamic configuration support (#439) (0618a90)
Commits
57a47ca chore(release): 8.9.0 [skip ci]
0618a90 feat: eu dynamic configuration support (#439)
87e3a64 chore: switched ...
Bumps go.opentelemetry.io/otel/sdk from 1.0.1 to 1.1.0.
Release notes
Sourced from go.opentelemetry.io/otel/sdk's releases.
Release v1.1.0
Added
Add the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)
Add the go.opentelemetry.io/otel/semconv/v1.7.0 package.
The package contains semantic conventions from the v1.7.0 version of th...
Bumps go.opentelemetry.io/otel from 1.0.1 to 1.1.0.
Release notes
Sourced from go.opentelemetry.io/otel's releases.
Release v1.1.0
Added
Add the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)
Add the go.opentelemetry.io/otel/semconv/v1.7.0 package.
The package contains semantic conventions from the v1.7.0 version of the OpenTe...
Bumps go.opentelemetry.io/otel/trace from 1.0.1 to 1.1.0.
Release notes
Sourced from go.opentelemetry.io/otel/trace's releases.
Release v1.1.0
Added
Add the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)
Add the go.opentelemetry.io/otel/semconv/v1.7.0 package.
The package contains semantic conventions from the v1.7.0 version o...
Bumps go.opentelemetry.io/otel/exporters/jaeger from 1.0.1 to 1.1.0.
Release notes
Sourced from go.opentelemetry.io/otel/exporters/jaeger's releases.
Release v1.1.0
Added
Add the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)
Add the go.opentelemetry.io/otel/semconv/v1.7.0 package.
The package contains semantic conventions fro...
TL;DR
- Update
checkVersionto also check universe.
Changes
In the future, universe will not be embedded anymore in dagger,
instead, it will be remotely vendor from dagger/universe repository.
To make sure that users always use the latest universe version, the
version checking now also verifies that universe is not outdated.
If universe needs an update, a message is printed to standard output.
Signed-off-by: Tom Chauveau
Since much of this thread has been incorporated into the proposal, I will:
- Hide this thread for clarity
- Open a new thread with outstanding questions and suggestions
- Rebase outstanding questions and suggestions by @talentedmrjones and @sdboyer from this thread to the new one (mandatory package name, source directory, buildkit etc)

We are getting closer :)
Here is my list of outstanding questions and comments, and an example to wrap it all it up.
Outsdanding questions and comments
Convention for Cue package name
Dagger should define the following convention for use of the package clause in Cue files:
- All cue files in your Dagger project should define a package with the
packageclause - The convention is to use
mainas the package name - Expert Cue developers may break from this convention...
Environment field
By default, a plan is single-tenant: there is no need to think about environments since there is only one implicit environment.
A project may have many distinct plans, (dev, stage, prod, uat, pre-prod, etc) and even though they may share common config, it makes sense to require that they each be uniquely identified. The path and filename is not enough since they could change, multiple files could be involved, or they could be named in a way that does not directl...
more later, I need to go for a walk
Feeback
Buildkit host configuration
I am not strongly opposed to adding the buildkit configuration, but wondering if it really belongs there.
I think we shouldn't add buildkit configuration directly in plan's files. A plan defines a pipeline that will be processed by dagger engine working with buildkitd.
IMO if a user wants to add some configuration on buildkit, that should be done with the CLI or through a file external to the plan.
That has no sense to mix th...
@samalba can you weigh in on buildkit config? I recall you seemed to think it makes sense in the plan for various reasons.
My take is that if the setting is external, then 1) you add complexity in loading that separate config, and 2) its global meaning that all plans use the same buildkit config, but that is not flexible. In cases where a user has multiple plans, say local and prod I can easily imagine wanting to config my local plan to use a Dagger-installed buildkit daemon on my lo...
Taking a step back. At this point there are various minor / cosmetic points to discuss (see my other comment for a non-exhaustive list). But there is a more pressing issue we should address first: what does a complete working plan look like? In particular when developing an action, say “deploy to netlify”, what does the package code look like, and how does it change the DX compared to today?
I would prefer that we prioritize getting a clear answer on the DX, rather than debating minor poin...
Bumps cypress-localstorage-commands from 1.5.0 to 1.6.0.
Release notes
Sourced from cypress-localstorage-commands's releases.
Support NodeJS v17
Changed
chore(deps): Update devDependencies
chore(deps): Support any NodeJs version greater than 10.x
Changelog
Sourced from cypress-localstorage-commands's changelog.
[1.6.0] - 2021-11-01
Changed
chore(deps): Update devDependencies
chore(deps): Support any NodeJs version greater...
- you add complexity in loading that separate config
I'm not sure is that complex, it's just an optional file like you can have a .prettierc for javascript or .XXXX for any framework that requires a config file.
We will win in clarity and that embrace the Single Responsibility Principle.
- its global meaning that all plans use the same buildkit config, but that is not flexible. In cases where a user has multiple plans, say local and prod I can easily imagine wanting to conf...
Follow-up of merging https://github.com/dagger/dagger/pull/1074
On the todoapp example, it gives me this error on push.
Not sure the root cause since the docker.#Push hasn't change, it seems that the default arch is no more set on the pushed image.
Placeholder issue to track the implementation of the proposal #1058
Addresses the following issues:
- [ ] #783
- [ ] #966
- [ ] #793
- [ ] #970
This aims to simplify the getting started and the overall use of local containers.
Bumps amplitude-js from 8.8.0 to 8.9.1.
Release notes
Sourced from amplitude-js's releases.
v8.9.1
8.9.1 (2021-11-02)
Bug Fixes
allow amplitude to be imported/required during SSR (#436) (ff7d8ef)
v8.9.0
8.9.0 (2021-10-28)
Features
eu dynamic configuration support (#439) (0618a90)
Changelog
Sourced from amplitude-js's changelog.
8.9.1 (2021-11-02)
Bug Fixes
allow amplitude to be imported/required during SSR (#436) (ff7d8ef)
8.9.0...
Bumps google.golang.org/grpc from 1.41.0 to 1.42.0.
Release notes
Sourced from google.golang.org/grpc's releases.
Release 1.42.0
Behavior Changes
grpc: Dial("unix://relative-path") no longer works (#4817)
use "unix://absolute-path" or "unix:relative-path" instead in accordance with our documentation
xds/csds: use new field GenericXdsConfig instead of PerXdsConfig (#4898)
New Features
grpc: support grpc.WithAuthority when...
Bumps @docusaurus/core from 2.0.0-beta.6 to 2.0.0-beta.9.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.9 (2021-11-02)
:rocket: New Feature
docusaurus-theme-classic, docusaurus-theme-common
#5770 feat(theme-classic): allow specifying width/height in logo (@cerkiewny)
docusaurus-types, docusaurus
#5841 feat: allow user to specify deploymentBranch property in docusaurus.config.js (@wpyoga)
d...
Intro
In its current state, this is more of a brain dump with a straw man proposal rather than a full fledged proposal. Just enough to get some ideas bouncing.
Background
Currently, the concept of computation (e.g. a set of compute operations) and data (e.g. the resulting filesystem from the computation) are mixed together as a single concept, dagger.#Artifact with an open definition:
// An artifact such as source code checkout, container image, binary arch...
Bumps github.com/containerd/containerd from 1.5.4 to 1.5.7.
Release notes
Sourced from github.com/containerd/containerd's releases.
containerd 1.5.7
Welcome to the v1.5.7 release of containerd!
The seventh patch release for containerd 1.5 is a security release to fix CVE-2021-41103.
Notable Updates
Fix insufficiently restricted permissions on container root and plugin directories GHSA-c2h3-6mxw-7mvq
See the changelog for complete list of changes...
Overall I like it, it's more explicit (for instance: referencing the .fs key instead of the bare component key).
However we should be careful with root definitions:
For example, instead of:
#Directory: {
@dagger(directory)
id: string
}
I would do:
#Directory: {
@dagger(directory)
directoryID: string
}
Without it, #Secret and #Directory are likely to have the same definition keys and it won't be possible to use indections such as `myKey: #S...
Given dagger.#Pipeline is now closed, do we still need #up to be a def? I guess not, we could simply rename it to up.
(Maybe it allows to differentiate 2 pipelines in cue by their list of Ops. Example: myKey: yarn.#Pipeline | node.#Pipeline. If #up is a def, it cannot be taken into account in an indirection.)
@samalba can you weigh in on buildkit config? I recall you seemed to think it makes sense in the plan for various reasons.
Sorry for the delay, I was digesting the whole thread. Thinking about the buildkit config in the plan or not. Overall we only need info that we can act upon (i.e. Architectures supported and OS are useful and needed in the plan). The buildkit host needs to be configurable by the Ops (who setup the CI infra), but not necessarily the developer of a Plan (note that it c...
PR #934 broke remote packages. This is a one-liner that fixes it. We'll need to add more tests to spot those issues.
I added a new point: 8. Hidden fields API.
Intro
With #1087, it's now possible to config one architecture when you run a pipeline.
The aim is to improve that to :
- Add another layer of configuration that targets one pipeline and not the whole plan.
- Specify architecture directly in cue
- Manage multiple architectures in a single plan.
This way, we will be able to :
- Build & push multi-architecture images and then resolve dubo-dubon-duponey/docker-images#11
- Create multi-arch CI/CD for multi-platform applicatio...
That looks smooth, the more we type our cue and pipeline, the more it's safe and easy to use.
There are a couple alternative DX here:
- Merging
- Wrapping (disclaimer: my favorite so far)
- Embedding (is it possible?)
I think wrapping or embedding is the best solution, it feels more natural and we can understand what happens in a single reading.
Given dagger.#Pipeline is now closed, do we still need #up to be a def? I guess not, we could simply rename it to up....
Changes
@samalba told me that using arch was a language abuse because we currently handle platform (OS/arch).
- Changed
archintoplatformbecause it's more accurate.
Signed-off-by: Tom Chauveau
This is a draft of possible stdlib, as discussed today. Not meant to merge as is!
Fixes #823
cc @xinity @SonnyAD @grouville
@shykes as far as I'm aware things should be working with hidden fields. e.g.
go mod tidy
go run main.go
cmp stdout stdout.golden
-- cue.mod/module.cue --
module: "mod.com"
-- go.mod --
module mod.com
go 1.16
require cuelang.org/go v0.4.0
-- main.go --
package main
import (
"fmt"
"cuelang.org/go/cue"
"cuelang.org/go/cue/cuecontext"
"cuelang.org/go/cue/load"
)
func main() {
ctx := cuecontext.New()
bps := load.Instances([]string{"."}, nil)
v := ctx...
I didn’t realize that cue.Hid already existed! That looks like it will solve our issue. We’ll confirm asap. Thanks!
cc @aluzzardi @samalba
Regarding a live conversation with @shykes @samalba @aluzzardi and @jlongtine as it relates specifically to context: env, context: settings, as well as context in general.
@shykes raised a good point that context: env: is inherently opinionated in that it assumes that values even come from environment variables to begin with and proposed an alternative with context: settings: (or context: params:) with the values being filled by command line flags. While this technically works ...
In the documentation the specified path for the source.cue indicates
it under the cue.mod folder, meanwhile everything is set up outside of
it. Puting the source.cue file in its specified folder resulted in the
example not working, meanwhile puting it in the gcpcloudrun folder
directly resulted in the example perfectly working
Signed-off-by: Benjamin Reigner
It appears that when I connect to my private registry for a build, I get an unauthorized response unless the target includes a repo (even if it doesn't exist).
package main
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/dagger/op"
)
#Auth: {
target: dagger.#Input & {string}
username: dagger.#Input & {string}
secret: dagger.#Input & {dagger.#Secret | string}
}
// Add `auths` to `docker.#Build`
#Build: {
source: dagger.#Input & {dagger.#A...
How would an invocation script (say github actions) pass contextual information to the plan? Are we back to requiring that scripts generate cue files at runtime?
Signed-off-by: jffarge
When trying to implement the #graphQL package with @slumbering, and using the docker.#Run package with a local registry, we encountered dependency issues related to the fact that docker.#Run cannot expose an URL on which a dependency could be created:
// run our local registry
registry: docker.#Run & {
ref: "registry:2"
name: "registry-local"
ports: ["5042:5000"]
socket: dockerSocket
url: "localhost:5042/graphql"
}
push: docker.#Push & {
target:...
A checklist of things we should consider as we progress towards #1058 & #1095 ([as discussed on Discord here](#dev message))
cue performance, faulty dependency detection, broken cue type checking, broken buildkit caching, cue cycles
- [ ] CUE performance
- [ ] faulty dependency detection/Loss of dependencies in
cue/flow? - [ ] "Death by recursion" - @aluzzardi
- [ ] Recursive CUE Definitions
- [ ] Some...
Bumps github.com/moby/buildkit from 0.9.1 to 0.9.2.
Release notes
Sourced from github.com/moby/buildkit's releases.
v0.9.2
https://hub.docker.com/r/moby/buildkit
Notable changes
Fix handling authentication requests with multiple scopes #2431
Fix a possible deadlock when pushing items from one registry to another #2403
Fix issues with concurrent cache export requests #2410
Fix handling external blob deletions when reexporting cache with Github Actions bac...
Bumps github.com/rs/zerolog from 1.23.0 to 1.26.0.
Commits
6973188 Add support for dicts in array (#375)
78448ee New TestWriter for logging to testing.TB (#369)
197adb4 Bump golang.org/x/tools from 0.1.5 to 0.1.7 (#370)
07d347e Update zerologr url (#364)
6f8a5f9 Add Stringers support (#360)
9b9fc5c Update zerologr url (#359)
65adfd8 Make Fields method accept both map and slice (#352)
cdd7417 Allow arbitrary negative levels (#350)
fe93100 Make RemoteAddrHandl...
Currently, most examples work out of the box on Windows, unless the config requires access to the local docker socket (eg. "Getting started" from the docs).
We need to implement npipe support for Windows so the client can proxy \\.\pipe\docker_engine (host) to /var/run/docker.sock (WSL).
This last change should unblock all windows users with a decent support as soon as it's released.
Assigning to myself.
Bumps remark-code-import from 0.3.0 to 0.4.0.
Commits
12ae711 0.4.0
e9d7928 Add removeRedundantIndentations
8ea2372 Add github actions
17b49c6 Add preserveTrailingNewline
165c5d5 Update testing guide
See full diff in compare view
[...
In preparation of validating the improved Core Type System https://github.com/dagger/dagger/pull/1102, here's a recollection of problems we've had with the current runtime due to nesting.
What is nesting?
Nesting is the practice of passing data from a pipeline to another by referencing the pipeline itself.
For instance, an #Artifact (a compute pipeline, e.g. something with #up) can mount another #Artifact by passing a reference to it:
a: #up: [
op.#FetchContai...
llb2 is a low-level API to assemble and run buildkit DAGs in Cue.
It aspires to replace the low-level API currently used by Dagger, which we refer to as “llb1”.
What is llb1?
Wewill refer to the current low-level API as “llb1” even though there is no actual package with that name. “llb1” is an implicit API which includes:
- Low-level operations defined in
alpha.dagger.io/dagger/op - Imperative DSL to assemble Dockerfile-like arrays as Cu...
This is multiple problems, very possibly related, found by @kzap while following the getting started tutorial.
Problem #1: no secret keys
For some reason, the keys.txt file was corrupted (missing the key information):
$ dagger new local -p ./plans/local
9:16PM FTL system | failed to create environment: failed to parse input: no secret keys found
$ cat ~/.config/dagger/keys.txt
# created: 2021-11-09T21:03:15-05:00
Problem #2: Panic on dagger init
...
Reverts dagger/dagger#1085
See #1118
Bumps github.com/docker/buildx from 0.6.2 to 0.7.0.
Release notes
Sourced from github.com/docker/buildx's releases.
v0.7.0-rc1
Welcome to the 0.7.0-rc1 release of buildx!
This is a pre-release of buildx
Please try out the release binaries and report any issues at
https://github.com/docker/buildx/issues.
Notable Changes
TLS certificates from BuildKit configuration are now transferred to build container in container and kubernetes drivers #787
Allow using ...
It took me a while to figure this out (no CI on Windows yet!).
This typo got introduced during the build split before the alpha.28 release...
Changes
Improve #1085 to fix topics 2 and 3 from #1118.
Thanks for adding Trivy, first of all!
When trivy reports vulnerabilities, there's a loop in the output that you can see in this video.
This does not happen with --log-format plain, and if the check passed.
I don't really think there is an issue with dagger, it could be my understanding of CUE.
I know the following example looks silly, but I'm trying to use the basis of this structure in a definition for a more complex scenario and this is where it's failing:
package main
import (
"alpha.dagger.io/os"
)
one: os.#Container & {
image: os.#Container // `os.#DefaultImage` works
command: "touch /one"
}
two: os.#Container & {
image: one // is this empty?
...
Bumps cypress-localstorage-commands from 1.6.0 to 1.6.1.
Release notes
Sourced from cypress-localstorage-commands's releases.
Support Cypress >=2.1.0
Changed
chore(#382): Use Cypress v9 in E2E tests
chore(#382): Support any Cypress version greater than 2.1.0
chore(deps): Update devDependencies
Changelog
Sourced from cypress-localstorage-commands's changelog.
[1.6.1] - 2021-11-11
Changed
chore(#382): Use Cypress v9 in E...
I'm not being able to run a local registry.
// dagger.cue
package main
import (
"alpha.dagger.io/docker"
"alpha.dagger.io/dagger"
)
dockerSocket: dagger.#Stream & dagger.#Input
registry: docker.#Run & {
ref: "registry:2"
name: "registry-local"
ports: ["5042:5000"]
socket: dockerSocket
}
$ dagger input socket dockerSocket /var/run/docker.sock
$ drupal dagger up
[✗] registry.run ...
Changes
Resolves #1099.
Todo
- [x] Improve
op.#DockerBuildto correctly handleplatform - [x] Improve
op.#FetchContainerto support fetch from selected platform - [ ] Improve
op.#PushContainerto push multi-platform images - [ ] Update
dockerpackage to supports new features - [ ] Write a working example to test it
Issues
I currently have an issue when using op.#Load on something built in a platform different than the one configured in values.yaml.
...
Bumps cypress from 8.7.0 to 9.0.0.
Release notes
Sourced from cypress's releases.
9.0.0
Released 11/10/2021
Breaking Changes:
The nodeVersion configuration option now defaults to system. The behavior
of the system option has changed to always use the Node.js binary/version
that launched Cypress. If Cypress was not launched via the terminal, Cypress
will use the bundled Node.js version. This could change the behavior of code
within your pluginsFile s...
Bumps go.opentelemetry.io/otel/trace from 1.1.0 to 1.2.0.
Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.
[1.2.0] - 2021-11-12
Changed
Metric SDK export.ExportKind, export.ExportKindSelector types have been renamed to aggregation.Temporality and aggregation.TemporalitySelector respectively to keep in line with current specification and protocol along with built-in selectors (e.g., aggregation.CumulativeTemporalitySele...
Bumps go.opentelemetry.io/otel/exporters/jaeger from 1.1.0 to 1.2.0.
Changelog
Sourced from go.opentelemetry.io/otel/exporters/jaeger's changelog.
[1.2.0] - 2021-11-12
Changed
Metric SDK export.ExportKind, export.ExportKindSelector types have been renamed to aggregation.Temporality and aggregation.TemporalitySelector respectively to keep in line with current specification and protocol along with built-in selectors (e.g., aggregation.Cum...
Bumps go.opentelemetry.io/otel from 1.1.0 to 1.2.0.
Changelog
Sourced from go.opentelemetry.io/otel's changelog.
[1.2.0] - 2021-11-12
Changed
Metric SDK export.ExportKind, export.ExportKindSelector types have been renamed to aggregation.Temporality and aggregation.TemporalitySelector respectively to keep in line with current specification and protocol along with built-in selectors (e.g., aggregation.CumulativeTemporalitySelector, ...). ...
Bumps go.opentelemetry.io/otel/sdk from 1.1.0 to 1.2.0.
Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.
[1.2.0] - 2021-11-12
Changed
Metric SDK export.ExportKind, export.ExportKindSelector types have been renamed to aggregation.Temporality and aggregation.TemporalitySelector respectively to keep in line with current specification and protocol along with built-in selectors (e.g., aggregation.CumulativeTemporalitySelector...
Addresses an item in #621 Explain the different between a Cue builtin and a definition (native Cue vs dagger stdlib)
Signed-off-by: Richard Jones
Signed-off-by: Andrea Luzzardi
One of the main dagger attractions for us is the ability to reuse company conventions across a multitude of projects via installable packages.
Please add support for installing cue files from private git repositories. We are using a self-hosted Bitbucket instance, but will migrate to self-hosted Gitlab in the future, so if both are supported, that would be great.
The Bitbucket clone urls look like this:
ssh://git@git.example.net:7999//.git(notice non-standard port)- `https://...
Fix docker login to different registries in docker command
Signed-off-by: Alvise88
Bumps concurrently from 6.3.0 to 6.4.0.
Release notes
Sourced from concurrently's releases.
v6.4.0
Add --hide flag to hide the output of specified commands (#138, #173)
Commits
0da5d93 6.4.0
66ed4bf Simplify .gitignore
475fb53 Optimise .editorconfig
88b8d19 Add option and CLI flag to hide command output (#173)
See full diff in compare view
[
Features
custom library options and setter (#443) (dce0eac)
Changelog
Sourced from amplitude-js's changelog.
8.10.0 (2021-11-12)
Features
custom library options and setter (#443) (dce0eac)
Commits
f465bfa chore(release): 8.10.0 [skip ci]
dce0eac feat: custom library options and setter (#443)
See full diff in...
I added a new point: 9. Catch broken references to outside packages
CI of PR #1107 breaks and times out. This PR adds a time-out to one of the doc test + fixes a cleanup issue
Signed-off-by: guillaume
Bumps amplitude-js from 8.10.0 to 8.11.0.
Changelog
Sourced from amplitude-js's changelog.
8.11.0 (2021-11-16)
Bug Fixes
add missing setLibrary API to snippet distribution (#445) (ff44909)
Features
add esm entry point (#440) (3e98d50)
Commits
6d115b1 chore(release): 8.11.0 [skip ci]
ff44909 fix: add missing setLibrary API to snippet distribution (#445)
3e98d50 feat: add esm entry point (#440)
See full diff in compare view
[![...
This change helps the transition between dagger input and #Plan.context.
In summary, the codebase now relies on a context for execution with mapping to IDs.
In the future, context will come from a #Plan.context.
In the meantime, a bridge converts dagger input to a plan context. This allows both old and new style configurations to co-exist with the same underlying engine.
- Implement
plancontext. Context holds the execution context for a plan. Currently this includes the ...
Bumps amplitude-js from 8.11.0 to 8.11.1.
Changelog
Sourced from amplitude-js's changelog.
8.11.1 (2021-11-16)
Bug Fixes
Add missing setTransport API to snippet (#446) (355a05b)
Commits
4659419 chore(release): 8.11.1 [skip ci]
355a05b fix: Add missing setTransport API to snippet (#446)
See full diff in compare view
[, to mitigate the CVE-2021-41190 advisory.
This release is rebased directly on the prior tagged release (not including the commits that have occurred on main). Corresponding commits have been added to main, such that main is ready for...
As reported by @helderco:
The universe docker package and the low level op have different Auth APIs:
#Buildand#Pulllack auth altogether#Pushhasauthfield but with one less field (makes it impossible to pass the same auth to multiple targets as the definitions don't match)#Runhas its own definition in aregistryfield
- Ignore
dagger.lockfile in generated.gitignore - Delete
dagger.lockwhen releasing the local lock - Disabled failing test when pulling private repo (ssh error)
We should configure our Discord server to be a community server. This has the following effect:
- Unlocks new features for the server, including stage channels and (I think) events
- Anyone can join the server without requiring an invitation (I am not certain of this)
In order to enable the community server feature, there is a checklist to follow (see the link above).
Changes
dagger mod get doesn't need an environment anymore to work.
Previously, it was not possible to execute dagger mod get if no environment was set.
# Init dagger
dagger init
# Download universe
dagger mod get alpha.dagger.io
4:08PM FTL system | no environments
With this PR, it doesn't required an environment anymore
# Init
dagger init
# Download universe
dagger mod get alpha.dagger.io
4:10PM INF system | installing specified package...
Signed-off-by: sw360cab
Actually it is not possible to set a custom command for Docker.#Run, in the same way it is possible with the docker run command in the form docker run ... IMAGE CMD, in order to override the entrypoint of a pulled image.
In a CI/CD scenario this is particularly useful when building an image which afterward will be reused in different steps (eg. build, test-suite, doc building).
In Dagger a similar behaviour is possible using Os.#Container
...
Bumps github.com/containerd/containerd from 1.5.7 to 1.5.8.
Release notes
Sourced from github.com/containerd/containerd's releases.
containerd 1.5.8
Welcome to the v1.5.8 release of containerd!
The eighth patch release for containerd 1.5 contains a mitigation for CVE-2021-41190
as well as several fixes and updates.
Notable Updates
Handle ambiguous OCI manifest parsing (GHSA-5j5w-g665-5m35)
Filter selinux xattr for image volumes in CRI plugin (#51...
Bumps github.com/moby/buildkit from 0.9.2 to 0.9.3.
Release notes
Sourced from github.com/moby/buildkit's releases.
v0.9.3
Notable changes
Workaround for deadlock in containerd pusher #2461
Update containerd to 1.5.8 . Contains patch for CVE-2021-41190 #2470 #2462
Commits
8d26254 Merge pull request #2470 from tonistiigi/v0.9.3-picks
6d53896 imageutil: make mediatype detection more stricter
b145a2f vendor: update containerd to 1.5.8
29db1fe push: wor...
Bumps amplitude-js from 8.11.0 to 8.12.0.
Release notes
Sourced from amplitude-js's releases.
v8.12.0
8.12.0 (2021-11-18)
Features
add more interfaces for flutter web support (#444) (69c18f7)
update setLibrary api make it ignore the null value of name or version (#449) (8e0971e)
v8.11.1
8.11.1 (2021-11-16)
Bug Fixes
Add missing setTransport API to snippet (#446) (355a05b)
Changelog
Sourced from amplitude-js's changelog.
8.12.0 (2...
Thanks, @snow kayak!
The Docker daemon that I am using is running remotely, and I connect to it via Tailscale tunnel, which means that my DOCKER_HOST is set to tcp://100.113.182.91:2375.
This change makes Dagger work with my setup. It's been running well for me for a few weeks now, this started as https://github.com/thechangelog/changelog.com/pull/395
I think there is an opportunity to add support for ssh:// & file://, but I am keeping this first addition small on purpose.
Bumps cypress from 8.5.0 to 9.1.0.
Release notes
Sourced from cypress's releases.
9.1.0
Released 11/22/2021
Features:
A CYPRESS environment variable will be set to true in child processes where
Cypress runs user code in Node.js. You can now detect that you're running in
Cypress by looking for process.env.CYPRESS. Addresses
#18805.
Bugfixes:
Specs with % in the filename will no longer fail to load and now behave as any
other spec. Fixes
#18871.
Whe...
The current design of Dagger makes the implementation of a backward compatible control flows pretty hard.
This package is an equivalent of an healthcheck. It waits until a given url is ready.
We use that feature to reintroduce a dependency in the Cue Tree on that given url.
For example, when deploying a local container in docker, 90% of the time where want a dependency on that given container, it's because a server is present, and we want to query it.
This PR consists in 3 parts:
...
Thanks to viper, dagger supports shell auto-completion natively:
e.g.: dagger completion zsh
We should document it as it's a very low hanging fruit to improve the UX.
Bumps algoliasearch-helper from 3.4.4 to 3.6.2.
Changelog
Sourced from algoliasearch-helper's changelog.
3.6.2 - 2021-10-19
fix(SearchParameters): ignore invalid parameters (#880) https://github.com/algolia/algoliasearch-helper-js/commit/4ff542b70b92a6b81cce8b9255700b0bc0817edd
3.6.1 - 2021-10-15
fix(facetOrdering): make sure ordered facets is a dense array (#879) https://github.com/algolia/algoliasearch-helper-js/commit/990f8bc133dd3...
We are facing a small regression on Dagger lately: any package importing an unknown definition cannot be edited, listed...
package main
#test
would lead to:
dagger input list
11:57PM FTL system | unable to create environment
This is very blocking, as we don't know anything about the issue.
This PR fixes it:
dagger input list
11:58PM FTL system | unable to create environment: reference "#test" not found:
/tmp/test/main.cue:4:1
Si...
- New execution engine to support Europa (not Pipeline based anymore)
- Pipeline task: support old-style
#uppipelines using the new engine - Import task: support
context.imports - Secret File and Env tasks: support for context.secrets
- Pipeline task: support old-style
- Basic support for #Plan.Context
Bumps sass from 1.43.4 to 1.43.5.
Release notes
Sourced from sass's releases.
Dart Sass 1.43.5
To install Sass 1.43.5, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Fix a bug where calculations with different operators were incorrectly considered equal.
Properly parse attribute selectors with empty namespaces.
JS API
Print more detailed JS stack traces. This is mos...
Bumps @svgr/webpack from 5.5.0 to 6.0.0.
Release notes
Sourced from @svgr/webpack's releases.
v6.0.0
SVGR v6 uses SVGO v2 under the hood and includes tons of improvement. It also contains small breaking changes. In most cases you will have nothing to change. But be sure to check the migration guide.
Bug Fixes
fix XML entities in generated JavaScript (#553) (b3998eb)
formatExportName for single names (#548) (5decc94)
template: make it possible to use ty...
Signed-off-by: Sam Alba
Bumps sass from 1.43.5 to 1.44.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.44.0
To install Sass 1.44.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Suggest calc() as an alternative in /-as-division deprecation messages.
Dart API
Add SassNumber.convert() and SassNumber.convertValue(). These work like SassNumber.coerce() and SassNumber.coerceValue(), ex...
- Implement dagger.#FS support
- Migrate
context.importsto dagger.#FS - Backward compat: dagger.#FS can be passed in lieu of a
dagger.#Artifact - For instance, an import (
dagger.#FS) can be passed to the current
yarn.#Packageimplementation
- Refactored to keep every transformation of built-in types (e.g. FS,
Secret, etc) to/from CUE in the same place (plancontext) - dagger.#Service and dagger.#Secret are now following the new FS-like format
(e.g._service: id: string) - Backward compatibility
- dagger.#Stream is now an alias for dagger.#Service
When pushing a PR, the checks performed via Github Actions are failing for random reasons (eg. timeout), even if apparently the PR commit as nothing to due with that.
IMHO this requires extra effort for code reviewers, because they actually see that the PR is probably breaking the codebase, which in truth is not.
There is no way for the committer to run checks again in a clean way. One tricky workaround could be amending the commit related to PR and forcing a commit in order to run tasks ag...
Bumps amplitude-js from 8.12.0 to 8.13.0.
Release notes
Sourced from amplitude-js's releases.
v8.13.0
8.13.0 (2021-11-30)
Bug Fixes
add public method onNewSessionStart to snippet (#459) (07446fc)
upgrade to @amplitude/ua-parser-js@0.7.26 (#456) (8962604)
Features
add support for on new session start callback (#455) (acf596a)
Changelog
Sourced from amplitude-js's changelog.
8.13.0 (2021-11-30)
Bug Fixes
add public method onNewSe...
Bumps @svgr/webpack from 5.5.0 to 6.1.0.
Release notes
Sourced from @svgr/webpack's releases.
v6.1.0
Bug Fixes
fix previous export system (1872829), closes #635
Features
native: automatically convert inline style in native (138c493), closes #588
Performance Improvements
remove useless loader-utils package (387bc72), closes #631
v6.0.0
SVGR v6 uses SVGO v2 under the hood and includes tons of improvement. It also contains small breaking changes. In ...
Changes
Related to #1159
I've added a piece of information about dagger completion, I didn't provide examples because there are many ways to install completions scripts, (.eg zsh/oh-my-zsh...).
Signed-off-by: Richard Jones
Updated gh user @dagger-ci personal access token (pretty sure it was using @TomChv's token that was recently removed). All failing PRs on this test can be rebased on main once this PR is merged.
Adding secrets in docker.#Command is broken:
// pipeline was partially executed because of missing inputs op=0s original_cue_error=prod_image_info.ref.#up.0.from.#up.5.mount."/run/secrets/dockerhub_password": incomplete value {secret:{…
// executing operation do=export pipeline=prod_image_info.ref
This PR fixes the issue by differentiating the secrets and generic mounts. @gerhard
Signed-off-by: guillaume
Original PR got merged before I realized. This just makes the video look better on the page
Signed-off-by: Richard Jones
Bumps amplitude-js from 8.13.0 to 8.13.1.
Release notes
Sourced from amplitude-js's releases.
v8.13.1
8.13.1 (2021-12-03)
Bug Fixes
make @babel/runtime production dependencies (#461) (c03632c)
Changelog
Sourced from amplitude-js's changelog.
8.13.1 (2021-12-03)
Bug Fixes
make @babel/runtime production dependencies (#461) (c03632c)
Commits
cbaf6c2 chore(release): 8.13.1 [skip ci]
c03632c fix: make @babel/runtime production d...
Bumps @svgr/webpack from 5.5.0 to 6.1.1.
Release notes
Sourced from @svgr/webpack's releases.
v6.1.1
Bug Fixes
webpack: fix double export (#648) (7595d37), closes #645
v6.1.0
Bug Fixes
fix previous export system (1872829), closes #635
Features
native: automatically convert inline style in native (138c493), closes #588
Performance Improvements
remove useless loader-utils package (387bc72), closes #631
v6.0.0
SVGR v6 uses SVGO v2 under the hood an...
Bumps cypress from 9.1.0 to 9.1.1.
Release notes
Sourced from cypress's releases.
9.1.1
Released 12/03/2021
Bugfixes:
Fixed a regression in 9.1.0 where our
built binary didn't contain patches to some dependencies. Addressed in
#19239. This fixed some
issues including:
Requests containing ~ will no longer be improperly encoded. Fixes
#19083,
#19084,
#19115,
#19096,
#19178.
A TypeError displaying data.hasOwnProperty is not a function will no
longer t...
dagger up ./path/to/plan mimics behavior of cue eval
still needs tests
Signed-off-by: Richard Jones
Page says “Welcome on Dagger documentation” which is not proper English. Should say “Welcome to the Dagger documentation” or something like that.

Signed-off-by: jffarge
Signed-off-by: Andrea Luzzardi
remove float from iframe to display in full width.
Bump to docusaurus 2.0.0-beta.9
Signed-off-by: jffarge
- engine spec: move core types to types.cue
- engine: fix hidden field path
- solver: return digest when resolving images
- plan: improve log messages
Bumps @docusaurus/core from 2.0.0-beta.6 to 2.0.0-beta.10.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.10 (2021-12-09)
:rocket: New Feature
create-docusaurus, docusaurus-types, docusaurus
#5930 feat: shorthands for themes/plugins/presets configuration (@fsmaia)
docusaurus-mdx-loader, docusaurus-plugin-content-docs, docusaurus-theme-classic, docusaurus-theme-common, docusaurus-theme-translati...
europa plan needed to ensure it was using the right plan directory. Passing absolute path didnt work because the cwd needs to be at or beneath the parent of cue.mod.
Signed-off-by: Richard Jones
Changes
Improve #1085 to fix topics 2 and 3 from #1118.
Dagger up used to only base his execution on libraries present in cue.mod/pkg/alpha.dagger.io.
I have two repro cases showing that this is not entirely true anymore. It works on any config, but conflicts in our universe directory.
I. Execute a test that includes an unknown field
- Compile the latest up-to-date dagger, from main branch
- Go to the yarn test:
./cue.mod/pkg/alpha.dagger.io/js/yarn/yarn.cue, and extend it :
import(
"alpha.dagger.io/http"
)
ok: h...
dagger up should accept arg[0] and proxy that to cue loader to mimic the behavior of cue eval
secrets should support an exec type that allows os.Exec to fork an external process and return the results to the Go map linked to the cue tree via id
For example users should be able to exec sops or aws-vault and reference those values in cue without them being exposed
when passing --environment to dagger up, the command should use that value to fill #Plan.name or #Plan.environment. This is useful for things like dynamically created PR environments as an example.
Currently telemetry only works without --europa since it is very tied into the legacy state package. This needs to be refactored and Europa-specific telemetry data defined.
Need to register a task for handling context: services: unix (or input: proxy:)
Bumps @docusaurus/core from 2.0.0-beta.9 to 2.0.0-beta.13.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.13 (2021-12-10)
Release to fix a bad npm publish in beta.12 and mitigate today's npm issues (https://status.npmjs.org/incidents/n4s34mwsdsp2)
Same code as beta.11, please refer to beta.11 changelog and release:
https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.11
2.0.0-beta.12 (202...
implemented context: services with test for unix. Still needs a windows test for npipe.
Closes #1202
Currently dagger sends basic analytics on long-running commands (this can be disabled with the semi-standard DO_NOT_TRACK environment variable). But not all commands are included in the analytics: commands run in a CI environment (according to best-effort heuristics) are entirely skipped. This results in an analytics blind spot: basically we don’t know anything about real-world usage of Dagger in CI. This is a major problem because we are positioning Dagger as a portable development kit for...
Port Pipeline ops to Europa Engine API. Schema defined in https://github.com/dagger/dagger/pull/1117
| Pipeline Op | Europa | Assignee | Status |
|---|---|---|---|
| op.#FetchContainer | engine.#Pull | @aluzzardi | PR https://github.com/dagger/dagger/pull/1194 |
| op.#PushContainer | engine.#Push | ||
| op.#DockerLogin | Moved to #Pull #Push | How does this work for #DockerBuild? | |
| op.#Exec | engine.#Exec | @aluzzardi | |
| op.#Export | *engine.#ReadFile... |
We should support _hidden tasks in Europa.
This requires upstream support, for which @jlongtine already opened a PR: https://github.com/cue-lang/cue/pull/1419
Signed-off-by: Andrea Luzzardi
Bumps sass from 1.43.5 to 1.45.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.45.0
To install Sass 1.45.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
JS API
This release includes an entirely new JavaScript API, designed to be more idiomatic, performant, and usable. The old API will continue to be supported until Dart Sass 2.0.0, but it is now considered depre...
Bumps @svgr/webpack from 5.5.0 to 6.1.2.
Release notes
Sourced from @svgr/webpack's releases.
v6.1.2
Bug Fixes
specify valid peer deps (45a76ed)
rollup: missing dep & missing map return (#652) (12627fc)
v6.1.1
Bug Fixes
webpack: fix double export (#648) (7595d37), closes #645
v6.1.0
Bug Fixes
fix previous export system (1872829), closes #635
Features
native: automatically convert inline style in native (138c493), closes #588
Performance Impr...
Feedback from @aluzzardi :
Just started implementing this. A few questions when comparing to op.#Exec:
Missing:
useralwayshostsExtra features, not doable without exec helper:
stdoutstdinstderrexitChanges:
envused to be a map, now it's an array of strings namedenviron--> why?argsis either an array or a string --> is the runtime supposed to shlex args?mountsused to be a ma...
- Make some definitions private (via @talentedmrjones )
- Add
dagger.#Plan.input.params(via @talentedmrjones )
Implemented bats package for running bats tests from dagger
- Better integrate all CUE core packages for Europa, for easier development and testing
- Keep future Europa Universe separate for easier spin out in to separate repo
- Complete README for each part
This is a required step until we find a better dependency API solution.
We need to enable env var dependency hacks with this package, as a rerun of a plan always re-executes a docker.#Run.
Signed-off-by: guillaume
This branch leverages 1 disjunction in particular: contents: #Secret | {[string]: #Secret} to enable contents to be a Secret or a map of Secrets.
JSON and YAML formats will unmarshal to map[string]interface{} then iterate over key:value pairs, creating a map of secrets (marshaled to cue) which is then filled into "contents"
The text format will simply create a secret very much like the current SecretEnv and SecretFile tasks do.
Still need to implement:
YAML unmarshaling...
Documentation of dev-cue-package example has both username and tjovicic witch may be confusing.
That PR update tjovicic to username for better consistency.
Issue inside https://docs.dagger.io/1011/package-manager/#install
GitHub link send to https://github.com/dagger/packages/blob/main/gcpcloudrun/source.cue
and returns to a 404 (private repo maybe?).
Signed-off-by: Andrea Luzzardi
In Europa we're missing a way to retrieve state (e.g. dagger query).
I don't know what the long term solution would look like, and maybe we don't need to figure that out for the Europa release.
However, in the meantime, we do need some way to programmatically get the computed state back, at the very least for our integration tests.
I propose this straw-man: dagger up --output [path]. The output file content would be the equivalent of state/computed.json in mainstream Europ...
For things in package engine , like #ReadFile as just one example should be move those to say package fs under dagger/engine/fs? Then you'd write fs.#ReadFile. The benefits are:
- loading only the necessary packages and schemas
- namespacing these operations helps organize code and thought
Expand the Engine API to give developers control over the standard streams (stdin, stdout, stderr) of the commands they’re executing.
This was part in the original Europa spec, but was temporarily removed to resolve outstanding design issues:
- How to handle multiple writers? Are they forbidden? Do they randomly share the stream? Undefined behavior? Is the full stream multiplexed to each reader?
- How to avoid deadlocks? Unix-style pipes require concurrent execution. But the original s...
[dagger/dagger] Pull request opened: #1223 Europa: reconcile engine\.\#Exec spec with implementation
This addresses several points from #1211 :
- Add missing
user - Add missing
always - Add missing
hosts - Remove
stdin,stdout,stderruntil API design questions are resolved. See #1222 . - Clean up
args: only supports[…string], add example in comment to clarify use.
NOTE: this PR depends on #1214 , please merge that first.
The root cause of the deadlock seems related to a combination of FD manipulation + jobs parallelization. I disabled the parts that I think touch redirect or disabled FDs. Also disabled some heavy tests and kind integration (we can re-enable later).
Also changed the localstack secret to not rely on @grouville personal token.
Continuing the experiment started in https://github.com/thechangelog/changelog.com/pull/401… cc @gerhard :)
PROPOSAL: New CI structure for building, testing and releasing
Intro
Our current CICD code relies on the following components:
- Several Github action YAML workflows, used to call make or directly call goreleaser for official releases
- A Makefile at the root of the repo which runs commands on everyone local machine (not containerized), like for instance: launch unit tests, run the linter or build the dagger binary used for development
- Yarn to install and spin-up ...
When creating a proxy such as proxy: dockerSocket: {} the pipeline will run partially and provide a warning which is poor DX. We need a way for the task runner to catch this but currently the runner isn't even executed when there is no concrete value for _type
This may be fixed by implementing the new schema in the spec.
Signed-off-by: Andrea Luzzardi
This is our plan B, in case it is confirmed that we can’t rely on hidden fields for matching internal types in disjunctions, the way we hoped to.
Context from Discord:
Quick summary of next steps:
[Joel] is going to check with CUE devs whether this is a bug or feature. If we’re lucky, it’s a bug, they fix it next week, and we can pretend this conversation never happened.
We discussed plan B. There are some variations & bikeshedding opportunities, but basically it r...
This is just a start, still WIP.
I did not find a way yet to scope the auth to the engine call (everytime an auth field is process anywhere, it adds creds for a given target for the whole buildkit solver).
@aluzzardi I've setup a private alpine image for integration tests, but not sure how to pass the secret? Can I rely on the current dagger.#Secret implementation?
Plan spec currently contains a mix of singular and plural:
#Plan: {
// Receive inputs from the client
input: {
// Receive directories
directories: [string]: _#inputDirectory
// Securely receive secrets
secrets: [string]: _#inputSecret
}
// Forward network services to and from the client
proxy: [string]: _#proxyEndpoint
// Execute actions in containers
actions: {
...
}
}
Notice that input is singular while directories is plural and `pr...
If path: is set something that does not exist, such as path: ./does/not/exist/adfadkjh Dagger just hangs at the following point:
2:07PM DBG system | spawning buildkit job attrs=null localdirs={
"./sdfgsdfg": "/Users/richard/Code/dagger/dagger/tests/sdfgsdfg"
}
Closes #1229
Before this change we had spec files mostly in stdlib/europa/dagger/engine/spec/engine but also had some spec files in stdlib/europa/dagger. This caused confusion around what is spec vs what is implemented.
This PR reorganizes file so that:
- all spec file are now in
stdlib/europa/dagger/engine/spec/engine - files currently implemented are in
stdlib/europa/dagger/engine - files in
stdlib/europa/daggerare simple aliases tostdlib/europa/dagger/engine
We...
Signed-off-by: Joel Longtine
(This is a placeholder issue, to be filled out later in more detail).
The current Europa design relies on hidden fields attached to core types like dagger.#FS, dagger.#Secret etc. These hidden fields include an ID, to be filled by the engine at runtime.
Hiding these IDs has DX benefits: don’t confuse developers with a field they’re not supposed to worry about anyway, or risk incorrectly filling it.
But hiding IDs may have downsides also:
- it makes it hard to share the computed ...
Signed-off-by: Joel Longtine
Overview
I propose setting the following design principle for our CUE APIs:
Dagger CUE APIs should define default values explicitly, rather than relying on implied default values from other APIs they depend on.
For example, our CUE bindings to Buildkit calls should explicitly define default values in CUE, rather than rely on Buildkit’s own defaults.
This CUE-first approach to default values improves the developer experience in several ways:
- It makes our CUE APIs mor...
We want Europa APIs to support Windows. Does the current default value engine.#Exec.user: string | *”root” allow this? If not, how do we resolve?
- Change to a better default value?
- Make the field mandatory?
- Implement more advanced default behavior, perhaps inspired by buildkit?
- Make the field optional and defer to the default behavior of buildkit? NOTE: I advise against this, see https://github.com/dagger/dagger/issues/1243
Currently, engine.#Exec will interrupt DAG execution entirely if the command returns a non-zero exit code, aka an error. This makes it very difficult to write a Dagger configuration with custom behavior on command failure. The only way is to execute a wrapper command, for example a shell script, that will implement the exit code capture, and communicate back to the CUE config. This is repetitive and a bad DX.
Ideally, engine.#Exec would allow 1) configuring whether or not to abort DAG ...
Prior to Europa, Dagger relies on Buildkit to manage exec defaults. For example op.#Workdir would translate to llb.Workdir in Buildkit, and all future calls to Exec would automatically use that default value for workdir.
In Europa, Dagger must not use this feature of buildkit, and it must not implement this feature in its own implementation either. Rather, it is the CUE caller’s responsibility to manage defaults if they so choose. In other words, engine.#Exec is stateless.
I...
Problem
Most of the time, dependencies between Dagger tasks are implicit, thanks to the magic of CUE references. If a config value for task foo is referenced by a config value for task bar, Dagger implicitely knows that foo must run before bar.
But sometimes, foo must run before bar even though there is no dependency between their configurations. For example, foo might upload an artifact at a known URL, which bar must later download. In this case, developers need a...
Problem
Dagger has the ability to run commands in containers (engine.#Exec). These commands can be long-running (for example a test database). But there is no reliable way to terminate this command later. This effectively makes it impossible to execute long-running commands without hanging DAG execution.
A typical example (from real-world use case #1227):
- Start a test database (
engine.#Exec) - Execute tests against test database (
engine.Exec) - After the tests aere complet...
Problem
Most engine tasks require an input: #FS field. Starting from an empty FS requires an explicit call to #Scratch. Because we don’t support inlined tasks, this is quite cumbersome:
dir: engine.#Mkdir & {
_scratch: engine.#Scratch
input: _scratch.output
path: “/foo”
}
Solution
With support for null input, the same configuration would be much simpler:
dir: engine.#Mkdir & {
input: null
path: “/foo”
}
Assuming we make null t...
Bumps concurrently from 6.4.0 to 6.5.0.
Release notes
Sourced from concurrently's releases.
v6.5.0
Add support for configuring via environment variables that start with CONCURRENTLY_ prefix (#289)
Add --timings flag to show when each process started and stopped, and how long they ran for (#291, #295)
Commits
ecc5fa0 6.5.0
ce799d6 npm audit fix
f8119bf docs: replace $0 placeholder with concurrently
7578774 Add support for options in env...
@quaint umbra I think it maps cleanly in Go — nil is scratch already in LLB
One thing to watch out: forgetting to set input shouldn’t default to scratch (harder to debug for the user)
(On my phone, can’t comment on the PR)
Dagger supports pushing and pulling Docker container images. Sometimes Docker registries require authentication, so Dagger defines an API for passing authentication credentials. In the Europa release, each call to #Push, #Pull and #Build (for nested pulls) accepts an auth field.
According to the Dagger API, each individual call to #Push, #Pull and #Build has its own authentication scope: credentials passed to one call are not available to the others.
In the current impleme...
Problem
Dagger does not detect actions configured in an inline CUE expression. This makes a useful feature of CUE unavailable to Dagger developers, causing configurations to be more complex than necessary. This becomes more problematic as the size of a configuration grows.
Details
Most of the time, actions are assigned to a field in the CUE configuration, for example:
To execute an action in their DAG, a developer must write the action’s configuration as a CUE value, and ass...
Dagger should support conditional execution of actions, using the standard if statement in CUE. Importantly, it should be possible to reference the output of other tasks in the if statement, and have task dependency be respected.
For example:
arch: docker.#Run & {
script: “uname -m > /arch”
output: files: “/arch”: _
}
if arch.output.files.”/arch”.contents == “x86_64\n” {
ftw: docker.#Run & {
script: “echo x86 FTW!”
}
}
Note that the ftw action it...
Problem
There may or may not be a problem, depending on whether the desired behavior is already supported.
Desired behavior
Dagger should support configuring actions in hidden fields. For example:
// Action configured in a regular field
foo: docker.#Run & {
script: “echo hello foo!”
}
// Action configured in a hidden field
_bar: docker.#Run & {
script: echo hello bar!”
}
In this example, BOTH actions should be detected and executed.
Currently Dagger can proxy OUTBOUND network connections, from the DAG to the client. For example a container executed inside the DAG can connect to a unix socket that is proxied to a unix socket on the client.
It would be amazing if Dagger also supported the reverse: proxy INBOUND network connections from the client to the DAG. For example, a container listening for tcp connections inside the DAG could receive connections proxied from a TCP port on the client. This expands considerably w...
Changes
- Add
#Mkdirfrom spec to active definition - Add mkdir task
- Add tests
- Split website deploy in its own workflow to only trigger when the website changes
- Disable bats parallelization within files to mitigate integration test suite races
I agree with you! It's necessary to use dagger as our CI, if we don't do it, who will?
Indeed, I have some questions :
The Github action worklow will simply run the whole plan, it won't have any logic
- How will we then setup
localstackorkindforkubeand aws tests? - What about CI keys and co, we will have a global context that keep those information?
- How we will handle release? It's possible with just Dagger or is it a better idea to keep it as a GitHub action?
...
Context
Developers can request access to resources on the invoking client: directories to read or write, commands to execute, files to read or write, unix sockets to connect to.
It seems logical that developers could also request access to environment variables on the client. In fact, this is already partially possible, with inputs: secrets: [string]: envvar. However this exposes the contents of the environment variable as a #Secret which is a reference to be mounted in a conta...
Overview
It might be useful to allow a DAG to know the platform of the client invoking it. For example, this information could be used to configure certain inputs differently between Windows, Mac and Linux clients.
Example:
client: _
proxy: endpoints: docker: {
if client.platform == “windows” {
connect: “npipe://…”
}
if client.platform != “windows” {
connect: “unix:///var/run/docker.sock”
}
}
Challenges
Perhaps this is overkill, and can...
Problem
The current Dagger API does not give the developer control over which platform (architecture + OS) to execute containers on. This limits possible applications of Dagger.
Solution
There many possible designs. Here is a (naive) suggestion to get us started.
package engine
#Exec: {
platform: {
// Host operating system
os: “windows” | *”linux”
// Host hardware architecture
arch: *”x86_64” | “arm64” // etc.
}
}
Problem
The current Dagger APIs do not give the developer control over pushing, pulling, building and running multi-platform Docker images.
This is related to, but distinct from, multi-platform container execution
Problem
The drift between our two parallel engine packages (let’s call them engineA and engineB) has gotten out of control. The only way to get a useful diff is to manually verify each individual field. I have been doing this, but it’s a waste of my time and I don’t want to do it anymore.
Solution
I’m merging engineA and engineB into a single engine package, which we can then all modify together collaboratively, like proper developers.
Details on drift
EngineA and ...
This needs design discussion. Is interactive really useful if it won't work in CI anyway? How do we handle concurrent processes and logs to the terminal?
Signed-off-by: Joel Longtine
Bumps concurrently from 6.4.0 to 6.5.1.
Release notes
Sourced from concurrently's releases.
v6.5.1
Fix command names when using npm wildcard (#148, #165, #211, #212)
v6.5.0
Add support for configuring via environment variables that start with CONCURRENTLY_ prefix (#289)
Add --timings flag to show when each process started and stopped, and how long they ran for (#291, #295)
Commits
041e090 6.5.1
dd54b9f Fix wildcard naming to match do...
Signed-off-by: Joel Longtine
Initial work, still needs all tests ported over
Signed-off-by: Joel Longtine
We had to disable this test which was failing 80% of the time: https://github.com/dagger/dagger/blob/7c46e62f49b61f63a707bc2253b5cb93044d1257/tests/tasks.bats#L40
Given this is happening on 1 test and the test code seems ok, it hints that the feature is not working properly.
Error:
ok 47 task: #WriteFile failure: different contents
not ok 48 task: #Exec
# (in test file ./tasks.bats, line 39)
# `"$DAGGER" --europa up ./mount_cache.cue' failed
# 11:59PM INF actions.image | ...
Implemented engine.#Push + tests
A bunch of fields were lost in translation from op.#DockerBuild. I added them to the implementation and flagging as needs review:
auth: This was not in#DockerBuildbut is needed because of the lack of#DockerLoginplatforms/target: These we need to review generally speaking for multi-platform support, I don't believe they're right (/cc @TomChv)buildArg/label/hosts: These are generic dockerfile frontend options
Fixes #1274
Signed-off-by: Andrea Luzzardi
Support dagger up --output or - for stdout. This will
write the computed layer.
Can be used for tests, e.g.
run dagger up --output -
assert_output --partial foobar
Fixes #1220
Context
Universe is versioned so it's necessary to inform users when there is an improvement.
Issue
We already added the supports for classic dagger up but we do not handle it for dagger --europa up.
Related to #1196.
Bumps cypress from 9.1.0 to 9.2.0.
Release notes
Sourced from cypress's releases.
9.2.0
Released 12/20/2021
Features:
Cypress will throw an error when a user attempts to update a configuration
value at run-time using either the Test Configuration or using
Cypress.config() that is a
readonly option.
Addresses #6407 and
#19001.
A timeout option has been added to the cy.writeFile() command, with a
default value of defaultCommandTimeout. Addresses
#3350...
Bumps @docusaurus/core from 2.0.0-beta.9 to 2.0.0-beta.14.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.14 (2021-12-21)
:rocket: New Feature
docusaurus-theme-classic, docusaurus-theme-common
#6132 feat(theme-classic): new configuration syntax for a simple footer (@christopherklint97)
#6125 feat(theme-common): stable classname for code blocks (@Josh-Cena)
docusaurus-theme-classic
#5848 feat(...
Bumps sass from 1.43.5 to 1.45.1.
Release notes
Sourced from sass's releases.
Dart Sass 1.45.1
To install Sass 1.45.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Potentially breaking bug fix: Properly parse custom properties in @supports conditions. Note that this means that SassScript expressions on the right-hand side of custom property @supports queries now need...
This is to fix an issue occurring regularly on the CI with a race condition on fs operations.
# (in test file ./tasks.bats, line 9)
# `"$DAGGER" --europa up ./pull.cue' failed
# 5:50PM FTL system | failed to load plan: import failed: load: open
/home/runner/work/dagger/dagger/tests/tasks/pull/cue.mod/pkg/alpha.dagger.io/europa/dagger/engine/types.cue:
no such file or directory
https://docs.dagger.io/1002/vs/ says "Dagger helps CICD teams answer question like: what work needs to be done to deliver my application, in what order, and how to I orchestrate it?"
s/how to I/how do I/
One of the install steps here shows how to use 'sudo' to install it: https://docs.dagger.io/1001/install/
That shouldn't be needed, lately I use containers that run in rootless mode (e.g. podman instead of docker and a wrapper that calls podman instead of docker for backwards compat, or runc, etc.), and a rootful docker may simply not be available in certain environments as a matter of security policy.
Therefore it'd be very useful if the sudo installation mode would be option...
Changes
- Rename
modetopermissions - Remove
outputfrom#ReadFile
Signed-off-by: Andrea Luzzardi
Signed-off-by: Andrea Luzzardi
Related @snow kayak : https://github.com/dagger/dagger/pull/1288
Signed-off-by: Andrea Luzzardi
- How will we then setup
localstackorkindforkubeand aws tests?
I don't think it's an issue atm. With the http.#Wait package, we can wait for a running container to be up. So we just put it at the top level of the plan, and we can reintegrate it in the execution tree with that package, once the ports exposed run
That would be great but actually, if one action fail, all others will be canceled (correct me if I'm wrong).
You're right
How should we handle this...
Bumps amplitude-js from 8.13.0 to 8.14.0.
Release notes
Sourced from amplitude-js's releases.
v8.14.0
8.14.0 (2021-12-21)
Features
add runNewSessionStartCallback on new sessionId on log event (#469) (bb8b26b)
support web worker env (#467) (52abaf0)
v8.13.1
8.13.1 (2021-12-03)
Bug Fixes
make @babel/runtime production dependencies (#461) (c03632c)
Changelog
Sourced from amplitude-js's changelog.
8.14.0 (2021-12-21)
Features
add ru...
- remove
@dagger(notimplemented)fromengine.#Scratch
Signed-off-by: Joel Longtine
Most of the stdlib depends on Alpine 3.13.5, we should upgrade the Alpine base image to the latest 3.15.0.
It's likely to break all the pinned version of containers defining package dependencies so it's likely to take some extra work to make sure nothing breaks.
I found out that the longest test on universe is this one (cue-sanity-check), ~3-4 minutes. This is test is no more necessary given that we are already checking the code syntax while generating the documentation.
Some of our tasks require the DOCKERHUB_TOKEN env var.
This PR ports it to a sops secret
Currently, a weird behavior is happening on the push test. When secret is imported as an envvar, it works. Whereas, in sops format, it seems to break:
3:12AM FTL system | failed to up environment: task failed: failed to authorize: failed to fetch oauth token: unexpected status: 401 Unauthorized
Signed-off-by: guillaume
Signed-off-by: Andrea Luzzardi
Changes
Related to #1265.
Add a new field platform in #Plan to allow user configure the platform.
He can now run his workflow in any platform supported by buildkit daemon.
In a further PR, I'll add the platform configuration for a part of the DAG.
/cc @aluzzardi @samalba
Based of @samalba's proposal for CI https://github.com/dagger/dagger/discussions/1230
- This adds a
-t/--target(placeholder name) flag todagger up - Only that part of the DAG will execute
- All the necessary dependencies will be executed as well
Example:
engine.#Plan & {
actions: {
image: engine.#Pull & {
source: "alpine:3.15.0@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3"
}
exec: engine.#Exec & {
input: image.output
args: ["sh",...
This issue has affected several tests as well as a real user (@helderco ). In some cases #SecretExec may fix this with echo -n. In other cases like gitpull.go we had to use strings.TrimSpace before using the secret plain text value. In some cases it seems the presence of trailing space characters (including \n) doesn't matter but on other cases it does.
A quick test of these scenarios proved that adding strings.TrimSpace to plancontext.New() solved the issue across the boar...
Leftover item from #1206
Loading Docker images to a remote engine is no longer possible in Europa due to the lack of op.#SaveImage.
Consider adding it back or finding an alternative
It's currently not possible to load new secrets from a plan -- secrets can only be passed as inputs.
This led to secrets-generating packages to output strings instead, and have other packages arbitrarily support either strings or secrets which is messy.
Placeholder proposal: engine.#LoadSecret task with pretty much the same interface as engine.#ReadFile:
#LoadSecret: {
$dagger: task: _name: "LoadSecret"
// Filesystem tree holding the secret
input: #FS
// Path of ...
Signed-off-by: Andrea Luzzardi
Example:
engine.#Plan & {
inputs: directories: test: path: "./test"
}
The behavior of the plan will be different based on where dagger up is executed.
We can't simply take the path of the argument because it's more complex than that:
$ cat base.cue
engine.#Plan & {
inputs: directories: testA: path: "./testA"
}
$ cat staging/staging.cue
engine.#Plan & {
inputs: directories: testB: path: "./testB"
}
$ dagger up ./staging/staging.cue
-> inp...
Bumps amplitude-js from 8.13.0 to 8.14.1.
Release notes
Sourced from amplitude-js's releases.
v8.14.1
8.14.1 (2021-12-23)
Bug Fixes
global-scope reference error in nodejs (#474) (bdce39d)
v8.14.0
8.14.0 (2021-12-21)
Features
add runNewSessionStartCallback on new sessionId on log event (#469) (bb8b26b)
support web worker env (#467) (52abaf0)
v8.13.1
8.13.1 (2021-12-03)
Bug Fixes
make @babel/runtime production dependencies (#461) (c03...
- engine: Make paths relative to the CUE file they're defined in
- europa: Code Embedding POC
- How will we then setup
localstackorkindforkubeand aws tests?
Like anything else, we'll manage it from a dagger action in the plan, it's much better than relying on Github action for it. Right now, tests relying on the infra are auto-skipped if the infra is not there. So nobody runs them locally, which is a problem.
What about CI keys and co, we will have a global context that keep those information?
sops file at the root, no need to rely on Github secrets, again: por...
Tasks now have a PreRun hook that gets called before buildkit kicks in.
Allows to support local access without special casing.
This PR fixes #Subdir (thanks @jlongtine).
It also ports the previous tests of to the Europa style.
It was a nice reading.
I have food a little typo.
Fixed it.
How should I break a big plan into multiple files? I've run into something that was unexpected to me and took a really long time to figure out.
#Configs: [name=string]: {
{
file: string | *"./\(name).conf"
contents?: string
} | {
external: true
"name"?: string
}
}
#App: {
project: string
configs?: #Configs
}
engine.#Plan & {
actions: [name=string]: #App & {
project: name
}
// just to compar...
PR #1289 added support for plan outputs, but the contents need to be an #FS.
If you have a string to save, you have to go through #WriteFile:
// plans/gen/dagger.cue
package main
import (
"alpha.dagger.io/europa/dagger/engine"
"encoding/yaml"
)
engine.#Plan & {
actions: {
scratch: engine.#Scratch
apps: [string]: #App & {
output: _ // compose in CUE
compose: engine.#WriteFile & {
input: scr...
Bumps sass from 1.43.5 to 1.45.2.
Release notes
Sourced from sass's releases.
Dart Sass 1.45.2
To install Sass 1.45.2, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
JS API
Potentially breaking bug fix: Change the default value of the separator parameter for new SassArgumentList() to ',' rather than null. This matches the API specification.
See the full changelog for c...
Color contrast of in adomonitions is so low:
- Light mode : ``
- Dark mode : ``
This happens because custom style for `` overrides original colors.
Fix this.
| Mode | before | after |
|---|---|---|
| Light | ![]() |
 API wraps a lot of the engine (low level) API (e.g. docker.#Copy -> engine.#Copy).
This leads to duplicated efforts in testing/documenting, along with API drifting between the two.
/cc @shykes
[resurrecting from https://github.com/dagger/dagger/pull/1117#pullrequestreview-826865952]
In Europa, docker.#Run has a different meaning and is a replacement for os.#Container (e.g. executing buildkit commands) rather than docker.#Run.
How do we support "running a container on a docker engine" in Europa?
/cc @shykes
A secret currently supports only 1 value, being defined as such:
engine/plan.cue
#Secret: {
$dagger: secret: _id: string
}
_#inputSecret: {
_#inputSecretEnv | _#inputSecretFile | _#inputSecretExec
contents: #Secret // just 1 Secret
trimSpace: *true | false
}
but this limits usability and forces the user to implement awkward, brittle, and inefficient plans. As an example, secrets are commonly found in maps, and in many cases are multiple values such...
The Europa release introduces major changes, which will require new documentation. This issue is a placeholder for tracking work on these new docs.
Topics to consider include:
- New user experience: command-line syntax, getting started, operator manual
- New developer experience: APIs, programming concepts, sample code
- Migration from earlier versions
- New positioning. When we wrote the current documentation, Dagger was positioned more broadly and vaguely. Now, it is positioned as ...
Problem
Currently, dagger up does 2 things: download CUE dependencies; and run. This makes it difficult to manage dependencies correctly. For example, custom vendoring of an upstream dependency is very difficult, because any local changes will be overwritten on the next run. This does not match the expectation of most developers.
Solution
Decouple dependency management from run. At the very least, dagger up should not download update or overwrite dependencies without being ...
Problem
Dagger does not have a launch website, and therefore cannot be launched!
The current site is better described as a “teaser website” :)
Solution
Ship a minimal but high-quality launch website. This includes:
- A clear explanation of what Dagger is, what problem it solves and for whom
- Just enough technical details to satisfy the curious and skeptical mind of our target audience - software engineers
- The minimum information expected of a pro...
Problem
Some visitors of the Dagger teaser website are confused by the status of the project: is it stealth, or just very obscure? See for example this Hacker News comment.
Solution
Add a sentence on the teaser website clarifying that 1) Dagger is in technology preview, 2) it will be open-source once launched, and 3) here is how to request access.
Solves #1294
The aim here is to upgrade the Alpine version to 3.15.0 and update all apk packages to their latest version (as requested by Sam).
The 2 breaking changes were: google secretsmanager and netlify, which I had to update from 3.X to 8.X.
For GCP, the CLI began to print to stderr, which I now need to redirect in order to be able to pipe it.
engine.#Plan.inputs currently includes params schema but is not yet implemented
params: {
@dagger(notimplemented)
[name=string]: _
}
Requires --with argument to dagger up
This conversation has been in a comment thread in the #1227 PR, just moving it to a dedicated issue.
My proposal is to create a new config from the unification of two others (an existing one and another with the changes):
#Set: {
config: #ImageConfig
input: #Image
output: {
rootfs: input.rootfs
"config": {
// loop fields from input.config that are *not present* in config
// loop fields from config
}
}
} ...
In Europa, there are 3 CUE modules:
alpha.dagger.io: legacy (will go away)dagger.io: stdlibuniverse.dagger.io: universe
Currently the runtime can only cover one module (alpha.dagger.io).
Thanks to @gerhard , @grouville and @jlongtine , changelog.com has a working Dagger configuration for its CI, running right now in production. Since this configuration is open-source, it is the perfect testing ground to guide the development of Europa with real-world constraints and feedback.
Status
Certain use cases of Dagger require supporting long-running execution: running a DAG that will never terminate. This is different from today, where dagger up is expected to terminate, and might be force-terminated and return an error after a timeout period.
How do we support long-running execution without breaking support for regular, short-running execution? How do we allow both execution modes to co-exist, in a way that makes sense to the developer and the end-user?
Solves #1124
The solution is not ideal because we redirect part of the output to a file. However, it works well, both for the new logger and the plain-format.
It solves the simili-infinite loop due to the termcap conflict between our logs and the trivy binary + a summary remains [we just don't see the details]:
working:
PM INF TestGCPClient.verify.ctr | #39 15.73 gcr.io/dagger-ci/test:test-gcr-nakbwreqejdd (alpine 3.15.0)
11:35PM INF TestGCPClient.verify.ctr | #39 15.73 ======...
Problem
The new Docker Build API in Europa (universe.dagger.io/docker.#Build) lacks the ability to set Docker image metadata. As compared to Dockerfile features:
| Feature | Dockerfile operation | CUE operation |
|---|---|---|
| Set default working directory | WORKDIR |
Not available |
| Set default user | USER |
Not available |
| etc. | etc. | etc. |
This feature is tricky to implement, because it is a form of override, and CUE is designed to make overrides diffi...
Related to #1335
This was attempted in the past but postponed because of technical challenges.
Assigning to @samalba since you have the most context on this.
Doesn't mean we're going to do it for the Europa release, but at least now we have an owner.
From @samalba :
- Github actions's cache is still disabled on the CI, we should check if it now works with the latest buildkit and possibly enable it (it'll fix a bunch of CI slowness)
This PR re-enables it, let's hope it works 🤞
Signed-off-by: guillaume
Dagger does not support nesting tasks. This should be documented somewhere.
Since it relies on "projects" (e.g. .dagger), mod get doesn't work anymore.
engine.#CacheDir uses the llb.AsPersistentCacheDir() call, the same that's used in Dockerfiles for e.g. RUN --mount=type=cache,target=/var/cache/apt .
The persistent cache dir is stored internally in BuildKit, which works great locally, however it's not persistent across CI runs (because we get a different BuildKit instance each time).
Ideally we should find a way to persist BuildKit's persistent cache directories into GH's cached directories.
A starting clue to figure this out...
With the removal of @dagger(input) @dagger(output), docs generation is broken in Europa.
Dagger currently checks for missing inputs by scanning @dagger(input).
In Europa, @dagger(input) is gone. Instead there's now #Plan.input. Input sanity checks must be ported to Europa.
Design possibility:
- Inputs in Europa are tasks (e.g.
plan/task/inputdirectory.go) - Tasks have a
PreRun()hook, which gets called at the very beginning, before the Plan is executed - We could check concreteness in the
PreRun()hook of inputs
/cc @samalba who implemented the original ...
We keep getting the same questions from the users. Rather than repeating ourselves, this section aggregates the answers.
We reverted the change for image styling and are now using the Docusaurus default.
Pairs: @gerhard @slumbering
Signed-off-by: guillaume
Uses the low-level engine API.
⚠️ Is not complete!
Signed-off-by: Joel Longtine
Bumps sass from 1.43.5 to 1.46.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.46.0
To install Sass 1.46.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
JS API
Potentially breaking bug fix: Match the specification of the new JS API by passing undefined rather than null to Logger.warn() for an unset span.
TypeScript Declarations
Add a declaration for the Le...
I find the pre-europa outputs very useful, just wish you could control which outputs to show.
Europa is well positioned for this, maybe something like:
engine.#Plan & {
actions: {
build: push: engine.#Push & { ... }
run: push: engine.#Push & { ... }
}
outputs: console: {
"build image": contents: actions.build.push.result
"run image": contents: actions.run.push.result
}
}
Which would output:
Output Value
build...
New Europa API defines #Ref type for docker image ref. Currently it’s a simple string, but could be restricted further as a convenience to developers.
engine.#Build is really a binding to the dockerfile.v0 buildkit frontend, aka “run this Dockerfile”. It would be accurate to call it engine.#Dockerfile (or perhaps another name that evokes the function) to clarify that it is not a general-purpose build operation, and not the only or even the recommended way to build things with Dagger.
Currently, dagger redacts secrets while forwarding buildkit events to the logger.
It works great to strip away secrets leaked by the CUE layer (e.g. #Exec & { command: "echo secret: $(cat /secret)" } shows up as secret: ***), however it doesn't strip away secrets leaked by Dagger itself in Go.
It's currently implemented in Client.logSolveStatus() (the goroutine that bridges buildkit events to the logger), which uses an internal secureSprintf function to strip away secrets.
An...
Signed-off-by: Kelton Bassingthwaite
Force another solve, so that the LLB created by the
dockerfile.v0 frontend actually runs, as we expect it to.
Also, enforce Evaluate: true on SolveRequests that run through the Solver
Signed-off-by: Joel Longtine
While working on the Changelog.com config, I found that running dagger with --no-cache caused #CacheDir to not persist needed files across tasks (not just runs - that's expected).
As seen below, I download dependencies in deps (into /app/deps, and those dependencies would not be in a subsequent task depsCompileProd when that #CacheDir is mounted.
actions: {
depsCache: engine.#CacheDir & {
id: "depsCache"
}
depsCacheMount: "depsCache": {
dest...
Universe packages must be ported to the Europa syntax. This is a tracking issue for the entire collection of Universe.
For each, we should:
- Determine whether it should be ported or not
- If it requires further discussion, create a dedicated issue (do not discuss individual packages here)
- Have an assignee
- And finally, an implementation status ❓🚧 ✅
| Package | Should be orted? | Dedicated Issue | Assignee | Status |
|---|---|---|---|---|
| **alp... |
Before porting all universe packages (#1358), we should finalize at least 2 reference packages.
Basically, those should be using the best practices, conventions, and tests we want all other packages to follow.
/cc @shykes
We should have a README file somewhere encoding package coding style.
Right now there's a few proposals around:
- #1243
- #397
- #1322
- Cleanup
universe.dagger.io/docker.#Build - Fix (partially)
universe.dagger.io/examples/changelog.com
Still to do:
- [ ] Support Local State
- [ ] Support Python runtime
- [ ] Support dotnet runtime
- [ ] Support go runtime
- [ ] Add test to ensure outputs loaded correctly
Bumps concurrently from 6.5.1 to 7.0.0.
Release notes
Sourced from concurrently's releases.
v7.0.0
🎉 🥂 Happy 2022!
Breaking changes
Dropped support for Node 10. Minimum version is now 12.20.
concurrently() API now has a different return value. Please refer to the docs.
Functional changes
Added --group flag/option to run process in parallel but print output in sequence - #75, #79, #272
Codebase converted to TypeScript. Some bugs may aris...
On command "dagger -e local input list"
I had the error :
ERR system | failed to stop buildkit: exit status 1 output=Error: No such container: dagger-buildkitd
FTL system | unable to create client: exit status 1
Test with :
- dagger 0.1.0-alpha.31 (374f1ba) linux/amd64 and dagger devel (7d965942) linux/amd64
- Ubuntu 20.04.3 LTS
- Docker 19
It's a problem with the docker version. On v19 "docker rm -vf badname" return an exit code 1 and v20 return an exit code 0.
http...
For some reason, these linter errors just started appearing, even though those lines have been present for a long time. It looks like my last PR on README triggered it, even though I didn’t touch those lines.
dagger up return error behind a http proxy
Test with :
- dagger 0.1.0-alpha.31 (374f1ba) linux/amd64 and dagger devel (7d965942) linux/amd64
- Ubuntu 20.04.3 LTS
- Docker 20
All docker command work with my proxy (configure into ~/.docker/config.json and /etc/systemd/system/docker.service.d/http-proxy.conf)
But with dagger I got this error.
[✗] wait ...
Signed-off-by: Joel Longtine
Overview
This issue aims to centralize the design of multi-platform support in the upcoming Europa release. This is an important and complex feature, which is being discussed in many different places. Anyone interested in this topic is encouraged to start reading here, and participate here as much as possible, to minimize fragmentation.
What is a platform
In this context, “platform” designates a compute platform that is a combination of an operating system and hardware archit...
[dagger/examples] Pull request opened: #47 todoapp: update gitignore to reflect new post\-init state
The first step of the tutorial is dagger init, which leaves the git index in a
dirty state because of recent changes to gitignore.
This update just copies the newer generated gitignore
While talking with @aluzzardi, we thought that regular auto-releases which happen with no intervention on our part would be a good idea. The last Dagger release (0.1.0-alpha.31) was over 1 month ago, and there are Europa-related changes which we want to make available in the Dagger GitHub Action. We should never have more than 1 week of unreleased
changes. While more often is better, and we may need to tweak this later, this is a decent starting point: release every Tuesday, 5pm UTC & 9am SF...
Bumps github.com/containerd/containerd from 1.5.8 to 1.5.9.
Release notes
Sourced from github.com/containerd/containerd's releases.
containerd 1.5.9
Welcome to the v1.5.9 release of containerd!
The ninth patch release for containerd 1.5 is a security release to fix CVE-2021-43816.
Notable Updates
Fix unprivileged pod using 'hostPath' bypassing SELinux labels (GHSA-mvff-h3cj-wj9c)
Fix setting the "container_kvm_t" SELinux label (#6381)
...
Bumps github.com/docker/buildx from 0.6.2 to 0.7.1.
Release notes
Sourced from github.com/docker/buildx's releases.
v0.7.1
Notable changes
Fix issue with matching exclude rules in .dockerignore docker/buildx#858
Fix bake --print JSON output for current group docker/buildx#857
v0.7.0
Welcome to the 0.7.0 release of buildx!
Notable Changes
TLS certificates from BuildKit configuration are now transferred to build container in container and kubernetes driv...
Bumps @svgr/webpack from 5.5.0 to 6.2.0.
Release notes
Sourced from @svgr/webpack's releases.
v6.2.0
Bug Fixes
cli: pass in parser to prettier format to avoid deprecation warning (#662) (74fa3ae)
plugin-svgo: handle potential errors from optimize (#663) (7582d31)
Features
support comments in templates (#661) (9afb590)
v6.1.2
Bug Fixes
specify valid peer deps (45a76ed)
rollup: missing dep & missing map return (#652) (12627fc)
v6.1.1
Bug Fixes
...
Signed-off-by: jffarge
Overview
The current version of Europa has built-in support for sops, which it uses to deliver an all-in-one secrets management feature. The Europa release changes that: Dagger still support secrets, but as a simpler and more modular feature.
This means that users will have more control over how to handle their secrets, and the ecosystem will have more opportunities to extend Dagger. But it also means that, out of the box, dagger secret will not do as much.
So the question is:...
Currently you are forced to use the .git suffix if the repository is not from github.
The imported package keeps the suffix thus altering the import directive to be used, therefore the import will be different in the tests of the project containing the package compared to projects where dagger mod get is used.
Moreover, the structure of a package is different from what is documented
Supposi...
Problem
In Europa, the CUE tree contains values that are sensitive and contextual. How to handle these values is crucial to the final user experience, but is not yet designed in full detail, let alone implemented.
- Sensitive means: users could get hacked if they store or distribute this value incorrectly, or share it to the wrong person.
- Contextual means: this value only makes sense in this environment, and it would be nonsensical and confusing for it to be shared beyond ...
Bumps go.opentelemetry.io/otel/trace from 1.2.0 to 1.3.0.
Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.
[1.3.0] - 2021-12-10
⚠️ Notice ⚠️
We have updated the project minimum supported Go version to 1.16
Added
Added an internal Logger.
This can be used by the SDK and API to provide users with feedback of the internal state.
To enable verbose logs configure the logger which will print V(1) logs. For debugging informat...
Bumps go.opentelemetry.io/otel/sdk from 1.2.0 to 1.3.0.
Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.
[1.3.0] - 2021-12-10
⚠️ Notice ⚠️
We have updated the project minimum supported Go version to 1.16
Added
Added an internal Logger.
This can be used by the SDK and API to provide users with feedback of the internal state.
To enable verbose logs configure the logger which will print V(1) logs. For debugging information ...
- switch from github.com/cue-lang/cue -> github.com/dagger/cue
- switch from v0.4.0 to master
Bumps amplitude-js from 8.13.0 to 8.15.0.
Release notes
Sourced from amplitude-js's releases.
v8.15.0
8.15.0 (2022-01-07)
Features
make snippet public in NPM (#478) (8f512f0)
v8.14.1
8.14.1 (2021-12-23)
Bug Fixes
global-scope reference error in nodejs (#474) (bdce39d)
v8.14.0
8.14.0 (2021-12-21)
Features
add runNewSessionStartCallback on new sessionId on log event (#469) (bb8b26b)
support web worker env (#467) (52abaf0)
v8.13.1
8.13...
Bumps sass from 1.43.5 to 1.47.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.47.0
To install Sass 1.47.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
JS API
TypeScript Declarations
Add declarations for the TRUE and FALSE constants.
See the full changelog for changes in earlier releases.
Dart Sass 1.46.0
To install Sass 1.46.0, download one of the packages b...
Signed-off-by: Joel Longtine
Netlify-cli got a regression from one of its libraries: prettyjson.
Cf. https://github.com/rafeca/prettyjson/issues/58
This PR comments the test until netlify gets fixed. Shouldn't take that long
Cf. https://github.com/netlify/cli/issues/4011
Signed-off-by: guillaume
Currently universe has limited support for direct AWS API calls to create resources such as S3 buckets alpha.dagger.io/aws/s3. To continue this pattern universe would need to support 250 services which is a huge—no YUGE— undertaking. Should Dagger simply support cloudformation and terraform? Or should we duplicate what those tools do and provide CUE packages for each and every resource AWS provides?
This is further complicated by the lack of dagger down. Would users really want to ...
Bumps cypress from 9.2.0 to 9.2.1.
Release notes
Sourced from cypress's releases.
9.2.1
Released 1/10/2022
Bugfixes:
Fixed a regression in 9.2.0 to keep
Cypress open after each spec finishes when the --headed --no-exit flags are
passed to cypress run. Fixes
#19485.
Improve heuristic for verifying when the --openssl-legacy-provider option
should be passed to the plugins' child process when the system Node version is
v17+. This prevents Cypress from c...
7:46PM FTL system | failed to up environment: task failed: inputs.secrets.token: exit status 128
This is because we are not reading the error from stderr.
In preparation for Europa, we will vendor multiple CUE modules:
pkg/alpha.dagger.io: legacy non-europa packagespkg/dagger.io: core Europa packagespkg/universe.dagger.io: Europa universe
Problem
The new docker.#Run has a facility for running scripts. This facility is neat, but it relies on inlining script contents in the command-line. This works well for small shell scripts, but has 2 issues:
- Command-line size limit. The operating system may impose arbitrary limits on the number of characters in a command. Large scripts could trigger that limit. Since the limit varies between operating systems, making the error particularly unpredictable and therefore painful.
...
Problem
Until the Europa release, dagger takes a hands-on approach to managing computed values:
- Each Dagger environment has state
- Environment state includes computed values
- At the end of each run,
dagger upwrites a new file containing all the computed values, in the environment state directory - User can subsequently query the current state, with computed values, via
dagger query
This workflow is disrupted by Europa, because the concept of stateful environment no l...
Signed-off-by: Andrea Luzzardi
Problem
Currently there is no way to selectively run parts of a DAG. This would be useful for 2 distinct use cases:
-
A developer may create a DAG with lots of features, with the expectation that different users will selectively enable different parts of these features. For example one might want to run tests for the frontend but not the backend; generate API docs and check them for errors but not deploy them; etc.
-
Regardless of features, a user may want to inspect the interna...
dagger version: dagger 0.1.0-alpha.31 (374f1ba) linux/amd64
OS: Linux hawk 5.15.8-76051508-generic #202112141040~1639505278~21.10~0ede46a SMP Tue Dec 14 22:38:29 U x86_64 x86_64 x86_64 GNU/Linux
Heya Dagger team :) Given the following files & commands, input secrets are being stored on disk as plain text, as opposed to being sops-encrypted values. In general, the reproduction steps are:
- Init a new project with
dagger init - Create a local env with `dagger new local -p plans/...
- Run a part of the DAG → Selectively run parts of the DAG #1396
I finally got around to addressing in an issue (based on fantastic verbal feedback on Discord). See #1396 .
Netlify test was breaking due to a regression in prettyjson library.
The Netlify team fixed the cli, upgrading it to version 8.6.21 solves the issue
Closes #1385
pairs: @jlongtine
Signed-off-by: guillaume
Doc's main image is currently heavy.
This PR makes it 5x smaller while keeping equivalent design
Pairs: @gerhard, @slumbering
Signed-off-by: guillaume
Several contributors asked us how to retrigger the CI.
This PR adds a section to contributing.md showing an example
Pairs: @gerhard, @slumbering
Signed-off-by: guillaume
- move alpha.dagger.io/europa to dagger.io
- update europa dagger import path to dagger.io/dagger
- vendoring: support multiple modules
Signed-off-by: Andrea Luzzardi
Signed-off-by: Joel Longtine
@jlongtine just implemented the possibility to use hidden fields.
This PR implements this feature on #Sudbir
Pair: @jlongtine
Signed-off-by: guillaume
universe.dagger.io/docker is untested and is used by all other packages.
I attempted to test yarn but it appears to require a few fixes.
I'm getting an invalid FS $dagger.fs._id: non-concrete value (null|string) when attempting to use its output.
Looks like the problem lies below the stack and we'll have to test docker (#1407) and bash (#1408) to figure out what's wrong.
Furthermore there seems to be issues in yarn itself:
// Build a Yarn package
#Build: {
// Run yarn in a containerized build environment
command: bash.#Run & {
*{
...
Bumps follow-redirects from 1.14.6 to 1.14.7.
Commits
2ede36d Release version 1.14.7 of the npm package.
8b347cb Drop Cookie header across domains.
See full diff in compare view
- re-Swizzle (override docusaurus component) "DocPage" to get the latest changes
- need to move gtag options from themeconfig to preset-classic configuration. This change has been introduce with docusaurus beta.10
Related docusaurus issue:
https://github.com/facebook/docusaurus/pull/5832
Signed-off-by: jffarge
Overview
The new docker package, to be introduced in the Europa release at universe.dagger.io/docker, will be the primary API for using Docker containers, and as such will play an important role in our overall developer experience. Its overall design is complete, but implementation is not. No doubt there will be some last minute questions on the design along the way, too.
This issue tracks remaining work to call the docker package complete.
Use cases
Below is a list of...
Bumps go.opentelemetry.io/otel/exporters/jaeger from 1.2.0 to 1.3.0.
Changelog
Sourced from go.opentelemetry.io/otel/exporters/jaeger's changelog.
[1.3.0] - 2021-12-10
⚠️ Notice ⚠️
We have updated the project minimum supported Go version to 1.16
Added
Added an internal Logger.
This can be used by the SDK and API to provide users with feedback of the internal state.
To enable verbose logs configure the logger which will print V(1) logs. ...
Bumps github.com/spf13/viper from 1.8.1 to 1.10.1.
Release notes
Sourced from github.com/spf13/viper's releases.
v1.10.1
This is a maintenance release upgrading the Consul dependency fixing CVEs.
v1.10.0
This is a maintenance release primarily containing minor fixes and improvements.
Changes
Added
Experimental finder based on io/fs
Tests are executed on Windows
Tests are executed on Go 1.17
Logger interface to decouple Viper from JWW
In addition to the a...
Bumps github.com/rs/zerolog from 1.26.0 to 1.26.1.
Commits
791ca15 Update the x/crypto dependency
0d2f0be fix: error field name color (#377)
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-...
Bumps github.com/spf13/cobra from 1.2.1 to 1.3.0.
Release notes
Sourced from github.com/spf13/cobra's releases.
v1.3.0 - The Fall 2021 release 🍁
Completion fixes & enhancements 💇🏼
In v1.2.0, we introduced a new model for completions. Thanks to everyone for trying it, giving feedback, and providing numerous fixes! Continue to work with the new model as the old one (as noted in code comments) will be deprecated in a coming release.
DisableFlagParsing now...
Bumps sass from 1.47.0 to 1.48.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.48.0
To install Sass 1.48.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
JS API
Potentially breaking bug fix: Match the specification of the new JS API by setting LegacyResult.map to undefined rather than null.
TypeScript Declarations
Add a declaration for the NULL constant.
Se...
Fixing the git mod unit tests
Bumps google.golang.org/grpc from 1.42.0 to 1.43.0.
Release notes
Sourced from google.golang.org/grpc's releases.
Release 1.43.0
API Changes
grpc: stabilize WithConnectParams DialOption (#4915)
Special Thanks: @hypnoglow
Behavior Changes
status: support wrapped errors in FromContextError (#4977)
Special Thanks: @bestbeforetoday
config: remove the environment variable to disable retry support (#4922)
New Features
balancer: new field Authority i...
Because of the mount disjunction, passing a non-concrete #FS results in
CUE being confused as to what type of mount it is (Cache, FS, Secret,
...).
This adds an explicit error check.
Signed-off-by: Andrea Luzzardi
Yarn tests with fixes bubbling up the stack.
Pairing with @samalba
Not sure if this is an actionnable issue, could be closed and taken appart in other issues. It's not about CUE coding style, so I am leaving it here.
This was gathered while debugging Yarn test with @aluzzardi
- Most (if not all) package definitions are now using verbs instead of names - we had an opposite convention not so long ago (#397). This is likely to trigger a bunch of questions and debate about "is dagger declarative or imperative", etc...
alpine.#Buildis counter-intuitiv...
I forgot to use .contents on my input directory (source: inputs.directories.testdata instead of source: inputs.directories.testdata.contents):
inputs: {
directories: {
testdata: path: "./testdata"
}
}
actions: {
TestReact: {
pkg: yarn.#Build & {
source: inputs.directories.testdata
}
}
This is the error I'm getting back, which is very hard to understand:
4:48PM FTL system | failed to load plan: actions.TestReact.pkg.source.$dagge...
engine/fs.cuecontains every FS operation:#Mkdir,#ReadFile,#WriteFile, ...engine/secret.cueis supposed to contain every Secret operation: contains only#NewSecretfor nowengine/transformsecret.cueis on its own with#TransformSecret
Issues closed by this change: https://github.com/dagger/dagger/issues/1218
Signed-off-by: jffarge
#TransformSecret is currently used as such:
repoPassword: engine.#TransformSecret & {
input: inputs.secrets.sops.contents
// output signature after tranformation
// output: #Secret | {[string]: output}
#function: {
input: _
output: yaml.Unmarshal(input)
}
}
- I think it's pretty cool but IMHO hard to grasp for the average person as it's using super advanced concepts (CUE callback as a definition with back and forth between the runtime).
- Using it is ...
Signed-off-by: Andrea Luzzardi
Simplified git repository management using dagger mod get
- Fix implementation
inputandimagefields (for compat with #Build without sacrificing most intuitive field name). - What else? cc @helderco
Closes #1427
Signed-off-by: Richard Jones
Bumps shelljs from 0.8.4 to 0.8.5.
Release notes
Sourced from shelljs's releases.
v0.8.5
This was a small security fix for #1058.
Commits
70668a4 0.8.5
d919d22 fix(exec): lockdown file permissions (#1060)
See full diff in compare view
[](https://docs.gi...
Bumps follow-redirects from 1.13.0 to 1.14.7.
Commits
2ede36d Release version 1.14.7 of the npm package.
8b347cb Drop Cookie header across domains.
6f5029a Release version 1.14.6 of the npm package.
af706be Ignore null headers.
d01ab7a Release version 1.14.5 of the npm package.
40052ea Make compatible with Node 17.
86f7572 Fix: clear internal timer on request abort to avoid leakage
2e1eaf0 Keep Authorization header on subdomain redirec...
Overview
The OCI spec sets Env as a list of strings, naturally we want a 1:1 map in CUE:
// Container image config. See [OCI](https://www.opencontainers.org/).
// Spec left open on purpose to account for additional fields.
// [Image Spec](https://github.com/opencontainers/image-spec/blob/main/specs-go/v1/config.go)
// [Docker Superset](https://github.co...
This is an alternative to #1434, by keeping docker.#Run compatible with docker.#Build.
More context in https://github.com/dagger/dagger/pull/1434#issuecomment-1013719632.
Signed-off-by: Helder Correia
/cc @shykes
This was created so that a link can be used in https://github.com/dagger/dagger/pull/1372#issuecomment-1014772982
Will circle back and add more details shortly.
https://github.com/dagger/dagger/pull/1436 passed with no issues, including the "Redirect user after unsuccessful sign in" test: https://github.com/dagger/dagger/runs/4825501863?check_suite_focus=true#step:3:105

As soon as it got merged, the same test failed:
https://github.com/dagger/dagger/runs/4844206647?check_suite_focus=true#step:3:105
 (#87)
Constraints: Introduce Equals() and sort.Interface methods (#88)
Changelog
Sourced from github.com/hashicorp/go-version's changelog.
1.4.0 (January 5, 2022)
FEATURES:
Introduce MustConstraints() (#87)
Constraints: Introduce Equals() and sort.Interface methods (#88...
Bumps github.com/sergi/go-diff from 1.1.0 to 1.2.0.
Commits
0a651d5 Optimize diffLinesToStringsMunge to use uint32 instead of string, and add ext...
f9beae7 Index out of range panic in DiffCharsToLines on large JSON diff
f6725a1 Index out of range panic in DiffCharsToLines on large JSON diff
db1b095 Index out of range panic in DiffCharsToLines on large JSON diff
df97e07 Merge pull request #108 from pakohan/master
a87b244 Merge pull request #112 from eclip...
I would like dagger move forward to v0.2.0 and release the latest v0.1.0 release tagged as v0.1.0; the next version can be v0.2.0-alpha.1 (removing old v0.1.0 code).
When dagger move from v0.x.0 to v0.y.0 a migration guide can be created like in Spring Boot leaving the documentation free of this burden.
When dagger v1.0.0 will be released i suggest to adhere strictly to SemVer.
When dagger release next major ve...
I agree that we should release 0.1.0 now and switch to 0.2.0alphaX in preparation for Europa (which will be 0.2.0).
@gerhard #1088 is an entrypoint for explaining the Europa release.
I agree that we should release 0.1.0 now
OK, let's wait for v0.1.0-alpha.33 to be tagged automatically - I really want to see how well this works in practice - then manually trigger tag v0.1.0. Who wants to join me for that?
and switch to 0.2.0alphaX in preparation for Europa (which will be 0.2.0).
Agreed. That is a new PR which I can submit as soon as ☝🏻 happens.
#1279 added an --output flag to save computed output, but the computed values aren't being filled.
Here's a pre-Europa example:
params: {
source_image: "alpine"
target_image: "registry.example.net/test"
}
inputs: {
secrets: registry: dagger.#Secret
}
actions: {
base: docker.#Pull & {
from: params.source_image
}
push: docker.#Push & {
target: params.target_image
source: base
auth: { ... }
}
}
...
If auth is only in docker.#Push:
dagger.#Plan & {
inputs: {
secrets: registry: envvar: "REGISTRY_PASSWORD"
}
actions: {
base: docker.#Pull & {
source: "alpine"
}
push: docker.#Push & {
dest: "registry.example.net/test"
image: base.image
auth: { ... }
}
}
}
I get this error:
ERR actions.push._push | failed: failed to solve: unexpected status: 401 Unauth...
Problem
Two major actions in the new universe.dagger.io/docker don’t work together: docker.#Run and docker.#Build. It is extremely common to run containers as part of a container build, so this is a major issue that breaks virtually all other packages in some way.
In short:
docker.#Builddefines an interface for implementing build steps. The interface isinput?: #Image, output: #Image.docker.#Runcannot cleanly implement this interface as-is, for 2 reasons:- ...
Bumps remark-code-import from 0.4.0 to 1.0.0.
Release notes
Sourced from remark-code-import's releases.
v1.0.0
Breaking changes
The plugin is now ESM only. Node 12+ is needed to use it and it must be imported instead of required.
New features
Add types for TypeScript.
Full Changelog: https://github.com/kevin940726/remark-code-import/compare/v0.4.0...v1.0.0
Commits
40ca493 1.0.0
e7f33c5 Use typescript and esm
See full diff in comp...
Fixes #1445
Signed-off-by: Helder Correia
@shykes I did change the default version to "latest" since pinning versions would require that we update this regularly. Seems "latest" makes sense as a default and if you want a specific version you can specify that. Thoughts? Only other change was splitting tests into two files for clarity and following the patterns we have in tests/tasks/**
@aluzzardi This still needs a .bats file
Signed-off-by: Richard Jones
@gerhard I'm sure you're aware, but it looks like the trigger release workflow happened (both automatically and via a run by you...) but didn't trigger the release workflow. It does appear that v0.1.0 was tagged by that release. I'm confused why that didn't run the release workflow. Seems like it should have. Let me know if you want/need another set of eyes to help debug this.
The first implementation of the trigger-release would not push a tag, meaning that the Release workflow was not getting triggered. While we could have changed the Release workflow to react on "Trigger Release" workflow runs, the inter-dependency felt awkward and brittle:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b711c5cf..843fdb70 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -7,10 +7,16 @@ on:
push...
https://github.com/dagger/dagger/pull/1450 explains why this didn't work, and also proposes a fix.
This will prevent the job waiting on itself to complete (which will not happen until GitHub Actions kills the run).
This is a follow-up & fix to #1450
Agreed.
- Last
0.1.xrelease should be0.1.0 - Europa "alpha" releases should go out as
0.2.0-alpha.X - Europa eventually will go out as
0.2.0 nextmilestone should remainnextfor now. We'll rename it to0.2.0-alpha.1and close it when the time comes.- We shouldn't attempt to name milestone against release names ahead of time because we don't know what that will be.
0.2.0-alpha.2might happen a week afteralpha.1, or merely hours, if we have to push a hot fix.
[dagger/dagger] Issue opened: #1452 Europa: reconcile docker\.\#Push\.auth and engine\.\#Push\.auth?
The signature of docker.#Push.auth and engine.#Push.auth are different. Do they still need to be?
Differences are:
- Array vs map
- Other?
cc @samalba @aluzzardi
Additional context
- Discussed here
- And here (earlier thread which I can’t find at the moment)
Overview
Dagger Universe is a catalog of CUE packages, carefully curated for safety and quality, that all Dagger developers can use to build awesome CICD pipelines without reinventing the wheel.
It is crucial to the success of Dagger that Universe can combine three properties:
- Growth. We need a lot of packages, and the capacity to publish more and more at an accelerated growth rate
- Quality. Packages must work well, be well documented, bugs need to be fixed quickly, etc.
3)...
Dagger used to rely on registry.ParseNormalize function to extract registry domains from images / registry URLs.
However, it contained some flaws for private registries.
This PR fixes that by implementing a test suite around it, and tweaks the splitReposSearchTerm function from the docker CLI.
The logic of splitReposSearchTerm is kept, and enhanced to fit to all of our use cases.
In case of a bad matching, a clear error is returned
Fixes #1105
Signed-off-by: guillaume
DEPENDS ON #1424
- Each package can include its own bats file (e.g.
universe.dagger.io/yarn/test/yarn.bats) - universe.dagger.io includes a common bash helper file
- bats is installed/launched through yarn with minimal setup
- shellcheck is done across the entire repo
- Integrated into our CI
Problem
In Europa, Universe packages implement a pattern for easily customizing the base image of containers. For example, yarn.#Build uses a default image with yarn installed, but that image can be swapped out without wrapping.
Unfortunately, the current implementation of that pattern is broken (as reported in #1424).
Solution
- Fix implementation of the pattern
- If the pattern itself is broken and impossible to implement correctly, discuss an alternative
- In the mean...
Bumps sass from 1.48.0 to 1.49.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.49.0
To install Sass 1.49.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Fix a bug in string.insert with certain negative indices.
JS API
Add support for the sourceMapIncludeSources option in the new JS API.
TypeScript Declarations
Fix a bug where LegacyPluginThis.options.linefe...
Bumps cypress from 9.2.1 to 9.3.1.
Release notes
Sourced from cypress's releases.
9.3.1
Released 1/19/2022
Bugfixes:
Fixed an issue where the bin file was released with windows line breaks. Fixes
#19747.
9.3.0
Released 1/18/2022
Features:
Added a new Cypress command, called
.selectFile(), to select a file or files in an
HTML5 input element or simulate dragging a file or files into the browser. The
API is similar to cypress-file-upload and we have ...
Bumps amplitude-js from 8.15.0 to 8.15.1.
Release notes
Sourced from amplitude-js's releases.
v8.15.1
8.15.1 (2022-01-18)
Bug Fixes
Add missing worker storage length for clear method (#487) (6abb957)
Changelog
Sourced from amplitude-js's changelog.
8.15.1 (2022-01-18)
Bug Fixes
Add missing worker storage length for clear method (#487) (6abb957)
Commits
4c9cf0f chore(release): 8.15.1 [skip ci]
cb84411 build: re-order create-sni...
Must be merged after #1449
- Fix netlify.#Deploy (there's still FIXMEs)
- Externalize the
deploy.shscript - Add tests
- Misc engine fixes for more explicit error messages
Signed-off-by: Andrea Luzzardi
Extract from netlify (#1462):
_alpine: alpine.#Build & {
packages: {
bash: {}
curl: {}
jq: {}
yarn: {}
}
}
_netlifyImage: docker.#Run & {
image: _alpine.output
script: "yarn global add netlify-cli@3.38.10"
}
// Execute `netlify deploy` in a container
command: docker.#Run & {
image: _netlifyImage.output
}
- alpine is in its own step
- there's a docker run step to install netlify
I'd like to do this:
_build: docker.#Build & {
...
Rather than having multiple CONTRIBUTING files, one for each repository, which we will need to keep in sync, we could use GitHub's special .github repository for community files.
This idea was first reported by @bpo in the context of the examples repository: https://github.com/dagger/examples/pull/47#issuecomment-1012517202
I have added it as https://github.com/dagger/.github and explained how the contributing flow now changed for first-time contributors to any repository in our org...
I would like Europa version is able to execute both files:
package main
import (
"dagger.io/dagger/engine"
"universe.dagger.io/alpine"
)
engine.#Plan & {
actions: {
test: {
name: "Works"
image: alpine.#Build & {
version: "3.15.0@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3"
packages: {
bash: {}
yarn: {}
}
}
}
}
}
and
package main
...
When using docker.#Build as a step within another docker.#Build, dagger throws CUE errors.
I've narrowed it down to builds containing multiple steps:
_build: docker.#Build & {
steps: [
docker.#Build & {
steps: [
docker.#Pull & {
source: "alpine"
},
// FIXME: the following breaks with:
// actions.deploy._build._dag."0".output: 1 errors in empty disjunction::
// pkg/universe.dagger.io/docker/build.cue:26:11
docker.#Run & {
...
Changes
Related to #1371, this PR is a working PoC of multi-platform in Europa that we can use to choose a final design
This PR improve #Push to push multi-platform image using new inputs field.
It will push all image one by one and then return the digest of the manifest list. The user can then use it to pull a specific platform using the new platform field in #Pull.
Indeed, I've also update #Dockerfile to supports only one platform instead of an array.
@shykes @al...
Signed-off-by: Andrea Luzzardi
For some reason, we are executing tasks that are in definitions. This used to not be the case. Could it be related to FindHidden?
#TestStep: {
input: docker.#Image
output: docker.#Image
run: docker.#Run & {
"input": input
cmd: name: "ls"
}
output: run.output
}
$ dagger up
4:32PM ERR #TestStep.run._exec | failed: invalid FS at path "#TestStep.run._exec.input": FS is not set duration=0s
I tried this tutorial on my mac with docker installed.
It failed in dagger up step:
[✗] app.ctr 169.7s
#6 0.121 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz ...
Changes
There are many gitignore that do not ignore universe.dagger.io and it become painful to choose which file I want to commit.
This PR just update and add missing .gitignore.
Close it if you think it's not relevant.
Changes
Related to #1407, add the following list of test on docker.#Run
- [x] Run a simple command
- [x] Run a script
- [x] Run a command from an image built
- [x] Export a file
- [x] Export a directory
They are faster and now work as expected
We fixed a few issues with @shykes & @jlongtine, and @talentedmrjones
gave us this great command to run:
cd pkg/universe.dagger.io/examples/changelog.com/highlevel
dagger up --europa ./gerhard --log debug --log-format plain
7:42PM DBG system | detected buildkit config haveHostNetwork=true isActive=true version=v0.9.3
7:42PM DBG system | loading plan args=[
"./gerhard/"
]
7:42PM DBG system | vendoring packages mod=/Users/gerhard/gi...
Bug
I found a small issue on docker.#Run when I tested export feature
Here a code snippet with the explanation
package test
import (
"dagger.io/dagger"
"dagger.io/dagger/engine"
"universe.dagger.io/docker"
"universe.dagger.io/alpine"
)
dagger.#Plan & {
actions: {
image: alpine.#Build
run: docker.#Run & {
"image": image.output
script: #"""
echo -n hello_world >> /output.txt
...
Signed-off-by: Andrea Luzzardi
Currently in Dagger, all the CUE tasks are hard-coded via Register() call:
https://github.com/dagger/dagger/blob/a6330f8167187d4805693fa19d4feaa1decc676d/plan/task/copy.go#L13
We want to extend it with more CUE tasks with Go functions. It will look like this:
func main() {
dgRuntime := dagger.NewRuntime()
dgRuntime.TaskStore().Register("KubeApply", myFunc)
}
Here is a list of functions to consider: https://kubevela.io/docs/platform-engineers/workflow/cue-actions#c...
Trying to run the following to test dagger input/output
package func
import (
"alpha.dagger.io/dagger"
)
metadata: {
name: string & dagger.#Input
}
outputs: {
metadata: {
name: metadata.name & dagger.#Output
}
}
After running dagger up, the output value is always "_":
Output Value Description
outputs.metadata.name _ -
Bumps nanoid from 3.1.30 to 3.2.0.
Changelog
Sourced from nanoid's changelog.
Change Log
This project adheres to Semantic Versioning.
3.2
Added --size and --alphabet arguments to binary (by Vitaly Baev).
3.1.32
Reduced async exports size (by Artyom Arutyunyan).
Moved from Jest to uvu (by Vitaly Baev).
3.1.31
Fixed collision vulnerability on object in size (by Artyom Arutyunyan).
Commits
23b1369 Release 3.2 version
967788e Remove TS test tools
27eaa9...
Bumps nanoid from 3.1.9 to 3.1.31.
Changelog
Sourced from nanoid's changelog.
3.1.31
Fixed collision vulnerability on object in size (by Artyom Arutyunyan).
3.1.30
Reduced size for project with brotli compression (by Anton Khlynovskiy).
3.1.29
Reduced npm package size.
3.1.28
Reduced npm package size.
3.1.27
Cleaned dependencies from development tools.
3.1.26
Improved performance (by Eitan Har-Shoshanim).
Reduced npm package size.
3.1.25
Fixed br...
I have a Dockerfile:
FROM jupyter/scipy-notebook
WORKDIR /workspace
RUN mkdir /workspace/my-model
ENV MODEL_DIR=/workspace/my-model
ENV MODEL_FILE_LDA=clf_lda.joblib
ENV MODEL_FILE_NN=clf_nn.joblib
COPY requirements.txt ./requirements.txt
RUN pip install -r requirements.txt
COPY train.csv ./train.csv
COPY test.json ./test.json
COPY train.py ./train.py
COPY api.py ./api.py
RUN python3 train.py
How can I do that in os.#Container like the getting starte...
I've encountered a weird error.
Basically, when running dagger up on a package using the alpine package behind, it was throwing the following error:
5:57PM DBG system | detected buildkit config haveHostNetwork=true isActive=true version=v0.9.3
5:57PM DBG system | failed to check universe version: universe not installed
5:57PM DBG system | spawning buildkit job attrs=null localdirs={}
5:57PM INF HelloWorld | computing
5:57PM INF config.credentials.secret | computing
5:57P...
Closes #1351
Signed-off-by: Helder Correia
/cc @aluzzardi
Currently if I define an input as optional:
myinput?: {...} @dagger(input)
Then this will not be shown in dagger input list. This is better shown as optional input.
Currently docker.#Build can only be manually input via dagger input dir $path command.
This is not possible to parse entire yaml as value as follows:
build:
source: .
push:
target: ghcr.io/hongchaodeng/ai-demo
It would be great to support source path string input.
We had 3 failures in a row: https://github.com/dagger/dagger/runs/4921785672?check_suite_focus=true
While https://github.com/dagger/dagger/pull/1476 doesn't change anything code-wise in Dagger, I cannot merge it when the CI / Universe check is failing.
I am suspecting that it's the 100% CPU utilisation on the dagger-ci VM:

I don't know why this started happening just n...
Bumps amplitude-js from 8.15.1 to 8.16.0.
Release notes
Sourced from amplitude-js's releases.
v8.16.0
8.16.0 (2022-01-21)
Bug Fixes
catch errors with Request.send (#490) (333f8a4)
Features
accept custom session id paramter in config (#485) (b64b8b0)
allow cors header to be excluded from request headers (#489) (0119ac7)
Changelog
Sourced from amplitude-js's changelog.
8.16.0 (2022-01-21)
Bug Fixes
catch errors with Request.send (#...
Bumps docusaurus-plugin-sass from 0.2.1 to 0.2.2.
Release notes
Sourced from docusaurus-plugin-sass's releases.
v0.2.2
Merge pull request #23 from Queue-ri/master
Fix npm ERESOLVE and EJSONPARSE in package.json
Commits
c195399 Merge pull request #23 from Queue-ri/master
d7cb7fd fix(deps): Remove comma in git repository url
92a4884 fix(deps): Support docusaurus v2 beta
34b7145 Merge pull request #22 from v-jiepeng/patch-1
287fcf2 Upd...
[dagger/dagger] Issue opened: #1492 engine\.\#Source\.path is not properly supporting relative paths
In some cases setting path: "./scripts" results in 'invalid path' or path does not exist errors. It seems it looks for the path to be relative to cwd rather than v.Filename
I just noticed a data race in CI: https://github.com/dagger/dagger/runs/4930769392?check_suite_focus=true
It looks like it might be happening in task/transformsecret.go.
We're using value.Walk(), and in Walk we've left this nugget:
func (v *Value) Walk(before func(*Value) bool, after func(*Value)) {
// FIXME: lock?
So I think yes, we should lock.
/cc @talentedmrjones
Trace:
# (from function `dagger' in file netlify/test/../../bats_helpers.bash, lin...
Acquire a read lock when walking through a CUE value.
Fixes #1494
Signed-off-by: Andrea Luzzardi
As discussed in #1429 we need some high-level wrappers to ease the entry into #TransformSecret. This is a proposal for the design of dagger.#SopsSecret (I'm not attached to names at this point, open/happy to consider other suggestions)
package dagger
import (
"encoding/yaml"
)
#SopsSecrets: {
input: dagger.#Secret
_transform: #TransformSecret: {
"input": input
#function: {
input: _
output: yaml.Unmarshal(input)
}
}
output: ...
As discussed in #1429 we need some high-level wrappers to ease the entry into #TransformSecret. This is a proposal for the design of dagger.#JsonSecret (I'm not attached to names at this point, open/happy to consider other suggestions)
package dagger
import (
"encoding/json"
)
#JsonSecrets: {
input: dagger.#Secret
_transform: #TransformSecret: {
"input": input
#function: {
input: _
output: json.Unmarshal(input)
}
}
output: ...
I had to re-run all jobs in the CI workflow at least 10 times in the past 2 days. The problem is that when one jobs fails, all jobs need to re-run, which sometimes results in different jobs failing.
This not only wastes a lot of dev time - 2h in total for my last PR https://github.com/dagger/dagger/pull/1476 - but it also wastes CI minutes and fragments our flow to the point that we are tempted to ignore CI.
This is a very tricky proposition and while it may feel liberating in the short...
This requires us to spin up a new dagger-ci VM, as mentioned here: https://github.com/dagger/dagger/pull/1493#issuecomment-1021080655
This is meant to be used with https://github.com/elitak/nixos-infect to provision a VM on Digital Ocean declaratively, with everything that we need for these tests.
The proof-of-concept worked. The next step is to wire it up for real in something like make dagger-ci which leverages doctl. The final version of this should definitely use a Digital Ocean D...
When this workflow is scheduled, instead of triggered manually, we need a default bump type, otherwise it will fail:
https://github.com/dagger/dagger/runs/4942069177?check_suite_focus=true#step:5:11
If the SEMVER_BUMP environment variable is not set via an input, which will be the case for all scheduled runs, default to the same 'prerel alpha..' value.
This is a ship & show follow-up to https://github.com/dagger/dagger/pull/1476
What is ship & show? https://martinfowler.com/articles...
Rebased from #1495 , attemps to fix use of Walk with FillPath.
My cue:
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/docker"
)
pushSecret: {
username: dagger.#Input & {dagger.#Secret}
password: dagger.#Input & {dagger.#Secret}
} | *null
parameters: build: {
dockerfile: string
pushTarget: string
}
image: docker.#Build & {
dockerfile: parameters.build.dockerfile
source: ""
}
push: docker.#Push & {
target: parameters.build.pushTarget
source: image
if pushSecret != null {
auth: {
username: pushSec...
Closes #1437.
Fields in CUE were renamed to the lowercase version of Dockerfile instructions.
There's now opportunity to make other fields simpler to use (e.g., healthcheck).
This PR is focused on env.
For example, I might generate some resources:
generateResource: v1: Service: "\(parameters.metadata.namespace)": "\(parameters.metadata.name)": {
metadata: labels: env: parameters.serveModel.env
spec: {
type: "ClusterIP"
ports: [{
port: parameters.serveModel.container.port
targetPort: parameters.serveModel.container.port
}]
selector: app: parameters.metadata.name
}
}
After dagger up, the value can be queried via dagger query generateResource....
Bumps google.golang.org/grpc from 1.43.0 to 1.44.0.
Release notes
Sourced from google.golang.org/grpc's releases.
Release 1.44.0
New Features
balancer: add RLS load balancing policy (#5046)
xds: add RLS Cluster Specifier Plugin (#5004)
insecure: remove experimental notice (#5069)
Bug Fixes
internal/balancergroup: eliminate race in exitIdle (#5012)
authz: fix regex expression match (#5035)
Documentation
grpc: minor improvement on WithInsecure() documen...
Bumps @docusaurus/core from 2.0.0-beta.14 to 2.0.0-beta.15.
Release notes
Sourced from @docusaurus/core's releases.
2.0.0-beta.15 (2022-01-26)
Highlights on Twitter
:rocket: New Feature
docusaurus-plugin-content-docs
#6451 feat(content-docs): expose isCategoryIndex matcher to customize conventions (@Josh-Cena)
#5782 feat(content-docs): displayed_sidebar front matter (@Josh-Cena)
docusaurus-theme-classic, docusaur...
Attempts to provide a convenince wrapper to sops with automatic unmarshalling via #TransformSecret.
I propose we start requiring medium-to-large feature PRs to come with raw documentation (e.g. mostly bullet points on what it is, how to use it, example).
It's not intended to be user facing documentation, the goal is to:
- Provide raw material we'll be using to write documentation later on (instead of having to ping the author and ask to explain)
- Make sure we don't forget to document some slightly obscure features (e.g. #1302)
- Provide a starting point for Europa testers whi...
When use docker < 20, we get an error output=Error: No such container: dagger-buildkitd
Only log an error if removeBuildkit fails (instead of returning an error) and carry on.
Signed-off-by: jffarge
Dagger version : dagger 0.2.0-alpha.2
When using dagger init the Netlify universe package has a missing deploy.sh file which make the package unusable.
Issue
When I tried to test docker.#Build, I wanted to build a simple go binary using golang alpine image and a simple hello world program.
When I execute a go command, /bin/sh: go not found error is thrown.
Here's a simple repro case
// plan.cue
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker"
)
dagger.#Plan & {
actions: {
image: docker.#Build & {
steps: [
docker.#Pull & {
source:...
This will help us iterate quicker by not making us wait on the result of unrelated workflows. The corollary is that we should never merge a pull request when there are failing checks (a.k.a. failed workflows). This change makes the workflows that run more relevant for the type of change. I assume that this change will save us a lot of time as we accelerate the docs refinements.
From a usage session with @gerhard and @TomChv .
dagger up —europa is failing because of an issue with the built-in SOPS keys. The specifics of the error is not an issue: perhaps the sops keys no that Dagger install is broken or invalid. But in any case: europa doesn’t use them. So dagger up —europa should not fail in this case.
The current development version of the changelog.com package, being ported to Europa, is very slow to evaluate with cue eval.
This is the highlevel temporary package.
The signature between the two is fairly different (e.g. contents -> source.root, source -> source.path).
This is fine, I'm just double checking this is not an unintended drift before cutting the next release.
This kind of drift will prevent us from to mitigating #1324 (e.g. using codegen, etc).
docker.#Copy: {
input: #Image
contents: dagger.#FS
source: string | *"/"
dest: string | *"/"
output: #Image
}
engine.#Copy: {
input:...
Ensure that we have done an init in this folder.
Also, force a clean checkout of the tag we've chosen to upgrade to.
Signed-off-by: Joel Longtine
- Simplify
docker.#Run: no morescriptconvenience field - Improve
bash.#Run: mount the scripts into the filesystem rather than inlining their contents - Simplify
netlify.#Deployby using the newbash.#Run
TODO:
- Tests
- Remove all use of
docker.#Run.script - Improve
python.#Runin the same way thanbash.#Run
engine.#Copy now matches docker.#Copy
#Copy: {
$dagger: task: _name: "Copy"
// Input of the operation
input: #FS
// Contents to copy
contents: #FS
// Source path (optional)
source: string | *"/"
// Destination path (optional)
dest: string | *"/"
// Output of the operation
output: #FS
}
To use:
exec: engine.#Exec & {
input: image.output
args: [
"sh", "-c",
#"""
echo -n hello world > /output.txt
...
One of Dagger’s selling points is that it can unify dev and CI environments.
- Work is already underway to migrate our CI.
- Let’s talk about doing the same for our Makefile :)
The build from source instructions were deprecated since it prints the
available make targets when running make whereas, before it built
dagger in dev mode.
Now to build dagger in dev mode, you have to run make dagger.
The doc is now up to date with this.
- Simple build test
- Multi step to build a go binary
Signed-off-by: Vasek - Tom C
Changes
Related to #1407.
Implement docker.#Dockerfile definition which is basically a mirror on engine.#Dockerfile
:warning: This PR will have conflict with #1524, a rebase will be necessary since I wanted to split those two improvement.
Tests
- [x] Build an image with an aligned dockerfile
- [x] Build an image with an input
Solves #1512.
/cc @slumbering
Signed-off-by: Vasek - Tom C
Fixes #1492
Signed-off-by: Andrea Luzzardi
Closes #1317
Signed-off-by: Helder Correia
Why
If you want to save a string into the local disk (e.g., writing a docker-compose.yaml file from CUE), currently you need to create a #FS via engine.#WriteFile and reference it in outputs: directories. This can be made simpler.
What
Added outputs: files to the plan to make it easier to write a string to a file, without having to go through engine.#WriteFile.
How
Here’s an example on writing a docker compo...
It is believed that the regular data race we encounter is due to v.FillPath during a task. This change uses NewValue to isolate the #function from the original value and so should be safe to fill
Signed-off-by: Richard Jones
Bumps amplitude-js from 8.16.0 to 8.16.1.
Release notes
Sourced from amplitude-js's releases.
v8.16.1
8.16.1 (2022-01-28)
Bug Fixes
use Date.now() for test cookie value (#495) (03e270e)
Changelog
Sourced from amplitude-js's changelog.
8.16.1 (2022-01-28)
Bug Fixes
use Date.now() for test cookie value (#495) (03e270e)
Commits
ddff63b chore(release): 8.16.1 [skip ci]
03e270e fix: use Date.now() for test cookie value (#495)
See f...
Bumps @svgr/webpack from 6.2.0 to 6.2.1.
Release notes
Sourced from @svgr/webpack's releases.
v6.2.1
Bug Fixes
do not transform mask-type (#673) (6e58f2c), closes #643
use .ts extension for generated index (#670) (d19abe2), closes #462
Changelog
Sourced from @svgr/webpack's changelog.
6.2.1 (2022-01-30)
Bug Fixes
do not transform mask-type (#673) (6e58f2c), closes #643
use .ts extension for generated index (#670) (d19abe2), closes #462
Commi...
(placeholder) as discussed with @aluzzardi, Alpine ties package versions to Alpine version, so there may never be a useful way to pin packages.FOO.version.
This PR fixes #1452:
| Before proposed change | After proposed change | |
|---|---|---|
| engine.#Push, engine.#Pull | auth: [...{ target: string username: string secret: string | #Secret }] | auth: { username: string secret: dagger.#Secret } |
| docker.#Push, docker.#Pull | auth: [registry=string]: { username: string secret: dagger.#Secret } | auth: { username: string secret: dagger.#Secret } |
| engine.#Dockerfile | auth: [...{ target: string use... |
Closes #1339
Signed-off-by: Helder Correia
/cc @jlongtine
Why
Currently there’s no way to update/add values to a Docker image metadata, only to replace in its entirety. Users expect to be able to change the default user, working directory and environment variables, for example.
What
Added a new docker.#Set definition to update/add image config values.
How
Here’s an example that adds to PATH:
package main
import (
"dagger.io/dagger"
...
#transformSecret brings a race condition which @talentedmrjones is aware of. The CI breaks from time-to-time because of this very test. This PR reverts the test to its previous implementation, at least temporarly
Signed-off-by: guillaume
For code embedding (e.g. deploy.sh), we've changed vendor embedding to
include all contents instead of just CUE files #1526.
The problem is we're vendoring the package's cue.mod/pkg.
This fixes it.
Signed-off-by: Andrea Luzzardi
This includes:
- Remove non-Europa commands
- Enable Europa mode by default
Shipping this depends on:
- Docs (/cc @gerhard)
- #1201 (/cc @aluzzardi)
- #1377 (/cc @talentedmrjones)
- #1533 (/cc @shykes)
- Surely others
Until we get proper CI on Windows, we need to make sure the 0.2.0 works on Windows. As a reminder, Windows uses WSL2 for the Linux backend, only the client needs to be supported natively, like on Mac.
Once the manual tests are done, we can close this or open new issues if anything needs to be fixed.
Assigning to me.
cc @aluzzardi for priority
Bumps cypress from 9.3.1 to 9.4.1.
Release notes
Sourced from cypress's releases.
9.4.1
Released 1/31/2022
Bugfixes:
Fixed a regression in 9.4.1 where the
line endings in the public NPM package prevented some users from running
Cypress. Fixes #19986.
9.4.0
Released 1/31/2022
Features
Enhancements were made to .selectFile() after receiving feedback after its
initial release in 9.3.0.
The default behavior was updated to automatically infer the mime...
Bumps @mdx-js/react from 1.6.22 to 2.0.0.
Release notes
Sourced from @mdx-js/react's releases.
2.0.0
Welcome to MDX 2! See the of the website for everything:
MDX 2: https://mdxjs.com/blog/v2/
Migrating: https://mdxjs.com/migrating/v2/
@mdx-js/mdx
4a48f1f4 Fix custom elements (#1911)
@mdx-js/react
9ca9d404 Fix unnecessary top-level context changes (#1924)
@mdx-js/loader
e0b697ab 9d5501b2 Add improved webpack cache (#1912, #19...
Bumps sass from 1.49.0 to 1.49.4.
Release notes
Sourced from sass's releases.
Dart Sass 1.49.4
To install Sass 1.49.4, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Embedded Sass
First stable release the sass-embedded npm package that contains the Node.js Embedded Host.
First stable release of the sass_embedded pub package that contains the Embedded Dart Sass compil...
Problem
When running dagger up in a gitpod environment, I get the following error:
$ dagger up
11:42PM INF starting buildkit version=v0.9.3
11:42PM ERR failed to start buildkit container: exit status 1 output=Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mo...
Error
% brew install dagger/tap/dagger
==> Downloading https://dl.dagger.io/dagger/releases/0.2.0-alpha.3/dagger_v0.2.0-alpha.3_darwin_amd64.tar.gz
Already downloaded: /Users/gaetan/Library/Caches/Homebrew/downloads/a80e8b0d527e60b50876ecc8ca48348709e695c50677afaa8d6ff2e3564389cd--dagger_v0.2.0-alpha.3_darwin_amd64.tar.gz
==> Installing dagger from dagger/tap
Error: Your Command Line Tools are too outdated.
Update them from Software Update in System Preferences or run:
soft...
cc @dagger/team
I think we should add a very simple Github issue template. Therefore, we can gather minimum information if we need to reproduce bugs. This is something we've already talked about with @gerhard @grouville and @TomChv.
Here is a simple example (TBD):
Issue tracker is ONLY used for reporting bugs.
Expected Behavior
Tell us what should happen
Current Behavior
Tell us what happens instead of the expected behavior
Steps to Reproduce
2...
This is a great idea! I am keen on us getting familiar with this documentation: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates.
This is a great follow-up: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
As for examples, this looks helpful: https://github.com/stevemao/github-issue-templates
We may want to add this new is...
As for examples, this looks helpful: https://github.com/stevemao/github-issue-templates
Thanks to point this link out. This is actually where I get my simple example ;).
Bumps sass from 1.49.4 to 1.49.7.
Release notes
Sourced from sass's releases.
Dart Sass 1.49.7
To install Sass 1.49.7, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Embedded Sass
First stable release the sass-embedded npm package that contains the Node.js Embedded Host.
First stable release of the sass_embedded pub package that contains the Embedded Dart Sass compil...
This is a master issue to track all the work related to migrating our CI.
Goal
Port all binary builds, github workflows, Makefile, integration tests, website and docs deployment to a single dagger plan.
Extra context: https://github.com/dagger/dagger/discussions/1230
(NOTE: a single dagger plan is to reflect the intent to fit in a single DAG, can be revisited if it works)
Todo list (non-exhautive)
- [ ] Define the base UX to selectively run certain parts of the Pla...
Added point 10: stacking default values. This has been discussed elsewhere, we had just omitted to add it to this “radar”.
Due to race issues with the implementation of #TransformSecret that #DecodeSecret leveraged, we need to (at least temporarily) implement the ability to decode json and yaml in Go as an engine task. The user facing API and output remain the same for #DecodeSecret only the backend implementation changes. This PR does temporarily remove #TransformSecret from dagger/engine due to unresolved data race issues.
Signed-off-by: Richard Jones
Context
Currently working on #1020, I first tried to understand how buildkit manage his cache in local.
But I found that dagger do not actually use local cache
package test
import (
"dagger.io/dagger/engine"
)
engine.#Plan & {
actions: {
image: engine.#Pull & {
source: "alpine"
}
test: engine.#Exec & {
input: image.output
args: ["/bin/sh", "-c", """
sleep 15 && echo test
"""]
}
}
}
Output
# Down buildkit...
Before: dagger devel () darwin/amd64
After: dagger devel (1d1b9083) darwin/amd64
Also removed the dependency on the dagger target, since go install is very similar to go build, the only difference in this context is that it places the binary in $GOPATH/bin.
