#github-feed
1 messages · Page 5 of 1
@vikram-dagger tried to use a new version of secrets in the registry authentication and it failed:
Here is a repro
package main
import (
"context"
"fmt"
"os"
"dagger.io/dagger"
)
func main() {
ctx := context.Background()
c, err := dagger.Connect(ctx, dagger.WithLogOutput(os.Stderr))
if err != nil {
panic(err)
}
sec := c.SetSecret("my-secret-id", "yolo")
stdout, err := c.Container().WithRegistryAuth("localhost:8888", "YOLO", sec).Publish(ctx, "local...
Add user-agent flags to dagger session
It will retrieve information sent by SDKs and forward them to the registry
Bumps prettier from 2.8.4 to 2.8.6.
Release notes
Sourced from prettier's releases.
2.8.6
Allow decorators on private members and class expressions
🔗 Changelog
2.8.5
Support TypeScript 5.0
🔗 Changelog
Changelog
Sourced from prettier's changelog.
2.8.6
diff
Allow decorators on private members and class expressions (#14548 by @fisker)
// Input
class A {
@decorator()
#privateMethod () {}
}
// Prettier 2.8.5
SyntaxError: Decorators are not v...
Bumps node-fetch from 3.3.0 to 3.3.1.
Release notes
Sourced from node-fetch's releases.
v3.3.1
3.3.1 (2023-03-11)
Bug Fixes
release "Allow URL class object as an argument for fetch()" #1696 (#1716) (7b86e94)
Commits
7b86e94 fix: release "Allow URL class object as an argument for fetch()" #1696 (#1716)
8ced5b9 docs: readme - non ESM example (#1707)
71e376b ci(release): use latest Node LTS (#1697)
e093030 Allow URL class ob...
Bumps @typescript-eslint/eslint-plugin from 5.54.1 to 5.56.0.
Release notes
Sourced from @typescript-eslint/eslint-plugin's releases.
v5.56.0
5.56.0 (2023-03-20)
Bug Fixes
eslint-plugin: [member-ordering] check order when optionalityOrder is present with no optional members (#6619) (6aff431)
eslint-plugin: [no-misused-promises] avoid unnecessary calls to getContextualType (#6193) (745cfe4)
eslint-pl...
Bumps ruff from 0.0.255 to 0.0.257.
Release notes
Sourced from ruff's releases.
v0.0.257
What's Changed
Rules
[ruff] Prefer itertools.pairwise() over zip() for successive pairs (RUF007) by @evanrittenhouse in charliermarsh/ruff#3501
[flake8-bugbear] Add no-explicit-stacklevel (B028) by @johnor in charliermarsh/ruff#3550
[pylint] invalid-characters-* by @r3m0t in charliermarsh/ruff#3552
[pylint] Implement useless-return (R1711) by @tomecki in ch...
What are you trying to do?
We recently made a change to where we store dnsmasq related paths because a user reported issues that ended up being caused by AppArmor. We would ilke to test this so it doesn't regress again.
Testing this change within our suite is pretty painful and awkward because AppArmor must be installed and configured at the kernel level. It would probably be easier to just try running Dagger tests on a machine already set up in this way.
Why is this important ...
This commit adds Go and Python snippets to the GitHub Actions/Google Cloud guide. It also updates the content and inline links where needed.
Relates to #4574
This commit adds Go and Python snippets to the GitHub Actions/Google Cloud guide. It also updates the content and inline links where needed.
Relates to #4574
There are quite a few questions in Discord about building an image locally without publishing to a remote registry:
https://discord.com/channels/707636530424053791/1068148348240019498
#1046817210695417906 message
#1081963303921799269 message
https://discord.com/channels/707636530424053791/1047912353469059165
https://discord.com/channels/707636530424053791/1080194783953305661
...
This commit updates the AWS CDK guide to make the pre-requisites clearer.
This commit adds a guide for building/using containers locally with Dagger.
Closes #4812
Bumps google.golang.org/grpc from 1.52.3 to 1.54.0.
Release notes
Sourced from google.golang.org/grpc's releases.
Release 1.54.0
Behavior Changes
xds: remove support for xDS v2 transport API (#6013)
New Features
server: expose SetSendCompressor API to set send compressor name (#5744)
Special Thanks: @jronak
xdsclient: include Node proto only in the first discovery request message, to improve performance (#6078)
Bug Fixes
metadata: fix validation l...
This one's pretty annoying: the currently running job ID isn't exposed to Actions (https://github.com/orgs/community/discussions/8945), so we have to deduce it via the API.
Upgrades us to buildkit with this fix: https://github.com/moby/buildkit/pull/3732
Fixes #4620
I also realized there's a simpler way to build the buildctl bin from our go.mod version which enables us to only have to specify the buildkit dependency version in one place, so I included that here too.
What is the issue?
People are surprised by caching of executions with the same inputs and are not sure how to ensure that certain executions are not cached, but run every time.
#general message
#general message
When you search the docs for "no cache" there is nothing helpful (and the CUE SDK is a confusing red herring for new SDK users).
I have a hypothesis that lack of feedback for multi-second spans of time is confusing for users and that they'd benefit from feedback like
Dagger Engine downloading...
Dagger Engine starting...
...
Dagger Engine found...
...
What is the issue?
🐛 If you have an env var that is an empty string, Graphql explodes as it's converted to null or undefined. To fix it you have to add whitespace

Log output
Will add repro...
Steps to reproduce
Will add repro...
SDK version
Python
OS version
This commit adds a guide about using secrets.
What is the issue?
Dagger does not respect SIGINT (ctrl + c). Able to replicate on Mac and Linux.
Log output
n/a
Steps to reproduce
run a pipeline and hit ctrl-c. It seems like SIGINT is ignored while the Dagger pipeline is running.
SDK version
Go SDK
OS version
mac, linux
Before this, a session with a particularly enormous number of refs being solved could create a CombinedResult that would be greater than the grpc default message size of 16MB. This would cause builds to fail at the very end while trying to return the result to buildkit.
This was in part due to the fact that by just combining every individual ref from each vertex of the dag we were duplicating a ton of LLB.
The new approach instead uses MergeOp to combine all the solved refs together. A ...
Namely redis_srv to redisSrv to be consistent with docs in the service containers
As time has gone on some of our terminology has slowly morphed, but it's now reached the point where there's significant inconsistencies/vagueness in our docs and especially in our codebase, e.g.
- It's not clear what the runner is vs. the engine
- In our code,
engine/engine.gois what starts a session with the remote engine. Howevercmd/engine/main.gois the implementation of the engine that executes on the runner. Andinternal/engine/client.gohas the code the session created by `...
Bumps golang.org/x/term from 0.5.0 to 0.6.0.
Commits
0edf009 go.mod: update golang.org/x dependencies
See full diff in compare view
Bumps @docusaurus/theme-mermaid from 2.3.1 to 2.4.0.
Release notes
Sourced from @docusaurus/theme-mermaid's releases.
2.4.0 (2023-03-23)
Blog post: https://docusaurus.io/blog/releases/2.4/
:rocket: New Feature
docusaurus-plugin-content-docs, docusaurus-theme-classic
#8236 feat(content-docs): add support for sidebar item category/link descriptions in generated index page (@ZarakiKanzaki)
docusaurus-th...
Bumps @docusaurus/preset-classic from 2.3.1 to 2.4.0.
Release notes
Sourced from @docusaurus/preset-classic's releases.
2.4.0 (2023-03-23)
Blog post: https://docusaurus.io/blog/releases/2.4/
:rocket: New Feature
docusaurus-plugin-content-docs, docusaurus-theme-classic
#8236 feat(content-docs): add support for sidebar item category/link descriptions in generated index page (@ZarakiKanzaki)
docusaurus...
Bumps @docusaurus/core from 2.3.1 to 2.4.0.
Release notes
Sourced from @docusaurus/core's releases.
2.4.0 (2023-03-23)
Blog post: https://docusaurus.io/blog/releases/2.4/
:rocket: New Feature
docusaurus-plugin-content-docs, docusaurus-theme-classic
#8236 feat(content-docs): add support for sidebar item category/link descriptions in generated index page (@ZarakiKanzaki)
docusaurus-theme-classic
#8708 feat(theme): ...
Bumps ruff from 0.0.255 to 0.0.259.
Release notes
Sourced from ruff's releases.
v0.0.259
Summary
Follow-up release to v0.0.258 to fix an issue related to rule resolution via select and ignore.
What's Changed
Bug Fixes
Fix RuleSet.remove by @MichaReiser in charliermarsh/ruff#3685
Respect all rule-exemption sources when suppressing parser errors by @charliermarsh in charliermarsh/ruff#3665
Avoid nested loops in missing_whitespace by @charliermarsh...
Bumps poethepoet from 0.18.1 to 0.19.0.
Release notes
Sourced from poethepoet's releases.
v0.19.0
Enhancements
Display the default value of args in help #126
Append additional arguments after the first -- to the end of a cmd task #69
Make script tasks work with async functions (#6d9fed4)
Add support for envfile paths relative to the user home dir #125
Fixes
Improve logic to locate poetry executable #121
Make ref task pass extra arguments from the de...
Problem
Sometimes, querying certain fields of Container will return an error, but they shouldn't. Specifically any of these fields:
stdoutstderrexitCode- Any other field that requires executing a command in the container
The error occurs when no command has been explicitly defined for this container: in other words, there is no withExec step in the current pipeline.
The typical workaround is to add an explicit withExec(nil), which is very confusing.
...
This was already configurable via the config file but a flag is often more convenient to use.
What are you trying to do?
This came out of a convo on Discord.
I would like to Dagger to support a withEnvVariables call. The syntax would like like this
withEnvVariables({
ENV_VAR_1: "VALUE",
ENV_VAR_2: "VALUE"
ENV_VAR_3: "VALUE"
...
})
[I might try and put a pull request in for this one, but I've raised in case I don't get around to it. cc @jpadams @kpenfound]
Why is this important to you?
Complex pipelines can require nume...
Signed-off-by: Marcos Lilljedahl
Bumps prettier from 2.8.4 to 2.8.7.
Release notes
Sourced from prettier's releases.
2.8.7
Allow multiple decorators on same getter/setter
🔗 Changelog
2.8.6
Allow decorators on private members and class expressions
🔗 Changelog
2.8.5
Support TypeScript 5.0
🔗 Changelog
Changelog
Sourced from prettier's changelog.
2.8.7
diff
Allow multiple decorators on same getter/setter (#14584 by @fisker)
// Input
class A {
@decorator()
get foo () {}
@...
We shared how we think about Dagger releases, what goes into a release & how they are produced in How we release Dagger:
What would you like us to improve about Dagger releases?
Bumps typescript from 4.9.5 to 5.0.2.
Release notes
Sourced from typescript's releases.
TypeScript 5.0
For release notes, check out the release announcement.
For the complete list of fixed issues, check out the
fixed issues query for Typescript v5.0.0 (Beta).
fixed issues query for Typescript v5.0.1 (RC).
fixed issues query for Typescript v5.0.2 (Stable).
Downloads are available on:
npm
NuGet package
TypeScript 5.0 RC
For release notes, check o...
Bumps eslint-config-prettier from 8.7.0 to 8.8.0.
Changelog
Sourced from eslint-config-prettier's changelog.
Version 8.8.0 (2023-03-20)
Added: [@typescript-eslint/lines-around-comment]. Thanks to @ttionya!
Commits
88ba724 eslint-config-prettier v8.8.0
1a7be70 add rule @typescript/lines-around-comment (#246)
130bf88 Move removed rules to deprecated section (#245)
See full diff in compare view
[![Dependabot compatibility score...
Bumps eslint from 8.35.0 to 8.36.0.
Release notes
Sourced from eslint's releases.
v8.36.0
Features
c89a485 feat: Add checkJSDoc option to multiline-comment-style (#16807) (Laurent Cozic)
f5f5e11 feat: Serialize parsers/processors in flat config (#16944) (Nicholas C. Zakas)
4799297 feat: use @eslint-community dependencies (#16784) (Michaël De Boey)
Bug Fixes
92c1943 fix: correctly iterate files matched by glob patterns (#16831) (Nitin Kumar)
Documenta...
Bumps @svgr/webpack from 6.5.1 to 7.0.0.
Release notes
Sourced from @svgr/webpack's releases.
v7.0.0
Features
allow specifying jsxRuntimeImport in config (86bb86f), closes #801 #801
remove @svgr/plugin-jsx from core (a0f078d)
upgrade to svgo v3 (#798) (21b6209)
BREAKING CHANGES
plugin-jsx is no longer included by default in core
svgr now requires Node.js v14+
Changelog
Sourced from @svgr/webpack's changelog.
7.0.0 (2023-03-24)
Features
allow ...
Bumps typedoc from 0.23.26 to 0.23.28.
Release notes
Sourced from typedoc's releases.
v0.23.28
Features
Added support for TypeScript 5.0, #2201.
const type parameters.
JSDoc @overload tag.
JSDoc @satisfies tag.
v0.23.27
Features
Added --treatValidationWarningsAsErrors to treat only validation warnings as errors without treating all warnings as errors, #2199.
Bug Fixes
Fixed a bug where optional properties were not appropriately marked as opti...
Bumps sass from 1.59.3 to 1.60.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.60.0
To install Sass 1.60.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Add support for the pi, e, infinity, -infinity, and NaN constants in calculations. These will be interpreted as the corresponding numbers.
Add support for unknown constants in calculations. These will be int...
Bumps platformdirs from 3.1.1 to 3.2.0.
Release notes
Sourced from platformdirs's releases.
3.2.0
What's Changed
Add pyproject-fmt by @gaborbernat in platformdirs/platformdirs#150
Bump deps and tools by @gaborbernat in platformdirs/platformdirs#149
Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in platformdirs/platformdirs#151
Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in platformdirs/platform...
Rather than handling a restrictive list of event types, just duck type and see what values are present on them.
Also backfills tests because the webhook payload handling is surprisingly tricky, e.g. push event payloads contain a repository object that is incompatible with *github.Repository.
This label is needed so we can distinguish from dagger.io/git.ref which points to a merge commit for PRs. This is the value that should be shown in the UI and tied to a commit status.
This commit upgrades to Docusaurus 2.4.0 and fixes the compilation errors introduced by dependabot in https://github.com/dagger/dagger/commit/cf47b596d4a5e7f4b1a8d0a6fcd1598ea6887526
This commit corrects variable names in the service containers guide and also rearranges the code tabs to be consistent with other guides.
Relates to https://github.com/dagger/dagger/pull/4825
What is the issue?
This task is to review all Python code samples and ensure that variable names use snake_case and not camelCase, for consistency with language conventions. Update where required and also update accompanying text to reflect this change.
Relates to https://github.com/dagger/dagger/pull/4825 and https://github.com/dagger/dagger/pull/4851
This will remove the /website/static/guides.json file from the Git index of the repo.
Bumps github.com/opencontainers/runc from 1.1.4 to 1.1.5.
Release notes
Sourced from github.com/opencontainers/runc's releases.
runc 1.1.5 -- "囚われた屈辱は 反撃の嚆矢だ"
This is the fifth patch release in the 1.1.z series of runc, which fixes
three CVEs found in runc.
CVE-2023-25809 is a vulnerability involving rootless containers where
(under specific configurations), the container would have write access
to the /sys/fs/cgroup/user.slice/... cgrou...
What are you trying to do?
API fields that are marked as deprecated only get codegen'ed into the docblock. That shows in reference docs, and maybe the IDE helps make it more visible as well (depending on language), but we should log a warning when these calls are being used.
Why is this important to you?
Logging a warning makes it more visible whenever you're actually running a pipeline, no matter if you use a smart IDE or consult the reference docs during development. Removing the...
What are you trying to do?
The Python reference documentation doesn't clearly show a method as being a coroutine.
Why is this important to you?
We used to have a note in the description clarifying that it needs to be awaited, but it was removed for simplicity. Making it clearer again can be helpful to users.
How are you currently working around this?
The IDE's autocomplete should show the return type as being a coroutine:
In the reference you can notice that if it rais...
We lint the code snippets in the SDK guides, but the new Guides section uses a different path for the snippets that isn't being included in that linting. This is creating some inconsistency in code formatting.
With the playground embeds though, it's no longer a direct reference between the snippet file and what you see on the page. I assume the playground embeds are created from the snippets, @vikram-dagger please correct me if I'm wrong.
There's a lot of inconsistencies in the documentation when choosing either stdout or stderr on streaming the engine logs. In NodeJS it's almost always stdout, while in Go it's sometimes one or the other. I've always pushed for stderr in Python.
All SDKs should standardize to using stderr for that. It's not just for errors, it's for logs, keeping stdout for the script's own output.
Reference: CLI Guidelines
Send output to
stdout. T...
What are you trying to do?
Making codegen types (from API) hashable would allow them to be used in some interesting use cases.
Why is this important to you?
As an example, one user could benefit from using an LRU cache in a function that receives a (lazy) pipeline, does something dynamic with it and returns it.
Assuming that such function is a dependency used more than once in the same project, and that the result will be the same if the input pipeline is the same, you can bene...
Bumps black from 23.1.0 to 23.3.0.
Release notes
Sourced from black's releases.
23.3.0
Highlights
This release fixes a longstanding confusing behavior in Black's GitHub action, where the
version of the action did not determine the version of Black being run (issue #3382). In
addition, there is a small bug fix around imports and a number of improvements to the
preview style.
Please try out the
preview style
with black --preview and tell us your feedback. All c...
Bumps eslint from 8.35.0 to 8.37.0.
Release notes
Sourced from eslint's releases.
v8.37.0
Features
b6ab8b2 feat: require-unicode-regexp add suggestions (#17007) (Josh Goldberg)
10022b1 feat: Copy getScope() to SourceCode (#17004) (Nicholas C. Zakas)
1665c02 feat: Use plugin metadata for flat config serialization (#16992) (Nicholas C. Zakas)
b3634f6 feat: docs license (#17010) (Samuel Roldan)
892e6e5 feat: languageOptions.parser must be an object. (#16985...
Bumps @typescript-eslint/eslint-plugin from 5.54.1 to 5.57.0.
Release notes
Sourced from @typescript-eslint/eslint-plugin's releases.
v5.57.0
5.57.0 (2023-03-27)
Bug Fixes
eslint-plugin: [no-unnecessary-boolean-literal-compare] simplify fixer and add support for double negation (#6620) (81c8519)
eslint-plugin: correct crashes with getTypeArguments for ts < 3.7 (#6767) (59eab58)
Features
eslint-...
if a secret is written to the log/file in more than 1 writes, it risks not being scrubbed as our logic does work for full values.
It shouldn't be a usual behavior, but it could happen, therefore we need to handle it.
Implementation idea
Concourse implementation for reference: https://github.com/dagger/dagger/pull/4518#discussion_r1105195391
Alternate implementation: better streaming capabilities, might allow some timing attack to discover some part of secrets
Regarding this...
What is the issue?
The Typescript code fails if the user doesn't have a tsconfig.json file already. This is not explicitly stated anywhere, so should be added. The command to create the file if not already present is tsc --init --module esnext --moduleResolution nodenext
What is the issue?
Add an example of standing up a database service for application testing to the guide at https://docs.dagger.io/757394/use-service-containers
This commit adds an example of standing up a just-in-time database service for unit testing a PHP application to the service containers guide.
Closes #4866
This commit adds an instruction for how to create a tsconfig.json file for TypeScript users.
Closes #4865
This commit adds information on how to install and get started with Rust and PHP to the "custom GraphQL client" tutorial.
Closes #4477
Bumps ruff from 0.0.255 to 0.0.260.
Release notes
Sourced from ruff's releases.
v0.0.260
What's Changed
Rules
[flake8-bugbear] Add more immutable functions for B008 by @rouge8 in charliermarsh/ruff#3764
[flake8-bugbear] Allow pathlib.Path() in B008 by @rouge8 in charliermarsh/ruff#3794
[flake8-bugbear] Expand the scope of useless-expression (B018) by @charliermarsh in charliermarsh/ruff#3455
[flake8-bugbear]: Implement rule B031 by @dhruvmanila...
What are you trying to do?
If I run a local Dagger pipeline against a modified Git repository, it should be made obvious that this run was against a modified version of the HEAD commit so it doesn't get conflated with "clean" runs.
Why is this important to you?
No response
How are you currently working around this?
No response
Remove the extra character from the .with_registry_auth() statement
This commit updates an inaccurate statement in the style guide.
Relates to https://github.com/dagger/dagger/issues/4857#issuecomment-1490035824
This commit adds Go and Node.js snippets to the multi-build guide, and updates the guide copy accordingly.
Relates to #4574
TODO:
- [ ] tests (tested empirically through Bass atm)
A lot of places in our docs use with_mounted_directory (because that's all that existed at the time). Now that we have with_directory, I think we should update our documentation to use that instead in all places.
For most use cases, users will want to use with_directory, with the mount being more of an edge case. Guiding them towards mounted directory by default causes them to trip over the concept of mounts very early on.
Change highlighting of code in Getting Started etc in docs. Hard to read with large light-colored boxes on top of code. Maybe some annotations on side? Like a heavy vertical line?
Looks great
Harder to read
This fixes the service container leak
(https://github.com/moby/buildkit/commit/3187d2d056de7e3f976ef62cd548499dc3472a7e)
It also brings in the ability to configure the local cache manager (https://github.com/moby/buildkit/commit/d6ed0f03b89931142e40dba4f7304392a87a6eb8)
Use Directory { dockerBuild } rather than Container { build }, following user feedback that the former is less confusing than the latter.
Overview
There should be a way for a software project to declare its artifacts and how to build them with Dagger, in such a way that the artifacts can be discovered and produced on-demand via the Dagger API.
This is related to #4414, but focuses on a one narrow possible application of a project entrypoint: specifically artifacts.
Design
I'm not sure how this would work, but here is a rough sketch to stimulate conversation.
Frontend API
API to discover and consum...
Fixes Python's #4821
Todo
- [ ] Tests
There is an undocumented way to write comments so we can regenerate function name correctly for each languages.
ref: https://github.com/dagger/dagger/pull/4862#discussion_r1153104208
When Pdeathsig is used, the child process will receive the signal whenever the parent thread is killed. In go, an os thread can be killed if it is locked to a goroutine and left locked when the goroutine finishes execution. The go runtime will schedule goroutines to OS threads as it sees fit, so this can result in random unexpected signals being sent to child processes with pdeathsig set.
There's no currently known case where the shim code leaves goroutines locked to a thread, but give...
We were hitting some errors related to use of generics in a dependency due to the fact that the previous goreleaser image was still on go 1.19.
Error was encountered here: https://github.com/dagger/dagger/actions/runs/4598492189/jobs/8122598929#step:5:861
What is the issue?
Overview
We should have guidelines for our core/schema/*.graphqls files, like we used to in CUE.
This helps with consistency and for following best practices that are not only for the GraphQL API, but also that make it easier to be consumed by the SDKs.
Todo
As a first step we can bring quite a few rules that were discussed during the review of the following PR:
- #4367
There's also the undoc...
What happened? What did you expect to happen?
I'm sharing the docker.sock with the go test container.
Locally on docker desktop it works if I add TC_HOST=host.docker.internal but on github actions it does not work.
What happened? What did you expect to happen?
Hi,
I whould like to know how can i build a container with golang making a:
[...]
WithExec([]string{"apt-get", "update"}).
WithExec([]string{"rm", "-rf", "/var/lib/apt/lists/*"}).
[...]
if i try using something like this:
WithExec([]string{"apt-get", "update","&&","rm", "-rf", "/var/lib/apt/lists/*"}).
The contaner build complains saying that the command "apt-get update" only takes one argument.
I dont fully underestand how t...
Bumps github.com/docker/docker from 23.0.1+incompatible to 23.0.3+incompatible.
Release notes
Sourced from github.com/docker/docker's releases.
v23.0.3
23.0.3
Note
Due to an issue with CentOS 9 Stream's package repositories, packages for
CentOS 9 are currently unavailable. Packages for CentOS 9 may be added later,
or as part of the next (23.0.4) patch release.
Bug fixes and enhancements
Fixed a number of issues that can cause Swarm encrypted overlay ne...
Refactor argument building with a clearer loop and structured data.
Add the --ua flags to send sdk type and version number to registry, for:
- [ ] Node SDK
- [ ] Go SDK
- [ ] Python SDK
cc @gerhard
Bumps ruff from 0.0.255 to 0.0.261.
Release notes
Sourced from ruff's releases.
v0.0.261
What's Changed
Rules
[flake8-simplify] Ignore collapsible-if violations for if False: and if True: by @JonathanPlasse in charliermarsh/ruff#3732
[flake8-pie] Extend unncessary-generator-any-all to set comprehensions by @charliermarsh in charliermarsh/ruff#3824
[flake8-simplify] Implement dict-get-with-none-default (SIM910) by @kyoto7250 in charliermarsh/ruff...
Makes it possible for UIs to treat them differently, i.e. don't show them as errored when really they're just stopped.
Bumps golang.org/x/term from 0.5.0 to 0.7.0.
Commits
7ae6be6 go.mod: update golang.org/x dependencies
0edf009 go.mod: update golang.org/x dependencies
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/a...
What are you trying to do?
I'm trying to create and GPG-sign a built binary with Dagger.
To do this, I need to mount my ~/.gnupg directory into my container and run gpg --detach-sign --armor binary-name.
The above command requires the following files (keyrings and trustdb) to create the signature:
~/.gnupg/pubring.kbx~/.gnupg/trustdb.gpg~/.gnupg/private-keys-v1.d/*
Currently Dagger only permits mounting files as secrets. It's not possible to mount an entire d...
This commit adds an important note to the service containers guide regarding ports. It is related to the example in https://github.com/dagger/dagger.io/issues/1769.
Bumps google.golang.org/protobuf from 1.29.0 to 1.29.1.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. ...
A small fix so that withExposedPort actually sets the EXPOSE equivalent config in the resulting container.
Doesn't hurt to be more verbose here since it's not directly user facing, and can help quite a bit with debugging problems related to startup.
Bumps mypy from 1.1.1 to 1.2.0.
Commits
4f47dfb Promote version to 1.2.0 and drop +dev from the version
06aa182 [dataclass_transform] support implicit default for "init" parameter in field ...
7beaec2 Support descriptors in dataclass transform (#15006)
a7a995a Multiple inheritance considers callable objects as subtypes of functions (#14...
7f2a5b5 [dataclass_transform] fix deserialization for frozen_default
bfa9eac [mypyc] Be stricter about functi...
Without this you can get a nil pointer exception when trying to use a secret w/ the cache mount synchronization code paths (currently only when running in k8s w/ AWS_WEB_IDENTITY_TOKEN_FILE set)
I'll also send out a followup that refactors the code so session initialization is shared between engine/engine.go and cmd/engine/operatorClient.go which will prevent future problems w/ trying to make sure they are both updated equivalently, but this change is a quick fix in the meantime.
Our "default" codepaths ensure that SDK+CLI+Engine are all compatible with one another, but if you manually deploy an engine and connect a CLI/SDK to it, it's no longer guaranteed to be compatible.
Today, the only way users know about compatibility is by looking at the SDK release notes (example), but that's extremely non-obvious.
There are many possible ways of improving this situation and in the long run our goal s...
Problem
In Dagger Cloud, I can list individual pipeline runs, with various fields giving me information about the run. One field tells me the git branch that the pipeline was run against. But the value of that field is always "HEAD", which is not actually a branch name, but a symbolic reference. If anything, "HEAD" might be a separate field ("this was the value of the HEAD reference at time of run").
Example:
Solution
Change telemetry to actually send the name of the c...
This PR was auto-generated.
This is exactly what we did - worked like a charm.
When working with a lot of engine instances and clients that may end up connecting to any one of them it can be extremely useful to know which engine a given client connected to.
The engine can be configured w/ a name via a DAGGER_ENGINE_NAME env, otherwise it will just default to the hostname. Clients will now log that when they connect to it.
Just submitting as a strawman, I'd like a better solution than just writing the engine name directly to the CLI's stderr, would it be p...
We have more improvements planned to the secrets API, as presented in the 0.5 release.
Maybe, there is something we didn't think about.
Please vote, share your opinions and ideas so we can prioritize accordingly.
Follow up to #4892
Signed-off-by: Helder Correia
This commit adds a guide about creating a Dagger CI pipeline for a PHP framework application using PHP and a GraphQL client.
To keep consistency with all SDKs naming, use nodejs as label instead of node.
Following request from @gerhard https://github.com/dagger/dagger.io/pull/2145
Bumps github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.11.10 to 1.11.61.
Commits
30383d5 Release 2023-04-07
352f89c Regenerated Clients
5042939 Update API model
d40a16e NXDOMAIN errors should not be retried (#2083)
439f88c Add announcement for next release for dlm
e4036a9 Release 2023-04-06
1c455e2 Regenerated Clients
adb09d3 Update endpoints model
3d4ed44 Update API model
296e005 Release 2023-04-05
Additional commits viewable in compare view
...
Bumps golang.org/x/tools from 0.1.10 to 0.8.0.
Release notes
Sourced from golang.org/x/tools's releases.
gopls/v0.8.0
Go version support
Support for Go 1.18
Version 0.8.0 of gopls supports features added to Go 1.18, specifically:
Support for multi-module workspaces using go.work files.
Diagnostics for Fuzz tests.
Improved support for generics.
To use these features, gopls must be installed using Go 1.18. See go.dev/dl for the latest status of Go 1.18 -- ...
Bumps sass from 1.59.3 to 1.61.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.61.0
To install Sass 1.61.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Potentially breaking change: Drop support for End-of-Life Node.js 12.
Fix remaining cases for the performance regression introduced in 1.59.0.
Embedded Sass
The JS embedded host now loads files from the w...
What are you trying to do?
PR https://github.com/dagger/dagger/pull/4892 adds some SDK labels that are used for user-agent tagging to understand better our SDK usage. It'd be very valuable if we could also add these labels to the root pipeline here https://github.com/dagger/dagger/blob/4be9d6ee11cb5d3a66ec3e0f846436535009fd5e/core/pipeline/label.go#L33 so we can have visibility of the SDK version at the telemetry level.
cc @grouville @gerhard
Why is this important to you?
To ...
Allows an exec to skip the entrypoint. This allows folks to implement Dockerfile semantics (RUN skips entrypoint) without having to collect the current value, remove it, and add it back afterwards.
Problem
Our chainable API is pretty simple, but it also feels limiting when you want multiple related fields, especially if they’re a part of a simple object like EnvVariable, Port or Label.
For example, if I have an EnvVariable object, and I want both the name and value, I need to make two extra requests:
envVars, err := ctr.EnvVariables(ctx)
if err != nil {
return nil
}
for _, env := range envVars {
name, err = env.Name(ctx)
if err != nil {
return...
Context
We have an outstanding bug when using exitCode, stdout and stderr:
These fields trigger the configured command to execute. Problem is that if the command fails, the common code that they all share returns an error. That isn’t the proper behavior. A proper GraphQL error would be for example that no exec was actually configured, or the network connection was suddenly killed.
This happened initially because we had a techni...
Python implementation for:
This using a generic implementation in the base class instead of duplicating in codegen.
Signed-off-by: Helder Correia
This replaces the "experimental_dagger_s3" remotecache type with a new
approach that integrates the local cache manager of the engine with a
remote cache service running in the cloud. This will only be enabled
currently if the _EXPERIMENTAL_DAGGER_CACHESERVICE_URL env is set in
the engine, in which case that should point to either a tcp:// or
unix:// endpoint where the service is being provided (currently, eventually this will
just run in the cloud and require an API token). If that i...
Bumps beartype from 0.12.0 to 0.13.0.
Release notes
Sourced from beartype's releases.
Beartype 0.13.0
This minor release delivers pulse-quickening support for pandera (pandas) type hints, PEP 484, PEP 585, PEP 591, PEP 647, PEP 3119, and pseudo-callables. This release resolves 12 issues and merges 2 pull requests. But first: a quiet word from our wondrous sponsors. They are monocled QA wizards who serve justice while crushing bugs for humanity. High f...
Bumps pytest from 7.2.2 to 7.3.0.
Release notes
Sourced from pytest's releases.
7.3.0
pytest 7.3.0 (2023-04-08)
Features
#10525: Test methods decorated with @classmethod can now be discovered as tests, following the same rules as normal methods. This fills the gap that static methods were discoverable as tests but not class methods.
#10755: console_output_style{.interpreted-text role="confval"} now supports progress-even-when-capture-no to ...
Bumps github.com/aws/aws-sdk-go-v2/feature/s3/manager from 1.11.10 to 1.11.62.
Commits
fcc0f5d Release 2023-04-10
cd750e0 Regenerated Clients
1bc2f05 Update endpoints model
b964f5c Update API model
fd69015 fix APIGW exports nullability exceptions
fae239a Merge pull request #2089 from aws/auditAccessibility
acf33a2 Update aws-sdk-go-v2's comment codegened from Smithy Go's updated document sm...
27360c1 fix APIGW exports nullability exceptions
30383d5 R...
Buildkit internally stores some cache metadata of etags and http checksums using an id based on this name, so setting it to the URL maximizes our chances of following more optimized cache codepaths.
The codepaths in Buildkit are here:
-
A hash is used to lookup any possible etag/url-hash metadata from previous http sources: https://github.com/sipsma/buildkit/blob/cf2698c0e4b708127c3aa86c49d51532feee6b82/source/http/httpsource.go#L128-L134
-
That hash is based in part on this getFileN...
Context
This proposal is just extracting Problem 3: Orphaned pipelines from the following, to keep that discussion focused:
Problem
If a synchronous function is not explicitly called, the entire pipeline is orphaned:
lint()
testOutput, err := test().Stdout(ctx)
In the above example, lint is never executed.
Current workaround: Don't forget
- *Originally posted by @aluzzardi in https://github....
Bumps beartype from 0.12.0 to 0.13.1.
Release notes
Sourced from beartype's releases.
Beartype 0.13.1
This patch release brings titillating support for working tests. That's right; the prior minor release broke tests by failing to ship the mypy.ini configuration file in tarballed sdists, thereby breaking the test_pep561_mypy() integration test when run from tarballed sdists. This is why we facepalm.
This patch release resolves 1 issue and merges 1 pul...
Bumps typedoc-plugin-markdown from 3.14.0 to 3.15.0.
Release notes
Sourced from typedoc-plugin-markdown's releases.
typedoc-plugin-markdown@3.15.0
Features
TypdeDoc 0.24 compatibility fixes.
Changelog
Sourced from typedoc-plugin-markdown's changelog.
3.15.0 (2023-04-11)
Features
TypdeDoc 0.24 compatibility fixes.
Commits
64995ec typedoc-plugin-markdown@3.15.1
eaf8c7d fix: Expose refl...
Signed-off-by: Marcos Lilljedahl
Adds owner: String to the following APIs:
type Container {
withMountedDirectory(..., owner: String): Container!
withMountedFile(..., owner: String): Container!
withDirectory(..., owner: String): Container!
withFile(..., owner: String): Container!
withNewFile(..., owner: String): Container!
withMountedCache(..., owner: String): Container!
withMountedSecret(..., owner: String): Container!
withUnixSocket(..., owner: String): Container!
}
The `Str...
Also: avoid putting a useless 'HEAD' value in dagger.io/git.branch when running on a detached HEAD.
What is the issue?
Reported by @gerhard on 11/04/23: Currently, the docs navigation menu (left menu) has sub-pages expanded. This creates a very long menu. The items at the bottom are not visible unless you scroll down. Also, when browsing the docs, it's easy to lose your place in the navigation menu due to its length.
What is the issue?
-
Selecting a specific language tab in a code snippet is not persistent across pages.
-
Selecting a specific language tab in the quickstart is not consistent across quickstart pages.
Reproduction for #1:
- https://docs.dagger.io/472910/quickstart-build-multi and select Node
- https://docs.dagger.io/252029/load-images-local-docker-engine - Node is not pre-selected
Reproduction for #2:
- https://docs.dagger.io/947391/quickstart-test and select Node
- htt...
What is the issue?
The navigation menu for docs is not consistent in how it displays pages and sub-pages:
- For SDK/CLI/API sections, sub-pages are displayed inline
- For the quickstart, sub-pages are hidden until the quickstart is selected and then, other sections are hidden. This is also the only section with a
Homebutton to return to the docs index. - For the guides, sub-pages are listed in the main content area

Terminal UIs are notoriously difficult to implement, so there will be quirks, and there may be times where it gets in your way. But overall it should be much better experience than dagger.WithLogOutput(os.Stderr). If you run into any quirks or bugs, or have any ideas to further improve it, please leave a comment here!
 so they don't end up captured like all the rest. "Open logs" should give you the interleaved stdout/stderr logs that you see in the details pane.
We can capture these logs too, just so it's less confusing. Could maybe even capture them in a more useful format, since filled progress bars don't seem all that useful at that point.
The python dependencies install could be simplified and the go version I think is 1.20, but that can be in a follow up.
_Originally posted by @helderco in https://github.com/dagger/dagger/pull/4937#pullrequestreview-1380990279_
I see.
Yes, would be nice to see normal TTY output in real time, but then open those logs as if having run in non-TTY:


We need to scrub even if the secret is written in multiple os.Stdout.Write().
Current state
After investigation, our system split big secrets into 32KB chunks.
And our secrets are limited to < 128000 bytes values.
Buildkit seems to handle bigger plaintext values, but we pass our secrets to the shim via os/exec.Cmd which limits the size of passed parameters. (I'll see how to improve that, maybe by passing the secrets as file to the shim command line)
Interesting - how does it fail? Does Warp usually work with fancy TUIs like htop? I would try myself but don't have a Mac handy.
With this TUI, it just hangs like this:
<img width="196" alt="Screenshot 2023-04-12 at 18 16 41" src="https://user-images.githubusercontent.com/174525/231548423-61774b19-0444-453f-86af-200f65a478b4.png">
Bumps github.com/jackpal/gateway from 1.0.7 to 1.0.10.
Commits
c92e8af Update readme.
405795e Merge pull request #36 from jech/master
1d43aca Fix typo in go:build line
ebddb2a Modernize code.
7b6b918 Updated list of supported OSs.
169fd5f Remove unused code.
d68e6e9 Merge pull request #35 from fuskovic/fix-osx-gateway-parsing
fe27879 validate routing table flags
94d4aae Merge pull request #28 from greatroar/parsers
42c566e Merge branch 'master' into par...
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.242.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.242 (2023-04-12)
Service Client Updates
service/groundstation: Updates service API and documentation
service/managedblockchain: Updates service documentation
Release v1.44.241 (2023-04-11)
Service Client Updates
service/ecr-public: Updates service API and documentation
service/emr-serverless: Updates service API and d...
Bumps github.com/go-git/go-git/v5 from 5.5.2 to 5.6.1.
Release notes
Sourced from github.com/go-git/go-git/v5's releases.
v5.6.1
What's Changed
plumbing/transport: don't use the firstErrLine when it is empty by @ThinkChaos in go-git/go-git#682
plumbing/transport: ssh, unable to pass a custom HostKeyCallback func by @aymanbagabas in go-git/go-git#655
storage/filesystem: dotgit: fix a filesystem race in Refs/walkReferencesTree by @MichaelMure in go-git/...
Bumps golang.org/x/mod from 0.9.0 to 0.10.0.
Commits
ad6fd61 zip: fix on Windows
See full diff in compare view
Dependabo...
Bumps github.com/charmbracelet/lipgloss from 0.6.0 to 0.7.1.
Release notes
Sourced from github.com/charmbracelet/lipgloss's releases.
v0.7.1
This bugfix release fixes a problem introduced in v0.7.0 where applications could freeze or hang on start-up.
What's Changed
fix(renderer): use termenv default renderer by @aymanbagabas in charmbracelet/lipgloss#179
chore: bump termenv to v0.15.1 by @muesli in charmbracelet/lipgloss#180
Full Changelog: h...
Bumps httpx from 0.23.3 to 0.24.0.
Release notes
Sourced from httpx's releases.
Version 0.24.0
0.24.0 (6th April, 2023)
Changed
The logging behaviour has been change to be more in-line with other standard Python logging usages. We no longer have a custom TRACE log level, and we no longer use the HTTPX_LOG_LEVEL environment variable to auto-configure logging. We now have a significant amount of DEBUG logging available at the network level. Full documentati...
Bumps sass from 1.61.0 to 1.62.0.
Release notes
Sourced from sass's releases.
Dart Sass 1.62.0
To install Sass 1.62.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Deprecate the use of multiple !global or !default flags on the same variable. This deprecation is named duplicate-var-flags.
Allow special numbers like var() or calc() in the global functions: grayscale(), i...
What is the issue?
From https://github.com/dagger/dagger/pull/4822#issuecomment-1494400399:
A couple of thoughts:
We should emphasise that WithSecretVariable doesn't end in the container image history, or the final layer. WithEnvVariable does, and sometimes a regular env variable that should not stick around (maybe because that container will be published) should be declared via WithSecretVariable instead. I hit this problem a few weeks ago: https://github.com/thechangelog/change...
What is the issue?
From https://discord.com/channels/707636530424053791/1095626134919594084:
include a note that service containers should be configured to listen on 0.0.0.0 instead of 127.0.0.1...
yep - the issue with 127.0.0.1 is it'll only be reachable within the container itself, so other services (including our healthcheck) won't be able to connect to it. 0.0.0.0 on the other hand will allow connections to any destination IP, i.e. the container's 10.87.xx.xx IP in the Dag...
So far it's working great. The only issue I've found is that PgUp / PgDown doesnt seem to be working for me, possibly because I'm in tmux?
Is that with the tree focused, the logs focused, or both? I think it might not be implemented for the logs view. :thinking:
Just log view, though I don’t have enough jobs right now to try it in the tree.
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.243.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.243 (2023-04-13)
Service Client Updates
service/chime-sdk-voice: Updates service API and documentation
service/mediaconnect: Updates service API, documentation, and paginators
Release v1.44.242 (2023-04-12)
Service Client Updates
service/groundstation: Updates service API and documentation
service/managedblockchain: U...
What is the issue?
The answer to the question in https://docs.dagger.io/162770/faq#how-do-i-log-in-to-a-container-registry-using-a-dagger-sdk is outdated, as we also now have SDK methods for registry authentication. This issue is to update the answer in the FAQ to reflect the above.
Fixes #4586
This seems to be caused by multiple calls to defaultHTTPClient on every request.
DisableKeepAlives on the existing code also seemed to fixed the issue but I think it's better to avoid creating the transports over and over.
Test output with the fix:
% go test -run TestLeak -v
=== RUN TestLeak
2023/04/14 05:11:00 goroutines: 2
2023/04/14 05:11:04 goroutines: 4
2023/04/14 05:11:04 goroutines: 5
2023/04/14 05:11:04 goroutines: 5
STATUS OK
2023/04/14 05:11:05...
Would be nice to collapse/expand with h/l. Or space.
Sometimes it gets stuck in the last line of "importing cache manifest from dagger:10686922502337221602". Ticker is animated and time counts up, but it can take forever unless I kill it.
<img width="874" alt="Screenshot 2023-04-14 at 14 52 21" src="https://user-images.githubusercontent.com/174525/232078614-48177e8c-9998-4f9b-b745-dcafd6f706f9.png">
Yeah, this is a tricky one. It seems to happen with any vertex that quickly starts and finishes. I've also seen it with mkfile.
I attempted to debug it a couple of times, and even captured some journal logs to try and reproduce it (with _EXPERIMENTAL_DAGGER_JOURNAL=/tmp/foo.log), but haven't pinned it down just yet.
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.244.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.244 (2023-04-14)
Service Client Updates
service/ecs: Updates service documentation
This release supports ephemeral storage for AWS Fargate Windows containers.
service/lambda: Updates service API and documentation
This release adds SnapStart related exceptions to InvokeWithResponseStream API. IAM access related docu...
Bumps pytest from 7.3.0 to 7.3.1.
Release notes
Sourced from pytest's releases.
7.3.1
pytest 7.3.1 (2023-04-14)
Improvements
#10875: Python 3.12 support: fixed RuntimeError: TestResult has no addDuration method when running unittest tests.
#10890: Python 3.12 support: fixed shutil.rmtree(onerror=...) deprecation warning when using tmp_path{.interpreted-text role="fixture"}.
Bug Fixes
#10896: Fixed performance regression related to tmp_pat...
@marcosnils pointed out this would be useful in the engine logs too
What is the issue?
Running a directory (by mistake, not by intention) seems to cause the build process to crash or exit prematurely.
Check the "Steps to reproduce" for the dagger script I've used. The equivalent Dockerfile correctly aborts with Permission denied error:
=> [2/3] RUN mkdir -p /test/abc 0.2s
=> ERROR [3/3] RUN /test/abc ...
What is the issue?
Improve the PHP/Laravel guide by adding pipeline labels to the pipeline stages. Context: https://github.com/dagger/dagger/pull/4913#pullrequestreview-1385588413
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.245.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.245 (2023-04-17)
Service Client Updates
service/appflow: Updates service API and documentation
service/drs: Updates service API, documentation, and paginators
service/dynamodb: Updates service API, documentation, waiters, paginators, and examples
Documentation updates for DynamoDB API
service/emr-serverless: Updates ...
Bumps attrs from 22.2.0 to 23.1.0.
Release notes
Sourced from attrs's releases.
23.1.0
Highlights
A lot of features and smaller bug fixes! But also with a heavy heart, we're leaving the last dataclass-less Python version (3.6) behind, but don't worry: the old versions aren't going anywhere and thanks to the magic of package metadata, pip install attrs should still work on Python 3.6 as if nothing happened.
Special Thanks
This release would not be pos...
Closes #4877
Examples all rely on withMountedDirectory. After this PR, we default to withDirectory.
Some examples still rely on the old withDirectory(.., exclude: "") because it made more sense in the example, but the majority of them rely on directoryOps to do include/ exclude folders
Noticed a lot of these were accumulating in a long running engine I was testing (1 per minute)...
Closes #4821
This PR addresses two issues found in the buildArgs function:
- Empty string values were not processed: The function was using the if (value) condition, which is falsy for empty strings, causing the code block to be skipped for empty string values. To fix this, the condition has been updated to explicitly check for undefined and null:
if (value !== undefined && value !== null) {
// ...
}
This chan...
(Based on #4932 just to avoid merge conflicts, will clean up later.)
Currently every schema type has a set of types like this:
type File struct {
ID FileID `json:"id"`
}
type FileID string
func (id FileID) decode() (*fileIDPayload, error) { ... }
type fileIDPayload struct {
LLB *pb.Definition `json:"llb"`
File string `json:"file"`
}
func (*fileIDPayload) ToFile() (*File, error) { ... }
Methods live on *File but they constantly have to convert back...
Adds more context around the https://docs.dagger.io/110632/embed-directories/ docs.
After this PR, readers will know:
- what embedding is
- why is there an example just in Go
Until now, we didn't use a cache for Go modules download in our CI, resulting in a lot of wasteful downloads.
Now, it's loaded directly from the cache.
Working on #4971 , I found a mistake in the test for directory.dockerBuild. container.Build was tested instead.
Here is a quick fix
cc: @jlongtine
[dagger/dagger] Pull request opened: #4977 Bump graphql\-tools\-go for session start performance fix
See https://github.com/dagger/graphql-go-tools/pull/3
This should improve our test run time pretty significantly, and also improve dagger run start time and anything else that creates a Dagger session.
Have run into the same issue intermittently
Some applications detect the presence of a TTY on stdin/stdout/stderr and use that to determine whether to render a TUI of their own. In that case the application will likely just hang.
Also: this was never guaranteed to work as expected anyway, because both the Dagger TUI and the application will be competing for stdin's attention.
What is the issue?
the returned error string from container.Stdout sometimes trim characters from stdout.
Log output
input:1: pipeline.pipeline.container.from.withExec.stdout process "sh -c echo "cccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...
@vito Yeah, PgUp / PgDown doesn't work for me in log view, either. I'd love to have that, if possible. engine:test gets pretty boring scrolling up and down a line at a time...
Was originally including this fix with a bunch of other updates to the cache mount import/export, but need it on a shorter time frame now.
I just started using Dagger, and I am very impressed with it so far. I want to build an image and publish it under multiple tags. I am wondering if this is the correct approach currently:
...
images = [client.container.from... for _ in ...]
for _ in [
"my-image:6.2.0",
"my-image:6.2",
"my-image:6",
"my-image:latest",
]:
await client.container().publish(
address=_,
platform_variants=images,
)
...
It would be great if we could limit secrets to single with_exec commands, like RUN --mount=type=secret, e.g.:
my_secret = client.set_secret("PIP_INDEX_URL", "my-secret-url")
ctr = (
client.container().from_("python:3")
.with_exec(["pip3", "install", "-r", "requirements.txt"], secrets=[my_secret])
...
)
my-secret would only be available for the pip install command but not for ...
[dagger/dagger] New comment on discussion #4981: Python SDK: How to tag an image with multiple tags?
That's correct, the container is built only once while the .publish() action returns the digest for each of those tags.
There's been discussions in the past to allow a single call to publish to multiple tags but IIRC the main issue was dealing with the multiple returned digests.
For a slight performance improvement you can also put that publish in a concurrent task group:
- #4766
Previously we would lock the addnhosts file itself, which in hindsight doesn't make a lot of sense because we also atomically write to it via renaming. This was causing service related tests to hang because concurrent updates weren't synchronizing properly.
Signed-off-by: Marcos Lilljedahl
Signed-off-by: Marcos Lilljedahl
[dagger/dagger] New comment on discussion #4981: Python SDK: How to tag an image with multiple tags?
For a slight performance improvement you can also put that publish in a concurrent task group:
Right, I tried to refactor my script to sth like this:
async with anyio.create_task_group() as tg:
for _ in [
"my-image:6.2.0",
"my-image:6.2",
"my-image:6",
"my-image:latest",
]:
tg.start_soon(client.container().publish, _, platform_variants)
The issue with this is that the output of the image build is printed for each tag ...
[dagger/dagger] New comment on discussion #4981: Python SDK: How to tag an image with multiple tags?
The issue with this is that the output of the image build is printed for each tag on the console. This makes reading the build log in CI really hard.
Oh, right! I suspect that's related to:
There's an open PR to fix that:
It seems that's stale at the moment, and I haven't seen the feedback on it, but I'm assuming it fixes this specific use case (better to confirm though 🙂).
There's a...
[dagger/dagger] New comment on discussion #4981: Python SDK: How to tag an image with multiple tags?
Perfect! Thanks for pointing out the current status and keeping up the great work!
Feature request! Open a shell in a new container based off of a step in the pipeline.
This demoed at one point by @aluzzardi and was just reminded of it in Community Call.
This is breaking the Netlify build. We should probably just HTML escape all these, but this is a quicker fix.
We currently run the shim both outside the container (to reconfigure the runc bundle) and inside exec containers, which makes it straightforward to redirect stdout/stderr, serve nested sessions, etc. It's the pid 1 and spawns the actual user process as a subchild.
However, this can cause problems for programs that insist on being pid 1 such as systemd.
We can instead run the shim completely outside the container. This will require at least:
- Still handling stdout/stderr file redirect...
Another cool feature would be to open in a graph as @aluzzardi showed in https://youtu.be/bL_9GOCZy3Y?t=564
Since the tree structure doesn't correctly map to a vertex having multiple parents (dependencies), the graph would allow much better visibility to the DAG.
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.247.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.247 (2023-04-20)
Service Client Updates
service/chime: Updates service API and documentation
Adds support for Hindi and Thai languages and additional Amazon Transcribe parameters to the StartMeetingTranscription API.
service/chime-sdk-media-pipelines: Updates service API and documentation
service/chime-sdk-meetings: ...
Bumps docusaurus-plugin-image-zoom from 0.1.1 to 0.1.4.
Release notes
Sourced from docusaurus-plugin-image-zoom's releases.
Release 0.1.4
:bug: Bug Fix
Fixes publishing to include lib output from prepublishOnly (@scalvert)
Committers: 1
Steve Calvert (@scalvert)
Release 0.1.3
:house: Internal
#20 Adds prettier, rewrites all files (@scalvert)
#19 Converts to TS to ensure functional match with Docusaurus APIs (@scalvert)...
Bumps @typescript-eslint/parser from 5.56.0 to 5.59.0.
Release notes
Sourced from @typescript-eslint/parser's releases.
v5.59.0
5.59.0 (2023-04-17)
Bug Fixes
eslint-plugin: [no-unnecessary-condition] allow nullish coalescing for naked type parameter (#6910) (3e5f858)
Features
eslint-plugin: [ban-types] add NonNullable suggestion and allow custom suggestions (#6876) (ff65235)
v5.58.0
5.58.0 (2023-04-10)
...
Bumps ruff from 0.0.255 to 0.0.262.
Release notes
Sourced from ruff's releases.
v0.0.262
What's Changed
Configuration
Allow users to extend the set of included files via include by @charliermarsh in charliermarsh/ruff#3914
Implement isort custom sections and ordering (#2419) by @hackedd in charliermarsh/ruff#3900
Rules
[flake8-simplify] Add autofix for contextlib.suppress (SIM105) by @leiserfg in charliermarsh/ruff#3915
[flake8-bandit] Ignore ...
I think it would be great if dagger run printed a summary (or full?) logs on exit. Right now when you exit out of the TUI you have nothing in your scrollback, so you can't go back and passively see where you left off, or see output you didn't know you wanted to keep at the time, etc.
Now that I've gone back and forth a bit, I found myself more comfortable with Bass's UI: it doesn't take over the whole screen, instead you stay in the terminal the whole time and just focus on the bottom of...
I added this as a command line flag option for --oci-max-parallelism previously, but it doesn't work with the engine toml yet.
Actually this is probably now best addressed by just adding upstream, seems like a pretty trivial and generically useful feature
What happened? What did you expect to happen?
I have the following main.py file and I would like to understand how I utilize the caching functionality in Dagger.
I am using the following version:
dagger-io==0.5.1
Python 3.11.3
import sys
import anyio
import dagger
async def main():
config = dagger.Config(log_output=sys.stdout)
async with dagger.Connection(config) as client:
first = (
client.container()
.from_("python:...
This one's pretty straightforward. Previously we would concurrently write to all event readers, but that meant rapid writes to the same reader could be delivered out-of-order. This was especially likely to happen to vertexes that quickly start and finish.
It looks like the goal was to prevent one slow consumer from blocking all the rest, but I think we're fine; the TUI has an infinitely buffered pipe, and the telemetry is also pushed into a queue and sent in batches, so in practice it shou...
Also fixes the scroll % indicator.
This commit adds Python and Node.js snippets for the "Work with the host filesystem guide". It also updates the text where required.
Relates to #4574
Currently, withSecretVariable takes a dagger.Secret. The dx for this looks like:
mysecret := client.SetSecret('my-var', 'secret value')
mycontainer := client.Container().From('alpine').WithSecretVariable('SECRET_ENV', mysecret)
I'm proposing we also have an option to pass a string instead of a dagger.Secret and skip the first step, like:
mycontainer := client.Container().From('alpine').WithSecretVariable('SECRET_ENV', 'secret value')
Thoughts?
I want to install something and append it to PATH to make it accessible. So how to prepend the new directory into the env variable as we do with PATH?
I found one possible solution is query env variable PATH and use this value for appending with new value. I waiting for someone who give a better solution than I do
Hey @wingyplus , just to clarify, are you talking about updating the path in a container you're creating? Something like:
client.Container()
...
.WithEnvVariable('PATH', '/root/.nvm/versions/node/v16.17.0/bin:$PATH')
where $PATH would evaluate (today the above does not work)
Yes, you are correct:
path = await ctr.get_variable("PATH")
print(await (ctr
.with_env_variable("PATH", f"/opt/venv/bin:{path}")
.with_exec(['echo', '$PATH'])
.stdout()
))
I'm currently using:
container := client.Container()
path := container.EnvVariable("PATH")
container.
...
.WithEnvVariable("PATH", fmt.Sprintf("/root/.nvm/versions/node/v16.17.0/bin:%s", path))
Not sure if has anything better. 😂
Thank you, you all. 🙇
Yes, you are correct:
path = await ctr.get_variable("PATH")
print(await (ctr
.with_env_variable("PATH", f"/opt/venv/bin:{path}")
.with_exec(['echo', '$PATH'])
.stdout()
))
Mark @helderco as answer for clearer solution. 🙇
I think this might deserve its own step in the core API… It’s possible in userland, but pretty verbose, and the question does come up often. Seems worth the overhead of a builtin helper. Any thoughts on design?
If you try to get stdout/stderr of an exec and the contents have exceeded 16.7 MB, you will get an error like: Error: input:1: container.from.withMountedDirectory.withWorkdir.withExec.withMountedCache.withMountedFile.withEnvVariable.withExec.stdout ResourceExhausted: grpc: received message larger than max (76040932 vs. 16777216)
I think we can fix this by splitting the code out here to ...
I agree; extending $PATH seems like a common use case. it would be nice to have parity with Dockerfile ENV which supports interpolation.
It might be a surprising default, since who knows what values people might try to set in env vars. An expand: true param would be simple enough to implement by using os.Expand and fetching values from the current image config.
container {
withEnvVariable(name: "PATH", value: "/opt/venv/bin:${PATH}"...
Heap is useful for hunting down memory leaks. Goroutines are useful for general debugging when you want a full stack trace of the entire engine but don't want to send SIGQUIT (which shuts the engine down).
Yes, I second @vito's suggestion. 👍
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.248.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.248 (2023-04-21)
Service Client Updates
service/connect: Updates service API and documentation
service/ecs: Updates service documentation
Documentation update to address various Amazon ECS tickets.
service/fms: Updates service API, documentation, and paginators
Release v1.44.247 (2023-04-20)
Service Client Updates
...
As for doing it by default I'm not worried about the values people may be using, just that we now would have an exception to "we don't expand env vars". Some people try to use it in WithExec() without a shell too, like they can in a Dockerfile. Being explicit makes it clearer. I expect users to ask for it to be included in other places as well when we add this.
I have an inkling of a memory for why we've never done it, from version v0.2, but don't remember the arguments.
In the code for obtaining stdout/stderr of a failed exec, we were passing the context to the deferred Release of the gateway container that is used for all the other calls. This context had a failsafe 30 second timeout so that obtaining stdout/stderr didn't inadvertently block for excessive amounts of time.
If that context ended up cancelled, the Release call would not actually happen, which meant that all the cache refs for the created container would continue to be held open in the engin...
@helderco Here's my thinking re: default behavior:
Dockerfiles can get away with interpolating by default because the only way to pass in a dynamic value is through build args, which also uses interpolation syntax. So either the interpolation is satisfied by an env var, or it is satisfied by a build arg:
FROM golang
ENV PATH=/foo:$PATH
RUN echo $PATH
FROM golang
ARG ARG=/bar
ENV PATH=/foo:$ARG
RUN echo $PATH
If you were to pass `--bui...
Empty caches have 755 permissions, so we should be consistent with that when changing ownership.
see https://github.com/dagger/dagger/pull/4932#discussion_r1174164399
It's a minor improvement to querybuilder performance, given this benchmark:
func BenchmarkBuilder(b *testing.B) {
for i := 0; i < b.N; i++ {
var contents string
root := Query().
Select("foo").
Select("bar").Arg("hello", "world").
Select("field").Arg("test", "test").Bind(&contents)
root.build(context.Background())
_, _ = Query().
Select("a").Arg("arg", "one").
Select("b").Arg("arg", "two").
build(context.Background())
}
}
benchcmp ...
Refactor marshal to use an approach similar to #5007.
Given this benchmark:
func BenchmarkMarshal(b *testing.B) {
s := struct {
A string `json:"a,omitempty"`
B int `json:"b"`
C int `json:"c`
D int `json:"d"`
BoolField bool `json:"bool_field"`
SliceField []string `json:"slice_field"`
Sub struct {
X []string `json:"x"`
} `json:"sub"`
}{
A: "test",
B: 42,
C: ...
What is the issue?
I want to use Docker as a service in Dagger. But when binding docker with service binding, the container stop running without execute any command.
Log output
#1 resolve image config for docker.io/library/docker:23.0.4-dind-rootless
#1 DONE 2.2s
#2 resolve image config for docker.io/hexpm/elixir:1.14.0-erlang-24.3.4-alpine-3.16.0
#2 DONE 0.7s
Steps to reproduce
Create new directory, run go mod init and create go source with content below:
pa...
This is lifted straight from cmd/engine/main.go. Needed it because I was trying to profile a process that was running out of memory and churning CPU, but profiles weren't being saved because I had to kill the process.
A bug seems to be leading to a gigantic pb.Definition value which exceeds the gRPC message size.
I tried to investigate why this was happening, and attempted a fix in Buildkit, but my fix broke other things.
Here's a gist for the gigantic pb.Definition and the "fixed" one: https://gist.github.com/vito/be84c33a40f243ad472e63b88cce5658
Basically Buildkit is repeatedly adding the same source information hundreds of times. I think this happens when we propagate mounts from one contai...
Currently ContainerID, FileID, and DirectoryID are gigantic strings because they are self-contained values that store the instructions for creating them.
I noticed during testing that a these can be pretty expensive to deal with. Dagger was burning a ton of memory on my laptop and even caused my OS to crash. I think the root cause of this was really #5012 but either way I don't think we necessarily wanted these to be giant values forever.
This PR maintains their content-addressed ...
Builds on #5013 to use IDs as cache keys for expensive API requests.
This has by far the largest performance improvement for dagger run ./bass/test -i src=./ because I use OCI archives for images everywhere. Without this, every single call to Container.Import imports the same file every time I run something, spending tens of seconds on redundant I/O that's invisible to the user.
I think it's important for these caches to live on the Dagger side because it frees the API consumer to s...
Is this resolved for you now on latest @helderco ? It's working for me in warp
Trying to figure out why we're seeing flakes where Buildkit gets 'connection refused' trying to resolve image addresses through dnsmasq.
Going to hopefully reproduce it with this PR's own builds, but might be good to merge something like this anyway.
Right now if the engine gets SIGTERM (or similar like SIGINT, etc.), it shuts down gracefully but then still exits with code 1. It should instead only exit non-zero if something went wrong.
What is the issue?
This task is to create a guide to setup Dagger in order to use podman instead of Docker.
This has been requested multiple times:
https://discord.com/channels/707636530424053791/1100004042207416404
#1100004042207416404 message
https://discord.com/channels/707636530424053791/1073859480560865360
This commit fixes inconsistent tab labels in code snippets, from Node to Node.js.
Closes #4935
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.249.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.249 (2023-04-24)
Service Client Updates
service/appflow: Updates service API
service/ec2: Updates service API and documentation
API changes to AWS Verified Access related to identity providers' information.
service/mediaconvert: Updates service API and documentation
This release introduces a noise reduction pre-filt...
Bumps sphinx from 6.1.3 to 6.2.0.
Release notes
Sourced from sphinx's releases.
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Changelog
Sourced from sphinx's changelog.
Release 6.2.0 (released Apr 23, 2023)
Dependencies
Require Docutils 0.18.1 or greater.
Incompatible changes
LaTeX: removal of some internal TeX \dimen registers (not previously
publicly documented) as per 5.1.0 code comments in sphinx.sty:
\sphinxverbatimse...
Bumps @typescript-eslint/parser from 5.56.0 to 5.59.1.
Release notes
Sourced from @typescript-eslint/parser's releases.
v5.59.1
5.59.1 (2023-04-24)
Bug Fixes
eslint-plugin: [prefer-regexp-exec] skip malformed regexes (#6935) (05ed60e)
eslint-plugin: [unified-signatures] no parameters function (#6940) (2970861)
v5.59.0
5.59.0 (2023-04-17)
Bug Fixes
eslint-plugin: [no-unnecessary-condition] allow nullish c...
Noticed during some load tests that the engine was accumulating tons of RSS that was never released. Then noticed that buildkit's cache was full of refs that were not prunable even after all clients disconnected. This fixes one source of the leak. There's another leak happening due to an issue upstream: https://github.com/moby/buildkit/pull/3815
With this plus the upstream fix all cache refs are prunable and the engine's RSS stays much lower and a consistent value between runs.
Yeah I though about that something like that, more like going back into the COMPLETE interactive view. But printing the logs on exit is better than nothing.
Refactor code to pass memory addresses of fields directly to Objects.
Otherwise, we would only return references to the same objects.
Example: EnvVariables() would return n times the last env var encountered
Those signals were resulting in graceful shutdown before but the engine still exited non-zero because some errors were set to context canceled.
This also adds a test case and some associated plumbing so that the tests that spin up an additional engine work with ./hack/dev too.
cc @jlongtine was able to make good use of all the new setup from your recent refactorization here, also tweaked it to make the nested engine tests work with ./hack/dev
Proposal to add withEnvVariables on Go SDK: as it is a strongly typed language, this is the most important DX impacted API.
⚠️ Prior reviewing / merging, please read context: here.
When finished, closes https://github.com/dagger/dagger/issues/4835.
Follow-up with Node and Python after confirmation that this is the desired DX.
Repro:
package main
import (
"context"
"fmt"
"dagger.io/dagger"
...
I use a CI tool in a cloud, each jobs in a CI flow runs on a container. So, there is no docker for each jobs.
How to support dagger in this type CI tool?
When I test https://github.com/dagger/examples/tree/main/nodejs/react-build, I got an error:
[13:00:30] ✔ All packages installed (1251 packages installed from npm registry, used 18s(network 18s), speed 3.85MB/s, json 1106(26.91MB), tarball 42.35MB, manifests cache hit 0, etag hit 0 / miss 0)
[13:00:30] [User Command] + node ./...
docker is used to automatically provision the Dagger Engine: https://github.com/dagger/dagger/blob/fc43cfd3133f6497622fb41d1f1d4e3a00743f7e/internal/engine/docker.go#L88-L107
You can skip this auto provisioning by setting the _EXPERIMENTAL_DAGGER_RUNNER_HOST environment variable. See https://github.com/dagger/dagger/blob/v0.5.0/core/docs/d7yxc-operator_manual.md#connection-interface for the available options.
If you go down this path, you will need to manually provision Dagger Engin...
What is the issue?
The Python SDK installation page at https://docs.dagger.io/sdk/python/628797/get-started does not specify how to create a virtual environment. This should be included for users unfamiliar with Python.
From Discord: "Hi, I'm trying the basic example in the tutorial at https://docs.dagger.io/sdk/python/628797/get-started. I've installed dagger-io and copied the test.py script into the fastapi dir, verbatim. When i run py test.py, i get no output and the process just h...
This commit adds Python and Node.js snippets to the multi-stage build guide. It also updates the cookbook.
Relates to #4574
This commit adds additional optional instructions for creating a Python virtual environment in the Python SDK get started guide.
Closes #5027
This commit updates the Node.js get started guide to include additional TypeScript packages for new users unfamiliar with configuring Node.js' TypeScript support.
@vito the engine exit test caught something with the dnsmasq changes, just needed to update the child proc to use CommandContext
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.250.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.250 (2023-04-25)
Service Client Updates
service/chime-sdk-messaging: Updates service API and documentation
service/connect: Updates service API, documentation, and paginators
service/datasync: Updates service API, documentation, and paginators
service/ds: Updates service API and documentation
New field added in AWS Man...
Bumps ruff from 0.0.255 to 0.0.263.
Release notes
Sourced from ruff's releases.
v0.0.263
What's Changed
Rules
[flake8-bugbear] Add pytest.raises(Exception) support to B017 by @alanhdu in charliermarsh/ruff#4052
[flake8-import-conventions] Implement new rule ICN003 to ban from ... import ... for selected modules by @edgarrmondragon in charliermarsh/ruff#4040
[pylint] Implement PLE0302 unexpected-special-method-signature by @mccullocht in charlier...
Bumps platformdirs from 3.2.0 to 3.3.0.
Release notes
Sourced from platformdirs's releases.
3.3.0
What's Changed
Exclude bots from generated release notes by @hugovk in platformdirs/platformdirs#157
platformdirs: introduce user_pictures_dir() by @kemzeb in platformdirs/platformdirs#167
New Contributors
@kemzeb made their first contribution in platformdirs/platformdirs#167
Full Changelog: https://github.com/platformdirs/platformdirs/com...
Bumps sphinx from 6.1.3 to 6.2.1.
Release notes
Sourced from sphinx's releases.
v6.2.1
Changelog: https://www.sphinx-doc.org/en/master/changes.html
v6.2.0
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Changelog
Sourced from sphinx's changelog.
Release 6.2.1 (released Apr 25, 2023)
Bugs fixed
#11355: Revert the default type of :confval:nitpick_ignore and
:confval:nitpick_ignore_regex to list.
Release 6.2.0 (released Apr 23, 2023)
D...
- The dropdown in the tag filtering section does not work with the keyboard only as the component uses the
onClick()React method only to be fired. - Dropdown items are not selectable with
Enteror browsable withTab. - The input does not occupy the whole box width, so when clicking a bit to the right, nothing happens.
What are you trying to do?
Would like to get a list of which files were read/opened during a pipeline run.
Context in discord [here](#general message)
Why is this important to you?
Lots of boilerplate code in our repos, significant amounts aren't actually used. Would be good cool to be able to say "xyz files can likely be deprecated"
How are you currently working around this?
If this isn't possible dire...
Our of curiosity, which CI tool do you use? What cloud is this?
I use https://flow.aliyun.com. They provide a free CI tool, but only support running CI jobs in containers. If I want to use dagger, I should buy a cloud host to run CI jobs?
Fixes #4833
Signed-off-by: Helder Correia
This commit adds recipes to the cookbook.
I've found an issue relating to dagger.WithWorkdir("..") (more context here.
The use case is putting your dagger go files in their own directory, e.g. "ci". I then use dagger.WithWorkdir("..") to set my working directory to the parent of "ci".
Take the following:
package main
import (
"context"
"fmt"
"os"
"dagger.io/dagger"
)
func main() {
ctx := context.Background()
client, err := ...
Found a workaround - pass the --workdir to dagger:
dagger --workdir .. run go run *.go
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.251.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.251 (2023-04-26)
Service Client Updates
service/osis: Updates service API, documentation, paginators, and examples
Release v1.44.250 (2023-04-25)
Service Client Updates
service/chime-sdk-messaging: Updates service API and documentation
service/connect: Updates service API, documentation, and paginators
service/datasyn...
Bumps platformdirs from 3.2.0 to 3.4.0.
Release notes
Sourced from platformdirs's releases.
3.4.0
What's Changed
platformdirs: introduce user_videos_dir() by @kemzeb in platformdirs/platformdirs#169
Adding platformdirs.PlatformDirs to docs by @keller00 in platformdirs/platformdirs#170
Fix linter failures by @gaborbernat in platformdirs/platformdirs#171
New Contributors
@keller00 made their first contribution in platformdirs/platformdir...
Bumps sass from 1.61.0 to 1.62.1.
Release notes
Sourced from sass's releases.
Dart Sass 1.62.1
To install Sass 1.62.1, 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 :has(+ &) and related constructs would drop the leading combinator.
See the full changelog for changes in earlier releases.
Dart Sass 1.62.0
To install Sass 1.62.0, download one of the pack...
The TUI is really nice.
I'd really like if there were more vim-like controls.
As an example, I re-map pgUp/pgDown to my volume control because I have no other use for it (so these don't work with the TUI).
But ctrl-f/ctrl-b would be more vim like (and less and other TUIs).
Searching ala vim would be phenominal as well.
That would be '/' for forward search and '?' For backwards search
The vim keybinding for fold/unfold is "zc" and "zo" respectfully. "za" toggles a fold
A keybind for a vim like experiment might be "enter" which is what vims file bowser netrw uses to open files.
I can also see an argument for "i" or any other binding for insert mode.
Ideally there would also be a way to open the container here "after" the command fails. This likely will require some internal stuff because normally things disappear when a build step fails.
TIL ?. Yeah / would be forward and ? would be backwards (though I just use n and N with / to go one direction or the other).
What is the issue?
I have my dagger plans in a directory called "ci". I want to be able to access files in the parent directory (project root):
Document how to solve this using https://discord.com/channels/707636530424053791/1030538312508776540/threads/1100412439356506233
One month later, closing this as there were no responses.
That is helpful, thanks!
Dagger Engine is effectively a container runtime. All operations that it runs are containers running inside the Dagger Engine. Running a container runtime inside another container runtime is how https://github.com/kubernetes-sigs/kind works, as well as https://hub.docker.com/_/docker.
If you run the Dagger Engine as another container, then you need to be able to connect to it. tcp:// might be your safest bet. I would first check that you can connect to the Dag...
What is the issue?
Create a guide to troubleshoot Dagger.
Potentially this could also be a guide to troubleshoot Dagger pipelines.
Inspired by https://discord.com/channels/707636530424053791/1101085612750143568
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.252.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.252 (2023-04-27)
Service Client Updates
service/ec2: Updates service API and documentation
This release adds support for AMD SEV-SNP on EC2 instances.
service/emr-containers: Updates service API and documentation
service/guardduty: Updates service API and documentation
Added API support to initiate on-demand malware...
Bumps platformdirs from 3.2.0 to 3.5.0.
Release notes
Sourced from platformdirs's releases.
3.5.0
What's Changed
platformdirs: introduce user_music_dir() by @kemzeb in platformdirs/platformdirs#173
Full Changelog: https://github.com/platformdirs/platformdirs/compare/3.4.0...3.5.0
3.4.0
What's Changed
platformdirs: introduce user_videos_dir() by @kemzeb in platformdirs/platformdirs#169
Adding platformdirs.PlatformDirs to docs by @keller...
This replaces the need for the engine to use the S3 API directly and have credentials for accessing the bucket. There's a few benefits:
- Engine doesn't need to be setup with cross-account access to Dagger's S3 buckets, which greatly simplifies configuration for users and gives Dagger flexibility to modify buckets without users having to make updates.
- It's more secure as the pre-signed URLs are tightly scoped in terms of capabilities and expire after a timeout.
- It greatly reduces th...
Just FYI we have an issue tracking this bug here: https://github.com/dagger/dagger/issues/4424
Draft for now until we finalize the structure and have the tables properly setup. Also worth doing a quick load test, if there's an overwhelming number of logs in those we can easily filter some of them out, especially the logs written whenever any request is made to a registry.
If you run the Dagger Engine as another container, then you need to be able to connect to it.
tcp://might be your safest bet. I would first check that you can connect to the Dagger Engine container vianc -zvG1 <CONTAINER_HOST_OR_IP> <CONTAINER_TC_PORT>.
No, I even don't know the HOST_IP, because it's a black box for us.
Merge environments and labels from previous container to the new one on call to merge and build.
Resolves: #4588
This commit adds a guide on using Docker alternatives with Dagger.
Closes #5017
This PR was auto-generated.
What happened? What did you expect to happen?
Some people (e.g: #4217), including myself, are trying to use a private registry as a mirror for the Docker Hub registry.
This, according to the Buildkit documentation is achieved with the following /etc/buildkit.toml file:
debug = true
[registry."docker.io"]
mirrors = ["mirror.gcr.io"]
How does one do that for Dagger?
As an example, the following method shou...
These are the exact steps that we followed during this release.
The doc now explains why we are doing these improvements during the release.
This is a workaround that I was looking for. Thanks @brk3!
In my case:
_EXPERIMENTAL_DAGGER_TUI=1 dagger --workdir ../ run go run main.go ci
<img width="2880" alt="image" src="https://user-images.githubusercontent.com/3342/235232738-79f9d1c5-43c7-4f66-ba4b-0aa37a3b97ff.png">
I am on the recently released v0.5.1 and the TUI doesn't seem to follow correctly.

I think that when two ops start at once, it doesn't know which one to go to next.
To reproduce:
git clone https://github.com/thechangelog/changelog.com
cd changelog.com/magefiles
_EXPERIMENTAL_DAGGER_TUI=1 dagger --wor...
This is definitely confusing, but probably nothing is broken. It avoids following services because usually you want to focus on the client, not the service. In this case I'm guessing the service was the last thing running, possibly waiting to just time out.
It could maybe switch to services and then switch to something else with a higher priority if it comes up.
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.253.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.253 (2023-04-28)
Service Client Updates
service/appflow: Updates service API and documentation
service/athena: Updates service API, documentation, and paginators
You can now use capacity reservations on Amazon Athena to run SQL queries on fully-managed compute capacity.
service/directconnect: Updates service document...
Bumps prettier from 2.8.7 to 2.8.8.
Release notes
Sourced from prettier's releases.
2.8.8
This version is a republished version of v2.8.7.
A bad version was accidentally published and it can't be unpublished, apologies for the churn.
Changelog
Sourced from prettier's changelog.
2.8.8
This version is a republished version of v2.8.7.
A bad version was accidentally published and it can't be unpublished, apologies for the churn.
Commits
1b7fad5 Re...
This commit updates the quickstart embed creation script to use the repo at github.com/dagger/hello-dagger as source and also updates the embeds and their IDs.
This is very early, not even done in terms of base POC requirements, but functional enough to send out and get initial feedback. Don't take anything as finalized, lots of the details were optimized for speed and re-using existing code as much as possible.
Right now I've only tested w/ Go. In theory Python either already works or only needs a few tweaks, but haven't tried yet. NodeJS is a TODO.
Demo
There is a demo of current functionali...
testing bug bounty - please ignore..... qrxubp
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.254.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.254 (2023-05-01)
Service Client Updates
service/compute-optimizer: Updates service API and documentation
service/kms: Updates service API, documentation, and examples
This release makes the NitroEnclave request parameter Recipient and the response field for CiphertextForRecipient available in AWS SDKs. It also adds the...
Bumps typer from 0.7.0 to 0.8.0.
Release notes
Sourced from typer's releases.
0.8.0
Features
✨ Add support for custom types and parsers. Initial PR #583 by @jpurviance. Based on original PR #443 by @paulo-raca.
New docs: CLI Parameter Types: Custom Types.
Upgrades
⬆ Upgrade Rich, support 13.x. PR #524 by @musicinmybrain.
Docs
📝 Tweak docs, Custom Types path, main page and READAME colors, broken links. PR #588 by @tiangolo.
✏ Fix spelling (shi...
Bumps @typescript-eslint/parser from 5.56.0 to 5.59.2.
Release notes
Sourced from @typescript-eslint/parser's releases.
v5.59.2
5.59.2 (2023-05-01)
Note: Version bump only for package @typescript-eslint/typescript-eslint
v5.59.1
5.59.1 (2023-04-24)
Bug Fixes
eslint-plugin: [prefer-regexp-exec] skip malformed regexes (#6935) (05ed60e)
eslint-plugin: [unified-signatures] no parameters function (#6940) (2970...
Problem
Developers are often confused by a property of the engine called "laziness": pipelines are executed at the latest possible moment, to maximize performance. Sometimes developers want to selectively disable laziness: they need to know that at a certain point in their code, the pipeline they have defined so far has actually been executed. Today this can only be done with painful workarounds.
Solution
Allow developers to selec...
For certain settings, S3 pre-signed URLs will sign the URL with the setting name and value, but doesn't include it in the URL as a query string. It's expected that the user of the URL include it as a header with the same value when actually making the request.
Previously, this was just Content-Length, which we handled as a special case but it turns out another such header is x-amz-acl, which we currently need to use in order to ensure that uploading to a cross-account bucket will work. T...
Background
While trying to implement examples for issue Allow string parameter for withSecretVariable, it became apparent that there are limitations when dealing with binary data in GraphQL using strings. This is relevant for the purpose of mounting directories as secrets, where binary data needs to be handled.
I encountered a problem when attempting to handle GPG files. The goal was to create and GPG-sign a built binary with Dagger by mounting the ~/.gnupg directory into ...
What is the issue?
Add an example of glob patterns include/exclude in the filesystems guide: https://docs.dagger.io/421437/work-with-host-filesystem.
From Helder: "I've seen users put things like glob("**.py") at the language level to traverse multiple subdirs. We need to show that this is also supported."
This is primarily needed to workaround an issue in Buildkit where a series of bugs can result in container stdout/stderr resulting in runc getting blocked trying to write to its output pipes and never exit.
That needs an upstream fix but we can make it much rarer by reducing the amount of output our shim can send in the case where its printing stdout/stderr after an exec failure, which is the main place we hit the bug previously.
We were already truncating that output anyways, but we we...
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.255.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.255 (2023-05-02)
Service Client Updates
service/appflow: Updates service API and documentation
service/connect: Updates service API
service/ecs: Updates service documentation
Documentation only update to address Amazon ECS tickets.
service/kendra: Updates service API and documentation
AWS Kendra now supports configu...
Bumps ruff from 0.0.255 to 0.0.264.
Release notes
Sourced from ruff's releases.
v0.0.264
What's Changed
Rules
Autofix EM101, EM102, EM103 if possible by @dhruvmanila in charliermarsh/ruff#4123
Add bugbear immutable functions as allowed in dataclasses by @mosauter in charliermarsh/ruff#4122
Settings
Add support for providing command-line arguments via argfile by @charliermarsh in charliermarsh/ruff#4087
Bug Fixes
Make D410/D411 autofixes mutu...
Bumps beartype from 0.13.1 to 0.14.0.
Release notes
Sourced from beartype's releases.
Beartype 0.14.0
This minor release brings exhilarating support for PEP 673 (i.e., typing.Self) and PEP 675 (i.e., typing.LiteralString) as well as substantially improved compatibility with PyPy.
This minor release resolves 2 issues. But first, a brief word from our tenebrous sponsors. They are gentlemanly alchemists who dispense truth and money while despoiling bugs ...
Bumps typer from 0.7.0 to 0.9.0.
Release notes
Sourced from typer's releases.
0.9.0
Features
✨ Add support for PEP-593 Annotated for specifying options and arguments. Initial PR #584 by @ryangalamb.
New docs: Optional CLI arguments.
It is no longer required to pass a default value of ... to mark a CLI Argument or CLI Option as required.
It is now recommended to use Annotated for typer.Option() and typer.Argument().
All the docs have been updated to re...
@helderco mentioned:
Can we append some notice like "truncated output"? Multiple users have been confused that the output is truncated, reporting it as a bug.
This PR introduces Progrock to the codebase, in a backwards-compatible way.
The main user-facing feature here is the addition of an alternative inline style TUI that doesn't take over your terminal screen:
export _EXPERIMENTAL_DAGGER_TUI=inlineto enable
I prefer this UI for quick local iteration, since it keeps you in the...
What is the issue?
Add a recipe for loading Doppler secrets to the Dagger cookbook.
Context: #1101028332830736384 message
This commit adds recipies for using Doppler secrets from Dagger.
Closes #5079
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.256.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.256 (2023-05-03)
Service Client Updates
service/appsync: Updates service API and documentation
service/ec2: Updates service paginators
Adds an SDK paginator for GetNetworkInsightsAccessScopeAnalysisFindings
service/inspector2: Updates service API and documentation
service/iottwinmaker: Updates service API and documen...
Bumps typedoc from 0.23.26 to 0.24.6.
Release notes
Sourced from typedoc's releases.
v0.24.6
Features
Improved error messaging if a provided entry point could not be converted into a documented module reflection, #2242.
API: Added support for g, circle, ellipse, polygon, and polyline svg elements, #2259.
Extended jsDocCompatibility option with inheritDocTag to ignore fully lowercase inheritDoc tags and
ignoreUnescapedBraces to disable warnings about...
The main reason I haven't dived into using is I don't want it to keep running and require me to exit. Is that still the case?
I want to run a task like mage build and it run the output until the job completes and then exit as normal.
Summary
This proposal suggests adding an SDK helper for efficiently synchronizing multiple pipelines, in an easy to use way.
Background
Depends on:
- #5065
Based on:
- #4205
Motivation
Often times, you want to execute multiple pipelines in parallel (e.g. build & test). This is surprisingly tedious to do:
eg, gctx := errgroup.WithContext(ctx)
eg.Go(func() error {
_, err := test(client).Sync(gctx)
return err
})
eg.Go(func() error {
_,...
Problem
In the new (and awesome) TUI:
- directory imports (reading from host filesystem) are shown with the source path ✅
- but directory exports (writing from host filesystem) don't 😢
Example:

Solution
Change how directory exports are displayed in the TUI, so that the target path is visible.
It still stays open, because otherwise you wouldn't be able to inspect the results, since it exits out to an empty terminal. I suggested having it print all the logs on exit in https://github.com/dagger/dagger/discussions/4942#discussioncomment-5678329 but haven't done that yet.
You might be interested in trying the inline TUI: https://github.com/dagger/dagger/pull/5078
Follow-up: there's a new inline style TUI experiment. https://github.com/dagger/dagger/pull/5078
This commit fixes an error in the code snippet for the quickstart Python caching example.
This commit removes the CUE SDK links from the current docs website navbar.
As reported by Kasper Hermansen:
Service containers are great, the host names are bit weird in the output, i.e. the generated hostname, would be nice if it showed the alias more clearly.
After #5087 I realized the Node tabs in Quickstart weren't working. It was because of an incomplete change in:
- #5018.
Signed-off-by: Helder Correia
This allows using a anyio.Path instead of pathlib.Path, or similar "path-like" objects.
This change is only noticeable in the IDE.
Bumps golang.org/x/sync from 0.1.0 to 0.2.0.
Commits
1ea3257 singleflight: make the check for exec support in TestPanicDoChan platform-agn...
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-depe...
Bumps github.com/aws/aws-sdk-go from 1.34.0 to 1.44.257.
Release notes
Sourced from github.com/aws/aws-sdk-go's releases.
Release v1.44.257 (2023-05-04)
Service Client Updates
service/config: Updates service API
service/connect: Updates service API and documentation
service/ecs: Updates service API
Documentation update for new error type NamespaceNotFoundException for CreateCluster and UpdateCluster
service/monitoring: Updates service API and documen...
Bumps spectaql from 2.0.5 to 2.0.7.
Changelog
Sourced from spectaql's changelog.
2.0.7
Dependency updates
2.0.6
Dependency updates
Commits
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-d...
This commit uses stderr for log output in all get started guide snippets.
Relates to #4858
Create a markdown document in the sdk/ directory with instructions on creating an SDK. This is useful to document conventions between our SDKs for consistency, but also as a manual for making a new one.
What are you trying to do?
Get a hash for a directory I've loaded in / invalidating a cache
Why is this important to you?
This could be useful for either packaging, or invalidating a cache_volume.
How are you currently working around this?
doing it the digest using dirhash, not a super great solution though as it will take more or less files into consideration. Or letting dagger handle the invalidation.
This commit removes CUE SDK references in the content of the current docs. After this commit is merged and the docs reindexed, searching for cue should return nil references.
This is just rough outline for the content for now.
Fixes #5095
Configure Dependabot to bump dependencies monthly because daily results in too much noise. It makes it more difficult to spot "real" contributions vs. "noisy ones".
With a reduced frequency (monthly instead of daily), this gives us the chance to update the things that we care about ourselves. It is known for some updates to result in breakages further down the pipeline, e.g. https://github.com/dagger/dagger/pull/4850
FTR: https://docs.github.com/en/code-security/dependabot/depen...
The current behaviour makes sense. I am wondering if this would have been more intuitive if services used a different colour.
Bumps golang.org/x/sync from 0.1.0 to 0.2.0.
Commits
1ea3257 singleflight: make the check for exec support in TestPanicDoChan platform-agn...
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-depe...
Bumps graphql-request from 5.1.0 to 6.0.0.
Release notes
Sourced from graphql-request's releases.
6.0.0
BREAKING CHANGES
02a5522 remove file uploads feature (#501)
702ef92 bring TS 5 support (#480)
Features
02a5522 (breaking) remove file uploads feature (#501)
702ef92 (breaking) bring TS 5 support (#480)
Fixes
8a98925 change event handlers registration style (#474)
Improvements
5ce990a refactor: remove default syntax
fee4476 refactor: ...
Bumps eslint from 8.37.0 to 8.39.0.
Release notes
Sourced from eslint's releases.
v8.39.0
Features
3f7af9f feat: Implement SourceCode#markVariableAsUsed() (#17086) (Nicholas C. Zakas)
Documentation
6987dc5 docs: Fix formatting in Custom Rules docs (#17097) (Milos Djermanovic)
4ee92e5 docs: Update README (GitHub Actions Bot)
d8e9887 docs: Custom Rules cleanup/expansion (#16906) (Ben Perlmutter)
1fea279 docs: Clarify how to add to tsc agenda (#17084) (Ni...
Bumps github.com/google/go-github/v50 from 50.1.0 to 50.2.0.
Release notes
Sourced from github.com/google/go-github/v50's releases.
v50.2.0
This minor release contains the following interesting changes:
Add ListExternalGroupsForTeamBySlug to Teams API (#2674)
Add DicussionCommentEvent Webhook (#2678)
Add head_sha for ListWorkflowRunsOptions (#2703)
Support HTTP Proxy from environment (#2686)
Update custom repo roles URL (#2702)
Move to Protonmail PGP ...
Bumps rich from 12.6.0 to 13.3.5.
Release notes
Sourced from rich's releases.
v13.3.5
[13.3.5] - 2023-04-27
Fixed
Fixed italic indent guides in SVG output
Bugfix for is_terminal
[13.3.4] - 2023-04-12
Fixed
Fixed for is_terminal ignoring FORCE_COLOR Textualize/rich#2923
Clear meta and links
Just a new method on the Style class. A helper for Textual, you probable aren't going to need it.
[13.3.3] - 2023-02-27
Added
Added Style.clear_meta_and_links
F...
Bumps go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.14.0 to 1.15.1.
Changelog
Sourced from go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc's changelog.
[1.15.1/0.38.1] 2023-05-02
Fixed
Remove unused imports from sdk/resource/host_id_bsd.go which caused build failures. (#4040, #4041)
[1.15.0/0.38.0] 2023-04-27
Added
The go.opentelemetry.io/otel/metric/embedded package. (#3916)
The Version functi...
Bumps @typescript-eslint/eslint-plugin from 5.57.0 to 5.59.2.
Release notes
Sourced from @typescript-eslint/eslint-plugin's releases.
v5.59.2
5.59.2 (2023-05-01)
Note: Version bump only for package @typescript-eslint/typescript-eslint
v5.59.1
5.59.1 (2023-04-24)
Bug Fixes
eslint-plugin: [prefer-regexp-exec] skip malformed regexes (#6935) (05ed60e)
eslint-plugin: [unified-signatures] no parameters f...
Bumps golang.org/x/term from 0.7.0 to 0.8.0.
Commits
119f703 go.mod: update golang.org/x dependencies
See full diff in compare view
Bumps typescript from 4.9.5 to 5.0.4.
Release notes
Sourced from typescript's releases.
TypeScript 5.0.4
For release notes, check out the release announcement.
For the complete list of fixed issues, check out the
fixed issues query for Typescript v5.0.0 (Beta).
fixed issues query for Typescript v5.0.1 (RC).
fixed issues query for Typescript v5.0.2 (Stable).
fixed issues query for Typescript v5.0.3 (Stable).
fixed issues query for Typescript v5.0.4...
Bumps go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.40.0 to 0.41.1.
Release notes
Sourced from go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc's releases.
Release v1.16.1/v0.41.1/v0.10.1
What's Changed
Added
The WithPublicEndpoint and WithPublicEndpointFn options in go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux. (#3661)
Changed
Upgrad...
Bumps golang.org/x/sync from 0.1.0 to 0.2.0.
Commits
1ea3257 singleflight: make the check for exec support in TestPanicDoChan platform-agn...
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-depe...
Bumps poethepoet from 0.19.0 to 0.20.0.
Release notes
Sourced from poethepoet's releases.
v0.20.0
Enhancements
Launch new documentation website
Fixes
win32: Resolve Executable to Absolute Path if not found in venv by @ameily in nat-n/poethepoet#142
Breaking changes
Drop support for python 3.7
New Contributors
@ameily made their first contribution in nat-n/poethepoet#142
@usr-ein made their first contribution in nat-n/poethepoet#139
Full Chan...
Bumps golang.org/x/net from 0.0.0-20221014081412-f15817d10f9b to 0.7.0.
Commits
See full diff in compare view
This reverts commit 7a12edb9a16fb52f5cf14fef1e9ca3540aea3cdc.
Dropped parallel marshaling, which is important because that's where *Container objects get resolved to ContainerID: https://github.com/dagger/dagger/pull/5008/files#r1185317084
Was looking through some long-running test logs and noticed a few quick-fix improvements. The changes that are less self-obvious have detailed commit messages.
By eyeball alone I didn't notice any obvious performance improvements after these but they certainly don't hurt in that regard and help improve the logging in general anyway.
What is the issue?
When performing a diff between a host directory and a directory from a container, the following error is encountered: TODO: cannot diff with different relative paths: "bin" != ""
Example:
hostBin := client.Host().Directory("bin") // bin/ already exists on the host
artifacts := client.Directory()
// ... write files to the bin/ directory in artifacts
artifactsBin := artifacts.Directory("bin")
diff := artifactsBin.Diff(hostBin) // will fail
diffs, er...
In the guides, such as https://docs.dagger.io/593914/quickstart-hello, Node.js does not have any syntax highlighting while Go and Python do
Added a quick test to at least test the most basic functionality in RegistryAuthProvider.
At some point I think it would be good to test the Docker auth provider fallback and cover errors too.
Wandering if exposing dockerAuthProvider (turning it into DockerAuthProvider so that the test can override it) and allowing the test to set a mocked auth provider could work, or perhaps there's an easy way to initialize something like that in memory and cover the functionality.
Other test...
This commit makes the left sidebar menu collapsible so that the entire menu is visible without scrolling.
Closes #4934
Signed-off-by: Marcos Lilljedahl
Summary
I’m proposing we deprecate exitCode in favor of sync.
References
If accepted, will resolve:
Depends on:
Not a blocker but makes it simpler:
Motivation
The Container.exitCode field doesn’t make sense because you always get zero on success and you can’t get the non-zero value when the command fails due to a bu...
A few things went wrong here:
- Homebrew sets Version=v1.2.3
- GoReleaser sets Version=1.2.3
- ImageRef had an accidentally inverted
if !semver.IsValid(Version) { - But it "worked" because when Version was
1.2.3the condition would fail because it was missing the "...
This should make failures/weird behavior more obvious when using dagger run.
This fixes a bug during serialization of input object arguments like BuildArg. These objects were previously being skipped without error.
This PR was auto-generated.
These are the exact steps that we followed during this release.
Bumps github.com/cloudflare/circl from 1.1.0 to 1.3.3.
Release notes
Sourced from github.com/cloudflare/circl's releases.
CIRCL v1.3.3
New Features
ASCON light-weight authenticated encryption.
Hybrid KEM for HPKE based on Kyber and X25519.
CIRCL can be compiled both as static and dynamic linking modes.
Security
Fixes error-handling on rand readers.
What's Changed
Use untyped consts for Kyber params by @tmthrgd in cloudflare/circl#398
zk/dl: adds ...
Bumps github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible.
Release notes
Sourced from github.com/docker/distribution's releases.
v2.8.2
What's Changed
Revert registry/client: set Accept: identity header when getting layers by @ndeloof in distribution/distribution#3783
Parse http forbidden as denied by @vvoland in distribution/distribution#3914
Fix CVE-2022-28391 by bumping alpine from 3.14 to 3.16 by @thaJeztah (#3650)
F...
TODO:
- tidy up log.Printlns
- fill out PR description
Add code of conduct for Discord forum and any other Dagger Community activities.
- Minor improvement, adds
t.Parallelto some tests that weren't using it.
If you run a pipeline that references an image using a tag, the tag needs to be resolved to a SHA, which requires internet access (or, more specifically, network access to the registry).
This means that if you are offline you can't run those pipelines, even if the images are cached locally. This also results in the inability to run pretty much all of our test suite while offline, which is quite annoying if you are working on dagger and only have intermittent internet access.
Workarounds...
A 64KB (or more?) id is really hard to work with. How about assigning a unique GUIDs to steps in Dagger, and referencing them that way? I'm sure the data in the current Base64-encoded JSON blobs is useful, so I would propose to have a way to exchange one for the other. But for referencing purposes, a simple, short GUID would be much more convenient for copy-pasting and storing scenarios.
Hi @nabsul, the term "ID" can be confusing (we have discussed changing the name in the past, but no consensus on that at the moment). These are not just references, but really a complete export of the pipeline state. This is a fundamental part of the engine's design. See for example #3923 for a discussion of future applications of this.
It looks like you're looking for a more "regular" ID, something that uniquely identifies a pipeline without actually containing its entire state. That is a...
One scenario I'm thinking about: I'm not a fan of the hugely nested GraphQL Syntax.
Instead of:
withExec(command1) {
withExec(command2) {
withExec(command3) {
....
}
I would rather be able to do something like (in rough pseudo code):
id1 = .... withExec(command1)
id2 = layer(id1) { withExec(command2) }
id3 = layer(id2) { withExec(command3) }
....
And of course the above flat list of commands could easily be represented in a for-loop.
Basically the idea is to build the DAG in steps instead of needing to generate the whole thing in one go.
Bug bounty test - PLEASE DO NOT APPROVE. ezlbyh
First Step towards Resolving
More detail: Incorrectly configured cache volumes
Step 1: Improving Documentation
To address the mentioned issue, I have made improvements to the documentation. The issue revolves around incorrect configuration of cache volumes. The following changes have been implemented to resolve this problem:
- Introducing Caching in Dagger...
Fixes:
This PR introduces a new utility function env_variables that can be used to set multiple environment variables. It relies on the with() helper that users can rely on to implement their own API wrapper.
:wave: another user getting confused with this in Discord today: #1107670041362706532 message
Might want to bump the priority on this one. cc @d3rp3tt3 @shykes
Thanks for the bump. I escalated it to the community support backlog
This may be related, but the context is different: https://github.com/dagger/dagger/pull/5013
Discussed in https://github.com/dagger/dagger/discussions/5001
Originally posted by wingyplus April 21, 2023
I want to install something and append it to PATH to make it accessible. So how to prepend the new directory into the env variable as we do with PATH?
To properly use typescript with the Node.js SDK, it should export more types.
In order to fix the cookbook PR #5139, this PR will only cover Container type.
Additional PRs will be developed subsequently to accommodate other types.
The new commit adds support for trace logs which, if enabled, log every acquire+release of every cache ref. This should be very useful for debugging cache leaks.
A first take was merged here: https://github.com/dagger/dagger/pull/5060
We need to:
- Bikeshed it more
- Add support for command invocation
Here's the current graphql schema:
extend type Query {
"Load a project from ID."
project(id: ProjectID): Project!
"Load a project command from ID."
projectCommand(id: ProjectCommandID): ProjectCommand!
}
"A unique project identifier."
scalar ProjectID
"A unique project command identifier."
scalar ProjectComm...
After a lot of discussion, I landed on using colons: https://github.com/dagger/dagger/pull/5060#issuecomment-1544407007
There doesn't seem to be any objections right now, but worth verifying everyone is okay with this approach before we officially release the new dagger do. If there's any concerns or other ideas, please comment on this issue with them.
There is a lot of discussion on this here but no firm conclusion: https://github.com/dagger/dagger/pull/5060
This is worth closing on before we officially release the new dagger do as it could impact the syntax of the CLI, which would be preferable to not make backwards incompatible changes to.
If I use the code given in the doc :
"""Execute a command."""
import sys
import anyio
import dagger
async def test():
async with dagger.Connection(dagger.Config(log_output=sys.stderr)) as client:
python = (
client.container()
# pull container
.from_("ubuntu:22.04")
# get Python version
.with_exec(["whoami"])
)
# execute
user = await python.stdout()
print(f"He...
I think OP wants the inverse.
The simplest is to build the container in Dagger. See Build Image from Dockerfile.
If you really need to build outside of Dagger, you can push to a registry first (even if on localhost) so that Dagger can pull from it.
Other than that, I'm not sure if we have a way to import from an OCI .tar like we do with export.
Within dagger you should also be able to spin up a registry service, use a container with the docker cli to push the image to that registry, and pull from the registry. The registry will be shutdown when no longer needed. This makes it self-contained in dagger, without requiring other tools or processes, and can be abstracted in a function.
This imports https://github.com/kjuulh/dagger-sdk under sdk/rust as an experimental SDK.
@gerhard action items (part of this PR)
- [x] Open PR with https://github.com/kjuulh/dagger-sdk/ history import
- [ ] Capture commands used for history import
- [ ] Give Kasper write permissions to
daggerrepository - [ ] Add @kjuulh to
CODEOWNERS(sdk/rustgroup)- If we like this, I propose that we do the same for other SDKs cc @shykes @samalba @aluzzardi
- [ ] Mention in SDK...
Picking up #4944 with some refactoring:
- Simplify
SecretScrubWriterwrite logic and only use[]bytefor matching and replacements. I also exploredstrings.Replacerandbytes.Replacerbut didn't find a good overall performance in this context. - Refactored
SecretScrubWriterto store secrets as[]byteduring initialization, also moved empty secret value check to initialization step (it was previously happening on everyWrite) as part ofsplitSecretsByLine. - Refactored and p...
What is the issue?
Just upgraded to the latest version of dagger 0.5.2 (golang sdk) to use the new pipeline logging features. I see the error output in the regular view, and in the "non interactive view" but I dont see stderr in the "interactive view".
Client initialization looks like this
c, err = dagger.Connect(ctx, dagger.WithLogOutput(os.Stdout), dagger.WithLogOutput(os.Stderr))
Step execution looks like this
_, err := t.plan(client, dir).Stderr(...
This PR extracts the TUI setup from dagger run and implements it for all other commands that start an engine.
It also does a few other things:
- The inline TUI is now on by default, and the
_EXPERIMENTAL_DAGGER_TUIenv has been removed. - The interactive TUI is now behind a
_EXPERIMENTAL_DAGGER_INTERACTIVE_TUIenv. - The interactive TUI has been converted to read from a Progrock event stream instead of Buildkit.
- When stdout and stderr are both a non-TTY, the Buildkit console...
@wingyplus thank you for creating this post. I have transitioned the post into an issue to ensure that it gets on the community backlog. You can track it in #5140.
Thanks everyone!
Follow-up to https://github.com/dagger/dagger/pull/5060
Python had initial support for entrypoints but because of publishing to Conda, since we didn't publish the extensions code, it was easier to just remove the entrypoint executable from the SDK (in https://github.com/dagger/dagger/pull/4399, sdk/python/pyproject.toml):
- [tool.poetry.scripts]
- # FIXME: uncomment when extensions become available
- # dagger-server-py = "dagger.server.cli:app"
- dagger-py = "dagger.cli:ap...
I think OP wants the inverse.
Indeed, that the inverse am I looking for.
Within dagger you should also be able to spin up a registry service, use a container with the docker cli to push the image to that registry, and pull from the registry.
Interesting, Do you have any resource I could look for that ?
If you have an external registry that you want to use, then yes.
But I was referring something more like creating a docker registry service within dagger, then publishing to that: https://docs.dagger.io/757394/use-service-containers#bind-services
I think I've seen that kind of thing around but not sure where. Can't find it in our docs or examples.
May I ask your use case for needing to pull the image from local docker engine to dagger?
I'm an MLOps/MLE, we (almost) always have several steps in an ML project: preprocess, training, prediction, postprocess. I've designed them so that each one can be built on a separate container, so that if one fail I can just spin up again this one and not the whole flow, so that's fairly classic up to now.
Before pushing them into a container registry, I wanted to test the end-to-end flow via dagger to check if the container are well configured. I can do this by writing some bash script t...
That seems to be the common convention:
https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file
We should also add it to the .github repository so that all our repositories will automatically show the same CODE_OF_CONDUCT.
Follow-up to:
This PR was auto-generated.
- capture latest timings with more detail
- #ask-the-team post
- remind to update the badge at the top
- leave the checkboxes on
- we will do the inverse next time, like blue/green
- capture What to do next? in all SDK changelogs
Context
Now that we have an awesome TUI merged, and soon released (yay!) I think we can finally make progress on an old topic: container output streams (stdout and stderr); pipeline output; and the difference between them.
Problem
The current situation: there is no difference. If your container prints something (anything!), the user will see it in the TUI. If the TUI prints anything about the status of a step, a possible error... It came from the stdout of a container.
In my...
Before this, commands could access the "project dir" since it was their own local working dir in the container, but they could not export anything to the host and, in the case of git:// projects, the project dir isn't even imported from the dagger do caller's host in the first place.
This adds support for dagger do callers to pass local directories to commands and support for those commands to import files from them and export files to them.
It's extremely rough both in terms ...
Follow-up to #5052 to fix ExposedPorts support.
Container.exposedPorts returns from core.Container.Ports which is only updated when calling withExposedPort and withoutExposedPort. Needed to update from ImageConfig after a from or build.
Follow up to https://github.com/dagger/dagger/pull/5071
Adds a convenience to await on an object directly:
await client.container().from_("alpine").with_exec(["true"])
This is a security research, please do not approve, thank you. whdvan
Related to https://github.com/dagger/dagger/issues/4979
Increasing the truncation limit hopefully makes it less necessary to add a flag for full output in an error.
\cc @aluzzardi
NOTE: Do not merge until publication date
This commit adds a guide for using Dagger with Azure Pipelines and Azure Container Instances
Closes DAG-1203
This commit adds sample integration code for Azure Pipelines in the CI guide
This commit explains how to use Dagger with nerdctl when invoked via lima.
Context: https://discord.com/channels/707636530424053791/1108492190369456218
Closes DAG-1580
This commit adds a recipe for selective cache invalidation to the Dagger cookbook.
Context: #general message
Closes DAG-1579
In order to properly escape strings, especially binary data on Go SDK, we now follow graphQL's spec around strings escape. Follow-ups will be implemented for other SDKs, if necessary.
This PR enables the copy of exact bytes sequences inside container:
Host -> Container bytes conservation is preserved.
The contrary is not totally true (see context https://github.com/dagger/dagger/issues/5069#issuecomment-1557493307).
Repro:
package main
import (
"context...
What is the issue?
Running the TUI with dagger run --debug exposes the secrets otherwise masked in the logs. I can observe the withSecretVariable being exposed in the listing of stages.
Log output
No response
Steps to reproduce
Run any pipeline that has a withSecretVar with dagger run --debug go run pipeline.go
SDK version
Go SDK 0.6.3
OS version
Mac OS 12.6.2
Bumps requests from 2.28.2 to 2.31.0.
Release notes
Sourced from requests's releases.
v2.31.0
2.31.0 (2023-05-22)
Security
Versions of Requests between v2.3.0 and v2.30.0 are vulnerable to potential
forwarding of Proxy-Authorization headers to destination servers when
following HTTPS redirects.
When proxies are defined with user info (https://user:pass@proxy:8080), Requests
will construct a Proxy-Authorization header that is attached to the request to
au...
Bumps webpack from 5.75.0 to 5.83.1.
Release notes
Sourced from webpack's releases.
v5.83.1
What's Changed
Fix regression in import/export normailization effecting mini-css-extract-plugin by @alexander-akait in webpack/webpack#17214
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.0...v5.83.1
v5.83.0
New Features
Normalize property access for imports and exports by @bworline in webpack/webpack#17137
Top Level Await is now enabled by...
Bumps webpack from 5.75.0 to 5.83.1.
Release notes
Sourced from webpack's releases.
v5.83.1
What's Changed
Fix regression in import/export normailization effecting mini-css-extract-plugin by @alexander-akait in webpack/webpack#17214
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.0...v5.83.1
v5.83.0
New Features
Normalize property access for imports and exports by @bworline in webpack/webpack#17137
Top Level Await is now enabled by...
Bumps webpack from 5.75.0 to 5.83.1.
Release notes
Sourced from webpack's releases.
v5.83.1
What's Changed
Fix regression in import/export normailization effecting mini-css-extract-plugin by @alexander-akait in webpack/webpack#17214
Full Changelog: https://github.com/webpack/webpack/compare/v5.83.0...v5.83.1
v5.83.0
New Features
Normalize property access for imports and exports by @bworline in webpack/webpack#17137
Top Level Await is now enabled by...
Let's figure out privately the value for CARGO_REGISTRY_TOKEN @kjuulh.
Signed-off-by: Helder Correia
This commit updates the dagger run CLI reference to include information on the new progress UI.
Closes DAG-324
This goes for other commands since they share the same base for starting a session.
This would allow wrapping multiple dagger query inside a dagger run script.sh. Otherwise you can't use setSecret with dagger query as it's an in-memory store and can't be reused in a second dagger query call.
[Context from Discord](#1110544435781050418 message)
I found during reading SDK CONTRIBUTING.md. The rust SDK doesn't set label dagger.io/sdk.name and dagger.io/sdk.version to the dagger session. This changes start by adding the SDK name label to it.
What is the issue?
The issue is that Container.Export tries to export to a new directory bin which doesn't exist when starting. It also doesn't create it automatically (bug?). Anyways, manually creating the bin dir works mkdir bin. Next docker load -i ./bin/engine.tar fails because docker load doesn't print anything. docker: 4.17.0 (99724)
Log output
❯ ./hack/dev go test -parallel 4 -v -count=1 ./...
+++ dirname ./hack/dev
++ cd ./hack/..
++ pwd
- DAGGER_SRC_ROOT=/Users...
Fixes #4700
TODO:
- [ ] Node.js
- [ ] Get exit code properly
I want to be able to run dagger run sh to run commands against an open session. In this case the command I’m running needs to be interactive so I need control over stdin, stdout and stderr.
This is also related to https://github.com/dagger/dagger/issues/5181 but I’ve wanted to turn it off for some reason multiple times when running our test suites. During tests you get a lot of failed pipelines but it’s okay because we’re making assertions on that, but it adds a lot of noise to the outpu...
Fixes https://github.com/dagger/dagger/issues/5171
Problem before was that we'd serialize all the graphql args and values for every resolver, which included the secret plaintext value.
The fix here is an attempt to give a slightly more general+reusable solution than just putting in a hardcoded if in the progrock related code to check for this fieldname+argname pair. It makes the type of the plaintext in our code to be type SecretPlaintext string and gives that a MarshalText method...
We do this just for the Go SDK so that we sync this repository with https://github.com/dagger/dagger-go-sdk, all other SDKs only trigger on tag.
Follow-up to:
This commit adds a guide for using Dagger with AWS CodeBuild and CodePipeline.
Closes DAG-983
This commit improves the Python cache miss recipe first added in https://github.com/dagger/dagger/pull/5168.
Relates to DAG-1579
This is a first stab at internal developer docs for how SDKs should support extensions and project commands.
Prioritized throwing something together here since we now have 3 devs working on 3 SDKs to support project commands. No need to immediately bring every SDK into "compliance" with the requirements here, especially since they will be rapidly changing, but hopefully this can be useful and get us off on the right foot towards keeping the SDKs consistent in terms of functionality and req...
What is the issue?
From https://github.com/wingyplus/kaogeek-discord-bot/tree/dagger/deployment
I accidentally set export to docker.io/kaogeek and found crash when running in auto provisioning mode. When running with TUI feature I see all pass at first but it hide the crash log in the first step and step export not show in the TUI. I expected to see the step is a failure at least and may show the export step failure, this could spot the problems more easier.
Log output
Auto ...
Summary
Deprecate the synchronous version of the Python SDK in favor of only the asynchronous one.
Motivation
It’s simple to move from sync to async, but the opposite isn’t true.
There’s multiple disadvantages for having these two versions:
- more complicated codebase leading to a higher maintenance burden
- adds fragmentation to the ecosystem since you can’t share
asyncfunctions in sync code - sync is rarely used from what we can see
But there’s anot...
This PR was auto-generated.
First attempt at reducing the performance impact during tests from:
Reported in:
What are you trying to do?
Weird use-case I'm sure but I have a Dagger pipeline ran using 'go run ./cmd', which prints some data to stdout, which we are writing to a file.
go run ./cmd > out.txt
When we use dagger run with this, it doesn't print anything.
Why is this important to you?
There's probably a lot of weird cases where one would want your porgram's stdout to be piped to another program or to be written to a file. We are using it to write down the file pat...
Resolves https://github.com/dagger/dagger/issues/5196
Writes the tui Stdout to os.Stdout as well as the cmdVtx.Stdout().
Before this change, a simple workflow like this:
package main
import (
"context"
"fmt"
"os"
"dagger.io/dagger"
)
func main() {
client, err := dagger.Connect(context.Background())
if err != nil {
panic(err)
}
v, err := client.Container().From("alpine").WithExec([]string{"echo", "hello"}).Stdout(context.Background())
if err != n...
no-gen was intended to not provide generated code. However it caused trouble
with no features. As such it has been removed.
Instead --no-default-features and --feature gen are setup to work as it should.
In practice since the service currently only handles one request per engine in a given pool at a time, it's possible for the 1 minute timeout to get hit under high load.
This timeout should be configurable from the service in the same way the export timeout is, which will be fixed, but bumping the timeout from 1->10 minutes will hold us over in the meantime.
This imports https://github.com/wingyplus/dagger_ex under sdk/elixir as an experimental SDK.
@gerhard action items (part of this PR)
- [x] Open PR with https://github.com/wingyplus/dagger_ex history import
- [x] Capture commands used for history import
git remote add dagger-sdk-elixir git@github.com:wingyplus/dagger_ex
git fetch dagger-sdk-elixir --no-tags
git checkout -b sdk/elixir dagger-sdk-elixir/maim
mkdir -p sdk/elixir
git ls-tree -z --name-only HEAD | xa...
This commit adds a guide for using Dagger to deploy functions as ZIP archives on AWS Lambda.
Closes DAG-1078
What are you trying to do?
I'm downloading the Dagger binaries, but Edge browser is telling me that the zip archive is untrusted.
Why is this important to you?
It would be nice if zip/binary was signed so that Windows could trust it. I'm not sure how much effort this would involve.
How are you currently working around this?
I have to override and ignore the warnings that edge gives me.
, so not viable at this time...
What is the issue?
dagger listen doesn't work anymore since starting from v0.6.0, it starts the TUI instead of executing the actual listen command
Log output
Steps to reproduce
run dagger listen
SDK version
Engine v0.6.0
OS version
N/A
There is only one version of the "tip" on the quickstart test page, but it should contain different method / function names for Go, Node.js, and Python. This PR places the tip in each tab with correct method names (as well as fixes one or two other typos on the page).
Fix minor spelling issue in Python build quickstart docs
Follow up to #5184
Instead of having to unwrap a custom error:
var e *dagger.ExecError
if errors.As(err, &e) {
return e.ExitCode
}
This allows directly casting:
if e, ok := err.(*dagger.ExecError); ok {
return e.ExitCode
}
This is Python's implementation of #4855
Example output:
❯ python examples/client-simple/say.py "hi"
/Users/helder/Projects/dagger/sdk/python/examples/client-simple/say.py:15: DeprecationWarning: Method "exec" is deprecated. Replaced by "with_exec".
.exec(["pip", "install", "cowsay"])
__
| hi |
^^
(oo)_____
(__)\ )/
||----w |
|| ||
It seems it's common in dev environments running in containers for the user runtime dir to not exist and not be creatable w/out sudo, which results in permission denied errors when the tui sets up the progrock socket.
This adds a fallback to use the home cache dir in such cases. This isn't as ideal since that dir isn't a tmpfs, but is better than failing I think. A warning is printed when this happens to let users know.
Signed-off-by: Marcos Lilljedahl
Warning
Do not merge until publication date. In draft mode to avoid accidental merge.
This commit adds a guide about building a Java/Spring application with Dagger and integrating with GitHub Actions.
Closes DAG 1202
This commit improves the cache invalidation recipe originally added in #5168 to use UUIDs. Refer https://github.com/dagger/dagger/pull/5168#discussion_r1202861315
Relates to DAG-1579
This commit corrects a statement in the quickstart regarding registry authentication support in Dagger.
Follow up to https://github.com/dagger/dagger/pull/5210
Realized as I was running something else that the LogOutput can be nil, in which case we shouldn't try to write to it
What is the issue?
Since I upgraded the Dagger client (v0.6.0) and the Go SDK (v0.7.0) the Dagger command dagger run go run ci/main.go stopped working.
Log output
progress forwarding: mkdir /run/user/1000: permission denied
Steps to reproduce
Checkout Pipeline from https://github.com/puzzle/goff.git
Run Dagger command dagger run go run ci/main.go
SDK version
Go SDK 0.7.0
OS version
Windows 11 with WSL 2 (Ubuntu)
Taking this change into its own PR, based on @sipsma comment here.
PR #5149 will only impact the logic inside the else block here.
fixes #5185
Aligning with curl for these flag names to aid in guessability.
fixes #5205
based on #5218
fixes #5183
For consistency with File.Export and Directory.Export, Container.Export should create the destination directory if it doesn't exist.
I sent out a PR to buildkit last week for a few more logs that may be useful for debugging on top of my previous update: https://github.com/moby/buildkit/pull/3905
I was wondering why the tests were taking so long as of late, noticed that the remote cache tests had a huge jump in execution time on this commit:
The only possible connection point I could see was nested session...
Summary
Refactor the Go based codegen to make it easier to support all SDKs.
Background
The Go SDK launched with a custom implementation of GraphQL introspection to generate the Dagger client based on the API schema. This is similar to the GraphQL Code Generator project, but uses Go code rather than Javascript.
Python needed to be released shortly after but the Go introspection wasn’t ready yet to be shared with other SDKs. As Python’...
Test the int64 scalar implementation on https://github.com/dagger/graphql/pull/2
Fixes root cause surfaced in https://github.com/dagger/dagger/pull/5224
Previously the RPC flow required clients to explicitly send a Close RPC call, which wouldn't be sent for services because they are kill -9'd.
Now the RPC flow uses gRPC under the hood and simply uses a graceful shutdown to wait for any in-flight RPC requests to finish, which accomplishes the same thing while also allowing RPC clients to suddenly disappear.
This recovers including stdout and stderr in exec errors for non ExitErrors, hopefully giving more visibility when tests fail like this:
#11 230.3 === NAME TestContainerExecError/truncates_output_past_a_maximum_size
#11 230.3 container_test.go:3032:
#11 230.3 Error Trace: /app/core/integration/container_test.go:3032
#11 230.3 Error: Should be in error chain:
#11 230.3 expected: %!q(**dagger.ExecError=0xc001439718)
#11 230....
This commit adds information about how to contribute recipes to the Dagger Cookbook.
fixes #5196
Alternative to #5197.
Tackles the same problem but with a different approach: if either stdout or stderr are redirected, respect the redirect rather than writing output to the TUI. I opted to not use a MultiWriter because that's how redirects normally work, but I don't feel too strongly about it; if someone has a good reason to also print the redirected content to the TUI I'm all ears.
fixes #5191
A grab bag of improvements for the interactive TUI:
- Don't exit the TUI on failure (simple regression)
- Move the command vertex back to the root of the tree
- Use vertex input ancestry to determine vertex order within a group
- In follow mode, switch to the command (i.e. root) on completion
Attempts to address https://github.com/airbytehq/airbyte/issues/26863 though the fixes here are purely theoretical; there's no smoking gun for where the concurrent write actually happened.
Two areas fixed: overrideProgress and Container.Clone.
overrideProgress
This function gets called when starting a service, and previously was directly mutating the Metadata map that's present in container's underlying *pb.Definition because the map is [carried directly over](https://...
Since we can't trust the XDG runtime dir to be writable due to arguably widespread OS misconfiguration, let's just use os.TempDir. Surely it's always writable, right?
The previous fix was fine, just trying to aggressively simplify this so we don't need warnings/fallbacks/etc.
Sorry, it's still not clear. Can you use dagger to build the dockerfile, spin up a registry (local to dagger), push the image there, do your tests and if all succeeds then push to the shared container registry?
Or is it not possible to use dagger up to the point where an image is built in the local docker engine?
Summary
Similarly to the Load Container Images into a Local Docker Engine guide, add a “Import Container Images from a Local Docker Engine”.
Code sample
Build a local image:
❯ docker build -t my-local-image - <<EOF
FROM alpine
ENV HELLO=Docker
EOF
Example in Python:
import anyio
import dagger
IMAGE_NAME = "my-local-image"
async d...
@MathKlim sorry, forgot about this. You can import an image from the local docker engine using Container.import_:
Here's an example:
import anyio
import dagger
async def main():
async with dagger.Connection() as client:
user = await (
client.container()
.with_(docker_image(
"vorphus/test:latest",
cli...
We can use (*bytes.Buffer).WriteString to avoid unnecessary byte/string conversion calls and reduce allocations.
In latest PR #4152, @helderco pointed out that I forgot to update the go.sum with go mod tidy. I merged it before he had the time to add a commit. This fixes it 🙏
Follow up to #5184
Not sure when proc.Wait would succeed without returning a *pb.ExitError, but since it's only used for the exit code and at this point we have the stdout and stderr, they may be useful to debug the error.
What is the issue?
Discord user asking how to use Dagger behind a corporate proxy #general message
I've tested the DOCKER_HOST approach myself and it seems to work, currently waiting for the user to provide feedback since it's hard to reproduce in my local environment.
What is the issue?
User in Discord asked about running containers with elevated capabilities.
https://discord.com/channels/707636530424053791/1113785019819905086
Just realized that we don't have any docs about the insecureRootCapabilities option.
What is the issue?
Question from a user in Discord https://discord.com/channels/707636530424053791/1113785258731638784 on how to access secrets in Dockerfiles while using the secrets argument in the Build operation.
What is the issue?
From @ringods
you might want to highlight that the Dagger SDK will do some magic behind the scenes to ensure you have a Dagger Engine running in each of the CI integrations here: https://docs.dagger.io/7442989/cookbook#integrations
I was puzzled that I didn't need to install dagger as part of e.g. my Github Actions workflow.
Found from
https://github.com/dagger/dagger/actions/runs/5147441125. The uses must have ./ to point to local action.
What happened? What did you expect to happen?
We need to use a locally built image as container for running pipeline, I did not find anything in the documentation on how to achieve this.
Actually, passing a locally built image to client.container().from_() lead to failure with the following error:
dagger.exceptions.QueryError: docker.io/: not found
Thanks,
Hi,
I bumped into the same issue, since our testing CI stages include having local images built by some outer processes.
I cannot figure what prevent dagger to use the local image as the FROM directive from any Dockerfile since it based on the same build engine.
Imho, using an tarball image is more or less an totally inefficient anti-pattern since it require to serialize/deserialize data from and to the same engine.
Bumps github.com/prometheus/procfs from 0.9.0 to 0.10.1.
Release notes
Sourced from github.com/prometheus/procfs's releases.
v0.10.1
What's Changed
fs: Statfs_t{} doesn't have a Type field on Windows (#528) by @SuperQ in prometheus/procfs#529
Full Changelog: https://github.com/prometheus/procfs/compare/v0.10.0...v0.10.1
v0.10.0
What's Changed
Synchronize common files from prometheus/prometheus by @prombot in prometheus/procfs#484
Bump golang.org/...
Bumps github.com/charmbracelet/bubbletea from 0.23.2 to 0.24.1.
Release notes
Sourced from github.com/charmbracelet/bubbletea's releases.
v0.24.1
You can pipe again
This point release fixes a regression introduced in v0.24.0 in which keyboard and mouse input would be lost when piping and redirecting into a program with default inputs. Special thanks to @pomdtr for…piping up about the regression.
fix: auto-open a TTY when stdin is not a TTY (re...
What happened? What did you expect to happen?
Using private registry with private CA (stored in /etc/docker/certs.d, we store the ip resolution in /etc/hosts.
It appears that Dagger do not take into account the /etc/hosts and fail to resolve the registry fqdn:
dagger.exceptions.QueryError: failed to do request: Head "...": dial tcp: lookup on 10.87.0.1:53: no such host
Is there a way to tell Dagger to resolve the registry using the /etc/hosts and use the certificats...
Bumps golang.org/x/crypto from 0.8.0 to 0.9.0.
Commits
a4e9841 go.mod: update golang.org/x dependencies
3ef8056 ssh/test: enable on solaris
a8cc953 ssh: skip unsupported tests on wasip1
7d6d3f5 ssh/test: skip TestValidTerminalMode on non-Bourne shells
1faeef9 cryptobyte: reject Object Identifiers with leading 0x80
See full diff in compare view
[
Note: Version bump only for package @typescript-eslint/typescript-eslint
v5.59.7
5.59.7 (2023-05-22)
Note: Version bump only for package @typescript-eslint/typescript-eslint
v5.59.6
5.59.6 (2023-05-15)
Note: Version bump only for package @typescript-eslint/ty...
Bumps graphql-request from 6.0.0 to 6.1.0.
Release notes
Sourced from graphql-request's releases.
6.1.0
Features
71af6ab restore main field of package.json for environments that do not support exports field (#526)
81c8bb2 export middleware function types
Improvements
5fc0062 improve: fix autocomplete for request function
b98d71b refactor: group exports
Chores
6500e69 regenerate TOC (#531)
ae1d8af update pnpm to v8.5.1 (#527)
da47f4e upda...
Bumps eslint from 8.39.0 to 8.41.0.
Release notes
Sourced from eslint's releases.
v8.41.0
Features
880a431 feat: change default ignore pattern to **/node_modules/ in flat config (#17184) (Milos Djermanovic)
8bf5505 feat: expose shouldUseFlatConfig (#17169) (Connor Prussin)
Bug Fixes
4f5440d fix: incorrect warning message for ignored dotfiles (#17196) (Milos Djermanovic)
94da96c fix: unify LintMessage type (#17076) (Brandon Mills)
0c415cd fix: validate ...
Bumps rich from 13.3.5 to 13.4.1.
Release notes
Sourced from rich's releases.
Hot fix for typing extension issue
[13.4.1] - 2023-06-31
Fixed
Fixed typing extensions import in markdown Textualize/rich#2979
Added tables to Markdown
[13.4.0] - 2023-06-31
Added
Added support for tables in Markdown Textualize/rich#2977
Changelog
Sourced from rich's changelog.
[13.4.1] - 2023-06-31
Fixed
Fixed typing extensions import in markdown Textualize/rich#297...
Bumps anyio from 3.6.2 to 3.7.0.
Changelog
Sourced from anyio's changelog.
Version history
This library adheres to Semantic Versioning 2.0 <http://semver.org/>_.
3.7.0
Dropped support for Python 3.6
Improved type annotations:
Several functions and methods that were previously annotated as accepting
Coroutine[Any, Any, Any] as the return type of the callable have been amended to
accept Awaitable[Any] instead, to allow a slightly broader set o...
Bumps github.com/magefile/mage from 1.14.0 to 1.15.0.
Release notes
Sourced from github.com/magefile/mage's releases.
v1.15.0
Changelog
9e91a03 Update CI (#466)
9199872 fix erroneous docstring of sh.Exec() (#452)
02bde0b Update jQuery to 3.5.0 (#458)
1b8774a -d dir contains magefiles stop with "No .go files marked with the mage build tag..." (#447) (#448)
a920604 mage: cancel context on SIGINT (#313)
Commits
9e91a03 Update CI (#466)
919987...
Bumps typescript from 5.0.4 to 5.1.3.
Release notes
Sourced from typescript's releases.
TypeScript 5.1.3
For release notes, check out the release announcement.
For the complete list of fixed issues, check out the
fixed issues query for Typescript 5.1.0 (Beta).
fixed issues query for Typescript 5.1.1 (RC).
fixed issues query for Typescript 5.1.3 (Stable).
Downloads are available on:
NuGet package
TypeScript 5.1 RC
For release notes, check out th...