#github-feed
1 messages ยท Page 16 of 1
I realized that the engine-wide dagql cache theoretically may have made buildkit's "edge merge" feature redundant.
This would be great because edge merging has proven to be an enormous source of weird ephemeral bugs that are almost impossible to understand or fix
Seeing what happens in CI if it's disabled ([commit in my buildkit fork](https://github.com/sipsma/b...
What is the issue?
Just saw during upgrade Dagger in my team:
Dagger version
dagger v0.18.3
Steps to reproduce
No response
Log output
No response
See https://dagger.cloud/dagger/traces/3ff0b42e50792433f461b9f9c24d5b8b.
We seem to flakily get cache hits in container resolution:
stderr: Setup tracing at https://dagger.cloud/traces/setup. To hide set DAGGER_NO_NAG=1
assertion failed:
--- expected
+++ actual
@@ -17,5 +17,5 @@
โ .failLog: Void X.Xs
! process "sh -c echo im doing a lot of work; echo and then failing; exit 1" did not complete successfully: exit code: 1
-โ โ container: Container! X.Xs
+โ $ container: Container! X.Xs C...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.
Updates astral-sh/ruff from 0.11.2@sha256:5de67d7c9f5fcb98109623ebbc9b41e20f4e6f80ca61442efd0ff2d469e151fe to sha256:f2491968bb001af02259a629f7edcf26bc4811a7a43c51ae18270087035478ac
Changelog
Sourced from as...
Since we added this new directive which is the right way to convey this metadata, we should mark all the existing experimental methods like this as well.
At least that way we're consistent!
Changes to elixir-sdk module:
- Bump Elixir to 0.18.3 with Erlang/OTP 27.3.3.
- Run
dagger develop.
Changes to elixir-sdk-dev module:
- Bump Elixir to 0.18.3 with Erlang/OTP 27.3.3
- Reformat code in
elixir-sdk-devmodule. - Run
dagger develop.
Changes to elixir-sdk-dev module:
- Introduce the
initfunction that accepts the SDK source directory and the container. - Convert all functions to accept self object and uses it.
- Add
.formatter.exsfile to add formatting option.
Changes to dagger ElixirSDK:
- Modify to uses new
elixir-sdk-devmodule. - Drop base method since it's moved to
elixir-sdk-devmodule. - Drop Elixir version matrix. It doesn't uses for a long time.
- Remove unused constant.
Started seeing this quite a bit in the last week or so, just random failures when starting execs, e.g.
- https://v3.dagger.cloud/dagger/traces/9e8c3ce74d15cc148d41c9ee716425d3?span=aab79b62059f20cc&logs#aab79b62059f20cc:L354
- https://v3.dagger.cloud/dagger/traces/e690b491d0cb980b740550a2eb605842?span=ddc14a343aa8099c&logs#ddc14a343aa8099c:L1242
Errors look like
create network namespace: CNI setup error: plugin type="dnsname" failed (add): route ip+net: no such network interface
---...
This is another avenue to seeing a broken empty trace: a span just has to link to a span that doesn't exist in this trace - possibly in another trace, with engine wide caching.
Bumps the sdk-typescript group with 11 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.1 |
1.13.3 |
| @opentelemetry/semantic-conventions | 1.30.0 |
1.32.0 |
| typescript | 5.8.2 |
5.8.3 |
| @types/node | `22.13.13... |
Signed-off-by: Marcos Lilljedahl
every now and then someone sees this and gets confused because they explicitly disabled OTel on the outside
What is the issue?
discovered in pursuit of https://github.com/dagger/dagger/pull/10118, modules can be constructed to shadow core APIs like "git", at which point their functions can override core module functions.
their types, however, cannot do this same shadowing. that will error like this: ```Error: input: failed to get schema: failed to get schema for module "git-repository": type "GitRepository" is already defined by module "daggercore"
I would expect module constructors to h...
This adds two configuration variables to the Java SDK to help debugging:
mavenErrors: adds the-eflag to any maven commands to print errorsmavenDebugLogging: adds the-Xflag to any maven commands to enable full debug logging
Thosw two variables can be added to the config section of the dagger.json file:
{
"name": "foo",
"engineVersion": "v0.18.4",
"sdk": {
"source": "java",
"config": {
"mavenErrors": false,
"mavenDebugLogg...
...and deprecate the standalone WithAuthToken and WithAuthHeader methods.
Originally, this started as just an attempt to configure HTTP and SSH authentication similarly - we wanted to standardize on doing it all in the top-level constructor, or all using With helpers. I have a preference for keeping at the top-level, so that a user can't mistakenly do Directory.AsGit().WithAuthToken(), which wouldn't be used. However, as I refactored the git implementation, I realized there's...
And ensure that GitRepository.tags behaves consistently, realized it wasn't when adding tests.
Currently the TUI is not bubbling up errors when loading dependent modules, because we have a bunch of wrapping spans that neglect to set their error state when their wrapped code errors.
Went around and looked for defer span.End() since that's the calling card of this mistake, and added a telemetry test to make sure it doesn't regress.
๐ฅ Fix older modules using requirements.lock, not vendoring the client library appropriately. This created a breaking change.
Fix typo that prevented the codegen executable to be bundled correctly. It's not a problem because it's a new thing, but it also means no one is taking advantage of it.
Also decided to revert the pinning based on engine version. Need more time to flush it and test it. Shouldn't cause any issue for users because the vendoring ignores the version constraint.
Fi...
fixes https://github.com/dagger/dagger/issues/10245
extracted from #10245.
this PR adds an error to ModuleObject.installConstructor that prevents users from shadowing core api functions. see the issue linked above for details.
- only run when relevant files change (currently running on every merge :money_with_wings:)
- stop testing
gpt-4o(4.1 effectively replaces it, not worth 2x cost)
v0.18.4 has a bug w/ secrets where:
- Session A calls a function that dynamically creates a secret at runtime w/
setSecretand provides that to a git repo viawithAuthToken - Session A is still running, meanwhile Session B calls a different function (or same function w/ different args) that makes the same call to the same git repo w/ an auth token
- The functions return a container that has the git repo mounted (or otherwise returns some value that has the git repo in the DAG)
- S...
This commit
- replaces usage of "pipeline" with "workflow" in some pages
-
- excludes CI-specific pages, which continue to use "pipeline" or "CI pipeline" as this is the correct and more precise terminology for the CI context
- updates the title of https://docs.dagger.io/features/programmable-pipelines from "Programmable Pipelines" to "Programmable Workflows" and the URL to https://docs.dagger.io/features/programmability
-
- uses one word to match other feature page URLs and removes the...
The module digest mixed into the cache key for secrets created in function calls was not stable (per-client), this fixes it to be the stable module source digest. This ensures that secrets created in function calls don't invalidate cache of anything they are included in every call.
This commit
- adds a new React video player component
- updates format of all screen recording .gifs to .webm
- updates all inline references to use video player with new .webm files
- adds Posthog event tracking for video clicks
What are you trying to do?
Currently we are using dagger for our build workflow.
One of the steps in this flow is that we are doing a docker build using the context:
baseContainer.build(context);
What we noticed is that there is a bit of a difference between the error output that we expect to see in local docker builds and dagger builds.
E.g.: forcing a build failure by making an instruction in the Dockerfile cause a failure
docker
=> [5/8] RUN apt-get install -y git gc...
De-duping currently running nested execs, such as module function calls, can break when:
- Client A starts the function call
- Client B makes the same call, gets deduped with the existing one
- Client A cancels the call (i.e. ctrl-C's, CI job shuts down for whatever reason, etc.)
- The call continues running, but now is trying to talk back to a session that doesn't exist anymore when dagger APIs are invoked
Errors vary, but example from the new integ test that repros this:
...
This was displaying using the dark style when in light mode, which was giving unreadable results.
Before:
After:
I noticed @jedevc manually applying labels to docs PRs and was wondering if this could be a solution.
Following #10094, this PR updates the documentation to explain the new bundling system for Typescript.
And also how to migrate from bundle to local or local to bundle.
Woops, #9980 had some issues.
- I have suddenly remembered why this was important: https://github.com/dagger/dagger/pull/9980#discussion_r2039628759. This needs to be lifted up, or the dagql cache key becomes permanently tainted with the client/session ids we used to get here. A ref is "frozen" in time, and so gets detached from these - this was causing us to not cache certain operations.
- The custom op cache key calculation had a slight bug - we were accidentally including IDs *twic...
handles better the case where the client gets an error when sending
telemetry. If the --debug flag is supplied, all errors are displayed as
they were before this change
Signed-off-by: Marcos Lilljedahl
What happened? What did you expect to happen?
I was trying to create a GitHub release and upload compiled binary as an asset but I realized that, I had to read that file not a string but "buffer" since it is in binary format. But as I can see File object doesn't have this functionality. I can read the content as string but not Buffer.
// .....
const octokit = new Octokit({ auth: await token.plaintext() });
const releaseInfo = await octokit.repos.createRelease...
When installing the official Dagger helm chart following the docs here https://docs.dagger.io/ci/integrations/kubernetes/#example, the resulting volume paths seem to contain the dagger word a bit too much:
serviceAccountName: default
terminationGracePeriodSeconds: 300
volumes:
- hostPath:
path: /var/lib/dagger-dagger-dagger-helm
type: ""
name: varlibdagger
- hostPath:
path: /run/dagger-dagger-dagger...
What is the issue?
Dagger Cloud web UI fails to load, with this error:
CompileError: WebAssembly.Module doesn't parse at byte 0: module doesn't start with '\Oasm'
Dagger version
dagger v0.18.5 (docker-image://registry.dagger.io/engine:v0.18.5) darwin/arm64
Steps to reproduce
dagger -m github.com/dagger/dagger/version(module may not be relevant)- Press
w - Look at browser
Log output
No response
What is the issue?
Dagger shell behaviour with files (and directories?) is not the same. Seems like a bug as relative is working on WSL, but its not possible to make it work on Windows, because the directory system is different, so you cannot relative path to the file, if the module/shell is on a separate drive e.g D:\ compared to a file being passed to it.
https://github.com/pjmagee/daggerverse/blob/main/paradox-clausewitz-save/main.go
Dagger version
dagger v0.18.5 (docker-imag...
What are you trying to do?
hi
Why is this important to you?
No response
How are you currently working around this?
No response
When experimental directive is found on the API, render it into the string doc.
Demo:
ref: #agents message
When the engine fails to start using the docker driver, it currently requires some manual docker logs troubleshooting to understand what's happening. We can simplify troubleshooting if we fetch the logs ourselves and print them through stdout.
Here's an example of what users generally get:
connection error: desc = "error reading server preface: command [docker exec -i dagger-engine-v0.18.5 ...
[dagger/dagger] Pull request opened: #10283 chore(deps): bump the docs group in /docs with 4 updates
Bumps the docs group in /docs with 4 updates: docusaurus-plugin-typedoc, posthog-js, sass and typedoc-plugin-markdown.
Updates docusaurus-plugin-typedoc from 1.3.0 to 1.4.0
Changelog
Sourced from docusaurus-plugin...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 1 update in the /sdk/python/runtime directory: astral-sh/uv.
Updates astral-sh/ruff from 0.11.2 to 0.11.7
Release notes
Sourced from astral-sh/ruff's releases.
0.11.7
Release Notes
Preview features
[airflow] Apply auto fixes to cases where the names have changed in Airflow 3 (A...
Bumps the sdk-typescript group with 12 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.1 |
1.13.3 |
| @opentelemetry/semantic-conventions | 1.30.0 |
1.32.0 |
| graphql | 16.10.0 |
16.11.0 |
| typescript | 5.8.2 |
5.8.3 |
| [@types/node](https:/... |
This checks wasn't actually working as desired - we weren't actually checking that the commit was local (we need ^{commit} and --verify for that), but the functionality wasn't entirely broken, because we were missing the trailing whitespace (so skipFetch was never true, so we lost a little optimization here).
While we're here, we need to make this command non-fatal - a failure here doesn't actually need to be marked as a failure in OTEL, so we can skip past it (as noted by @shykes in...
What is the issue?
I have a function that takes a secret as input. In CI, the function is invoked simultaneously on the same engine, but with different secret values.
The secrets come from an environment variable that always has the same name.
I can then see that the function call is cached based on the fact that the environment variable has the same name, even though the engine can see that the value is different.
This is a regression, this behavior was introduced in 0.18.3.
D...
Bumps the engine group with 17 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.2.1 |
0.3.0 |
| github.com/99designs/gqlgen | 0.17.70 |
0.17.72 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.17.0 |
| [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sd... |
This fixes a failing test on main, see the first failure on https://github.com/dagger/dagger/commit/9fc751cd479a784828f7ea7a449bb2927997ff13: https://v3.dagger.cloud/dagger/traces/ec1bf6d77b4fdcf9253779adf8b6d5fa?showHidden=5b532095ad9f9342#726a64406e7856a2:L81
--- FAIL: TestRepoRootForImportPath (1.56s)
vcs_test.go:300: RepoRootForImportPath("git.sr.ht/~jacqueline/tangara-fw/lib"): unrecognized import path "git.sr.ht/~jacqueline/tangara-fw/lib"
SourceHut looks to have ...
Fixes https://github.com/dagger/dagger/issues/7388.
The main blocker for this was pointed out by @helderco:
We already have a
dag.Filebut it's deprecated because it was used to load aFilefrom aFileID
This method no longer exists - it was removed about a year ago in https://github.com/dagger/dagger/pull/6934. So we can use this name now.
- Improves the readability of the text on the features pages.
- Also made a change to the video player to make it look uniform and fix some styling
Bumps the engine group with 16 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.2.1 |
0.3.0 |
| github.com/99designs/gqlgen | 0.17.70 |
0.17.72 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.17.0 |
| [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sd... |
Update ts dev module to bundle mode
Fixes https://github.com/dagger/dagger/actions/runs/14728688314/job/41338004413 issue
This was introduced accidentally in https://github.com/dagger/dagger/pull/10286. See here
Error Trace: /app/core/integration/suite_test.go:335
/app/core/integration/cross_session_test.go:487
...
What is the issue?
I have arguments missing from the arguments list in dagger call --help. The arguments show properly in dagger shell .help .
Dagger version
0.18.5
Steps to reproduce
Module defined here: https://github.com/kpenfound/dagger-programmer/blob/main/src/dagger_programmer/main.py
Run:
dagger -m github.com/kpenfound/dagger-programmer call translate --help
The arguments list is missing required arg "mod":
ARGUMENTS
--language string ...
I noticed during a demo that if a module source is . and implements functions and also generate a client, the sdk/index.ts file will not expose the generated client in the sdk folder because it doesn't expect it to be there.
I changes the logic in the runtime to handle this specific edge case and updated integrations tests.
This behaviour could be handled in the codegen binary ideally but it's a quick fixes for now.
What is the issue?
My typescript module does not have it's dependencies generated in it's client
Dagger version
0.18.5
Steps to reproduce
When I run my typescript module, it fails on dag. is not a function.
Running dagger develop, I do not see any references to my dependency in the generated client. Switching back to 0.18.4 and running develop again, I can see the properly generated client
Log output
No response
Currently Dagger routes LLM requests to the appropriate client based on model names https://github.com/dagger/dagger/blob/main/core/llm.go#L285
This is not scalable to hosted providers (azure, aws bedrock, google vertex) or proxies (litellm, gpustack, ...) because you generally have a single OpenAI compatible service hosting all of your models.
Dagger should have an explicit provider option that overrides the automatic routing to support these services
We have seen a speed-up after the initial switch https://github.com/dagger/dagger/pull/9887, and a slow-down after we went back https://github.com/dagger/dagger/pull/10086.
If we still see a speed-up after this switch, we are likely to want to stick with this for more than a few weeks.
As discussed with @sipsma in the last sync.
Frequently since Dagger v0.18.4, using dag.LLM with gemini-2.0-flash will frequently result in FinishReason(10). This is MALFORMED_FUNCTION_CALL
From @vito : my theory is that it's when it calls a tool before selecting it, not sure what triggers it to do that more often
This is part 2 of the Agent quickstart which adds an agent to a daggerized repo. It uses the daggerized repo from the CI quickstart
Fixes https://github.com/dagger/dagger/issues/10298 (sort of...[^1])
This fixes a regression introduced in https://github.com/dagger/dagger/pull/7417 where conflicting flags no longer throw an error in dagger call.
[^1]: Fixes the missing error to clear confusion, the underlying problem of supporting a conflicting flag is in another duplicate issue.
TODO
- missing tests
What is the issue?
This is the error I got:
2025/04/30 11:22:36 returned error 502: {"data":null,"errors":[{"message":"http do: Post \"http://dagger/query\": command [docker exec -i dagger-engine-v0.18.5 buildctl dial-stdio] has exited with exit status 137, make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr="}]}
exit status 1
I initially assumed this is the same issue as #3337 but that one has a merged PR from 3 years back so not sure ...
Append the module name to the maven cache volume.
We are seeing more and more troubles with the Java SDK and corruption of some files in the maven local repository (cached). This looks like to happen because of concurrent access to the maven repository... that are not supported.
Error looks like:
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-install-plugin:3.1.2:install
(default-install) on project dagger-sdk-parent: Failed to install
metadata io.dagg...
We don't have any secretprovider tests - which feels scary :scream:
So, this PR adds them:
- The basic providers,
env/file/cmdare easy - The
vaulttest was originally written by @kpenfound in [62fcd099093caf0645fe74f189b4bde6825281a5..8081eaf5f4e38f3fb6a2dcc2db24965d896fd658#diff-ef6449f08e](https://github.com/dagger/dagger/compare/62fcd099093caf0645fe74f189b4bde6825281a5..8081eaf5f4e38f3fb6a2dcc2db24965d896fd658#diff-ef6449f08e3ecb813cac28681c34d89c5863e191d44a45d9502ea09653...
Add function implementation checking in the engine so it is aware of which function the SDK implements.
Move sdk related code into its own package except the interface definition bececause it's used in core.
Improve sdk documentation and code readability.
Make requiredClientGenerationFiles optional.
Put the Golang sdk implementation into its own file. Put some resolving logic from schema/module_source.go into core/module_source.go to avoid circular dependency with the new sdk packag...
I noticed this error message:
86 : โ โ ! failed to call module "node" to get functions: call constructor: process "npm ci" did not complete successfully: exit code: 1
In my previous PR I updated the module dev but not node, I think that's why it's still failing.
By moving to the bundle mode, we don't have to install the SDK dependencies anymore so npm ci should work.
WIP, just sending out to see if there's any noticeable impact from using argon2, which may be desirable as a default cache-key if we switch to using plaintexts to derive cache keys
What are you trying to do?
No response
Why is this important to you?
No response
How are you currently working around this?
No response
TODO:
- [x] Lift all HTTP code to dagger
- [x] Support ETags
- [ ] Add new tests for exact caching behavior we want - we have no tests for this
- [ ] Add support for HTTP authentication (would rather add this now, since it might affect structure of caching)
- [ ] Tidy up code
TODOs- Move ref creation mounting entirely out of dagop (since we can do this outside of dagop :grin:)
As described on https://github.com/moby/buildkit/blob/master/docs/build-repro.md, buildkit supports the reproducible-builds variable SOURCE_DATE_EPOCH and a rewrite-timestamp build-arg that uses the epoch as timestamp for actions on the filesystem.
This PR follows the idea outlined in #7721 by:
- Reading SOURCE_DATE_EPOCH at the client and propagate it as ClientMetadata
- Propagate SOURCE_DATE_EPOCH from ClientMetadata to ExecutionMetadata
- Propagate the env SOURCE_DATE_EPOCH to nested...
bumping k3s module to fix helm check CI workflow
Signed-off-by: Marcos Lilljedahl
Problem
Given the following example:
package main
import (
"context"
"time"
)
type CacheErrorsTest struct{}
func (m *CacheErrorsTest) Test(ctx context.Context) {
c := dag.Container().From("alpine").
WithMountedCache("/lala", dag.CacheVolume("cache")).
WithEnvVariable("BUST", time.Now().String()).
WithExec([]string{"rm", "-rf", "/lala/foo.txt"})
_, err := c.WithExec([]string{"ls", "/lala/foo.txt"}).Sync(ctx)
if err == nil {
panic("should error")
}
c.WithExec([]s...
Bumps the engine group with 18 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.2.1 |
0.3.0 |
| github.com/99designs/gqlgen | 0.17.70 |
0.17.73 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.17.2 |
| [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sd... |
[dagger/dagger] Pull request opened: #10322 chore(deps): bump the docs group in /docs with 2 updates
Bumps the docs group in /docs with 2 updates: posthog-js and typedoc.
Updates posthog-js from 1.236.7 to 1.239.1
Release notes
Sourced from posthog-js's releases.
1.239.1 - 2025-05-02
fix: dont mangle some surveys properties (#1934)
docs: use history_change option on SPA playgrounds (#1929)
1.239.0 - 2025-05-01
feat: Avoid tracking pageview from prerenders (#1910)
1.238.0 - 2025-05-01
feat: allow ANY ...
Bumps the sdk-typescript group with 14 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.1 |
1.13.3 |
| @opentelemetry/semantic-conventions | 1.30.0 |
1.32.0 |
| graphql | 16.10.0 |
16.11.0 |
| typescript | 5.8.2 |
5.8.3 |
| [@types/node](https:/... |
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.
Updates astral-sh/ruff from 0.11.2 to 0.11.8
Release notes
Sourced from astral-sh/ruff's releases.
0.11.8
Release Notes
Preview features
[airflow] Apply auto fixes to cases where the names have changed in ...
What happened? What did you expect to happen?
I have a project that installs dependencies from a private registry.
Auth credentials for this registry are Dagger secrets:
@function
async def build(
self,
source: Annotated[Directory, DefaultPath("/")],
python_registry_username: Secret,
python_registry_password: Secret,
) -> Container:
return dag.container().build(
source,
secrets=[
dag.s...
Update __schema to take as argument optional
types thay may be hidden from the API.
Update schemIntrospectionJSONFile to hide Host when generating for module.
Add host call tests in client generator.
These have proven themselves up to 30-40% faster. A few of these jobs can benefit from caching, so let's see how well they work out in practice.
| Job Name | Before (P90 2w) | After (single run) |
|---|---|---|
| X | 1016s (16m 56s) | 818s (13m 38s) |
| Y | 940s (15m 40s) | 588s (9m 48s) |
| Z | 768s (12m 48s) | 459s (7m 39s) |
What is the issue?
When a LLM calls a function that returns a string, the string is truncated to 80,000 characters. The LLM is made aware of the truncation, but it cannot disable or configure it, and there is no pagination.
Dagger version
dagger v0.18.5 (docker-image://registry.dagger.io/engine:v0.18.5) darwin/arm64
Steps to reproduce
No response
Log output
No response
What is the issue?
While the Dagger shell works with modules/functions requiring a single container, it fails to parse when a list of containers is passed to a Dagger function. I.e. the container publish function using the --platform-variants flag.
Dagger version
v0.18.5
Steps to reproduce
$ dagger shell -M
# arm64=$(container --platform linux/arm64 | from alpine) 0.0s
# amd64=$(container --platform linux/amd64 | from alpine) 0.0s
Attempting to pass the containe...
What is the issue?
When including annotations on an image using WithAnnotation, I've found that annotations do not appear when publishing a multiarch image. From what I can tell annotations are supported by the image index spec. Not sure if would this be considered a Dagger or Buildkit issue?
Dagger version
v0.18.5
Steps to reproduce
func (m Example) PublishTest(ctx context.Context) (string, erro...
fixes https://github.com/dagger/dagger/issues/10328
in the future we'll probably want to add this back in and make it configurable, but we can wait for user requirements to clarify in the absence of a default truncation, and maybe introduce .contents(line-number ranges) or native grep apis in the mean time.
Fixes https://github.com/dagger/dagger/issues/10306
Was hitting a nil LLB definition without handling it, easy fix
Currently the page https://docs.dagger.io/examples/#cicd-examples links to dagger/hello-dagger as a CI/CD example, however that is not a CI/CD example, it's just the starting point of the CI quickstart.
This section should link to actual CI/CD examples, such as:
- dagger/dagger
- kpenfound/greetings-api
- other daggerized projects
This was causing flakiness in tests when the detector went off (e.g. https://v3.dagger.cloud/dagger/traces/1df689be91b6f1d837af53ff3cd62b41?span=4acfd90e58c43f70&logs)
What are you trying to do?
Environments are a way to define a specific set of functions an LLM will be able to see as tools. This allows to reduce the number of tools the LLM will see or to provide specific tools, both in order to improve the ability to complete a task.
[!NOTE]
This is extracted from #8030 but focusing only the LLM/Env/type awareness and not on the self calling aspects.
It's currently possible to use a primitive type a...
TODO:
- [ ] rebase on https://github.com/dagger/dagger/pull/10327 once that's merged, update any version strings if needed
Got user report of network timeout errors when trying to use git modules on v0.18.6 (worked on v0.18.5) behind a corp network that requires https proxy settings. [Discord link](#daggernauts message).
Haven't confirmed but suspecting the problem may be from https://github.com/dagger/dagger/pull/10248 on this line
- I *t...
This test started flaking in one PR. Didn't repro but looking at it seems like it could be explained by the cache getting pruned while the test is running (which would cause the assertions of cache re-use to fail).
The update uses nested execs to run commands, which ensures that the session stays open for the duration of the test case assertions and thus should prevent the cache from getting pruned until the test is done.
This makes debugging MCP in certain environments easier by providing a way to log the dagger cli's stdin/stdout/stderr.
currently "explicit no cache" fails, it hits the cache just like the other 2 cases
Follow-up for https://github.com/dagger/dagger/pull/10311 to explain how secrets impact cache (now, as of v0.18.6) and how the cache behavior can be customized.
Let me know if it's comprehensible as is or if it would benefit from more examples/explanation.
The ElixirSdkDev set the working directory /sdk while the t.Dagger.Source is /sdk/elixir cause a publish function write to incorrect place.
The current runners are giving us results around 4 minutes for the first job. Those specific runners are using nested virt atop of Intel SPR or EMR.
We're now switching to using nested virt atop of AMD CPUs, as we're getting results closer to 3m30s with those, instead of the Intel ones.
Let's switch the runners for now to use the AMD ones, while we keep working on shaving the time down more and more with different approaches. :-).
cc @gerhard
Take 2! go 1.24.3 has the fix for SIGSEGV in vgetrandomPutState.
Fixes https://github.com/dagger/dagger/issues/9759.
Related:
- first take to 1.24.0: https://github.com/dagger/dagger/pull/9673
- reversion back to 1.23: https://github.com/dagger/dagger/pull/9766
What happened? What did you expect to happen?
I have following module.
type Platform struct {
terraformVersion string
awsAccessKeyID *dagger.Secret
awsSecretAccessKey *dagger.Secret
awsSessionToken *dagger.Secret
}
func New(
// the version of the Terraform image to use
// +default="1.5.7"
terraformVersion string,
// the AWS access key ID
awsAccessKeyID *dagger.Secret,
// the AWS secret access key
awsSecretAccessKey *dagger.Secr...
Problem
with-directory is inconsistent with similar commands.
Most of them require:
- The
pathto copy to. - The
sourceto copy from.
$ dagger core container with-file --help
ARGUMENTS
--path string Location of the copied file (e.g., "/tmp/file.txt"). [required]
--source File Identifier of the file to copy. [required]
$ dagger core container with-mounted-file --help
ARGUMENTS
--path string Location of the mounted file (e.g., "/tmp/fi...
Bumps the engine group with 20 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.2.1 |
0.3.0 |
| github.com/99designs/gqlgen | 0.17.70 |
0.17.73 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.17.2 |
| [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sd... |
What is the issue?
To improve performance for long-running tests, I want to export cache volumes into container images, store them in a registry, and restore them on the next run. While writing these functions, I noticed strange behavior with cache volumes. I already know that changes to cache volume contents don't invalidate the engine's cache, and the current solution is to invalidate the cache using a random variable. However, I dis...
The result of running modernize:
$ go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -test -fix ./...
With a few manual tidy-ups :tada:
This moves an important, and often overlooked, note on making struct fields public in Go and Typescript to before the code example - not after.
This helps clarify the docs to resolve https://github.com/dagger/dagger/issues/10347
Bumps the engine group with 21 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.2.1 |
0.3.0 |
| github.com/99designs/gqlgen | 0.17.70 |
0.17.73 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.17.2 |
| [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sd... |
Not sure how to phrase the title ๐
Starting from 0.18.6, if you have LLM credentials in your environment pointing to 1password refs, like:
GEMINI_API_KEY=op://Employee/GEMINI_API_KEY/credential
Dagger will authenticate to pull those credentials as soon as shell is started. This is disruptive because I don't always need to authenticate the LLM client in every shell session.
this also uncomments the evals so we can run with-dev dagger call evals.
While running a function in shell and you're in nav mode (you hit escape), hitting q or Ctrl-C exits shell.
A better behavior would be to quit the currently observed process and return to input mode
Fixes https://github.com/dagger/dagger/issues/10233
The CACHED label for container constructor calls are extremely uninteresting and can easily be CACHED or not based on whether anything else connected to the engine is using Containers (these are dagql in memory cache hits), so just attempting to scrub it.
What is the issue?
Often found from log on my local machine when running dagger call sdk elixir test
== Compilation error in file test/support/object_field.ex ==
** (MatchError) no match of right hand side value: {:error, :nofile}
lib/dagger/mod/object.ex:208: Dagger.Mod.Object.module?/1
(elixir 1.18.3) lib/enum.ex:4390: Enum.filter_list/2
lib/dagger/mod/object.ex:186: Dagger.Mod.Object.decoder_hint/1
test/support/object_field.ex:69: (module)
! process "mix test" d...
trying this out as an isolated change from #10229
In #8839 and #8587, we added basic dagger update functionality (as described in #6605). Today, running dagger update only refreshes the dependency pins to the original ref.
For example, if mymodule@main was installed, then updating will refresh the pin to the current state of the main branch. However, this doesn't work particularly well with tags - updating mymodule@v1.2.3 just refreshes to the state of the v1.2.3 tag, but doesn't actually update the tag itself.
In this [disco...
We now use the IncludeDependencies arg unconditionally in the CLI (see https://github.com/dagger/dagger/pull/10118) - but this arg was only introduced in v0.18.6, so we should error cleanly if there's a mismatch here.
This import is required to use DaggerObject embedded in the interface. The editor likes to automatically remove this if it's not referenced directly as dagger.DaggerObject but it's valid as-is
Using DagOp (from https://github.com/dagger/dagger/pull/9395), we can lift buildkit operations into dagger-native code, while preserving most of the caching semantics that we rely on today. This is part of our efforts to rely more on our dagql caching (see efforts like #9682) - once dagql caching becomes more sophisticated we'd like to rely on it more completely, but we can't do that if all of the logic is defined in buildkit. The aim is to migrate as much of our code into `github.com/dagge...
Description
Whenever there is an update to Dagger and it needs to pull the newest Dagger engine image, the process gets through most of the download but then exits with an unexpected EOF. This issue is temporarily resolved by performing a docker pull of the new image manually.
Environment
- Operating System: NixOS
- Installation Method: dagger/nix flake
Logs
95010d052422: Pulling fs layer
b16238853797: Pulling fs layer
d0d32b261184: Pulling fs layer
failed to copy...
Overview
We have a new type, Env, but it had to be rushed out to unblock the LLM multi-object support, and is not fully mature. Let's discuss its evolution.
My priority is to get Env back on track as a more general primitive, not just for LLMs. The original design was aligned with this, but in the rush to get LLM integration to work, we made last minute changes that deviated from this goal: specifically the concept of input and output bindngs, the mandatory description...
O...
What is the issue?
Installing the helm chart using fluxcd fails as the version number gets rendered differently
This appears to happen with a few apps (though dagger is in this thread)
Flux seems to render the version with a Sha
So it fails with
Failed to apply default image tag "registry.dagger.io/engine:v0.18.5+bbb202ea8932": couldn't parse image name "registry.dagger.io/engine:v0.18.5+bbb202ea8932": invalid reference format
It appears AppVersion is preferred over Versi...
Bumps the sdk-java group in /sdk/java with 4 updates: io.netty:netty-common, io.netty:netty-handler, de.m3y.maven:inject-maven-plugin and com.spotify.fmt:fmt-maven-plugin.
Updates io.netty:netty-common from 4.2.0.Final to 4.2.1.Final
Commits
72d0cce [maven-release-plugin] prepare release netty-4.2.1.Final
f1b892b Fix javado...
Bumps the sdk-elixir group in /sdk/elixir with 1 update: ex_doc.
Updates ex_doc from 0.37.3 to 0.38.0
Changelog
Sourced from ex_doc's changelog.
v0.38.0 (2025-05-09)
Enhancements
Allow listing outside URLs in extras
Bug fixes
Ensure some cases where <, >, & and in headers would appear as entities in the sidebar
Fix outline caused by swup.js on Webkit based browsers
Fix bugs when computing synopsis
Automatically close the sidebar w...
[dagger/dagger] Pull request opened: #10374 chore(deps): bump the docs group in /docs with 2 updates
Bumps the docs group in /docs with 2 updates: posthog-js and sass.
Updates posthog-js from 1.239.1 to 1.240.6
Release notes
Sourced from posthog-js's releases.
1.240.6 - 2025-05-09
feat: use css files for survey widget styles (#1948)
1.240.5 - 2025-05-08
fix: padding on cancel button (#1946)
chore: make rollup able to bundle CSS files (#1945)
1.240.4 - 2025-05-07
chore: include response within the survey_q...
Bumps the sdk-typescript group in /sdk/typescript with 4 updates: @opentelemetry/semantic-conventions, execa, @types/node and eslint-config-prettier.
Updates @opentelemetry/semantic-conventions from 1.32.0 to 1.33.0
Release notes
Sourced from @โopentelemetry/semantic-c...
What are you trying to do?
We would like to run commands in containers and use the output as the value of a secret
Doing it naively appears to be insecure and ends up logging password.txt. Snippet with a source available example
plaintext, err := m.AwsSdk().
WithEnvVariable("AWS_ACCESS_KEY_ID", roleCredentials.AccessKey).
WithSecretVariable("AWS_SECRET_ACCESS_KEY", roleCredentials.SecretKey).
WithSecretVariable("AWS_SECURITY_TOKEN", roleCredentials.SecurityToken).
WithExec...
As we discovered recently, errors can cache between two sessions when they're active at the same time. This is a pain, and should probably be considered a bug - see #10320.
However, these tests shouldn't be failing - we've had this behavior forever, it's not a new failure. It's also not what we're testing, the flakes just add to our CI noise - we're aware it's an issue, and we should fix it (and add a test specifically for it).
We can just disable the version check here - we're just doing a dagger query here, it's super super unlikely we break this fully (and even when we do, we can get a way better error message).
Ran into these trying Dagger with behind-the-firewall OpenAI provider. Seems like it generates janky function calls for some reason. Adding these checks fixed everything. :shrug:
This is two commits but I suspect they both fix one issue, I just happened to hit one error before the other. It's probably generating a fully empty function call struct.
What is the issue?
A project with a number in the name, such as "k8s-test-app", causes class lookup failure with Python SDK.
No @dagger.object_type decorated class named K8sTestApp was found
I tried various combinations of dagger init --name k8s-test-app and renaming generated python module directory and class name. Also tried using [project.entry-points."dagger.mod"] in pyproject.toml but only managed to produce different kinds of lookup errors.
Would it be possible to con...
This fixes a regression, reported in Discord.
If user had a function named "sync" returning a leaf value in a dependency, it was getting generated as the special case "sync" functions we have in core.
Example
Dependency:
from dagger import function, object_type
@object_type
class Dep:
@function
def sync(self) -> str:
return "hello world"
Caller module:
fr...
What are you trying to do?
The typical use case is running database migrations against a database service, with the goal of running a container using the resulting, migrated / seeded database.
Right now, there is nothing to chain from to get the modified directories on the service.
Example API that could solve this:
@function
def database_service(self, src: Source) -> dagger.Service:
postgres = dag.container().from_("postgres:latest").with_env_variable("POSTGRES_P...
Goreleaser needs these files :)
Follow-up from #10296 - this should work now, I've dry-runned locally.
This sounds like it has at least some similarities with the OpenAI Agent SDK's run context. Linking here for comparison https://openai.github.io/openai-agents-python/context/
At a high level they're very different things - Env is objects + tools and it's dynamic, etc. Run context is just objects and just seen by your functions. But the DX from the function's POV could be similar
Yeah for sure there's a parallel. I'm trying to encapsulate the LLM-specific view in ModelContext (no...
love this, especially the flattening of inputs to plain "bindings" that are truly 1:1 with shell variables and env.run/prompt methods. if we can pull that off, it's a dramatically clearer abstraction for humans and LLMs alike.
my one knee-jerk reaction is that i'm not 100% intuitively behind separate Env and ModelContext types... there are a few things you called out as making sense on ModelContext but less on Env:
- ModelContext.Serve -> MCP service (stdio or sse)
- this makes sens...
I found #10089 bring llms-full.txt into doc site. But some link in llms-full.txt not right. So this pr correct it.
What are you trying to do?
Topic
Dagger Cloud Integrated Secret Management Service
Problem
Current Dagger pipelines lack a built-in, seamless, and secure method for handling sensitive information like API keys and database credentials across various execution environments. This complicates secure secret management and degrades the developer experience.
Solution
Propose adding a robust, built-in secret management service to Dagger Cloud. This service would provide:
- Centralize...
I've seen an increase in the number of flakes that look something like (both in CI, locally, and in the middle of test runs):
Error: failed to get configured module: input: moduleSource failed to resolve dep to source: failed to load local dep: select: failed to load local module source context: select: failed to get content hash: failed to get content hash: failed to get snapshot: failed to sync: failed to copy "/home/runner/work/dagger/dagger": failed to stat /var/lib/dagger/worker/sna...
We don't need to wrap the error again, we've already got a neat wrapped error at this point.
See the stutter in the message at https://github.com/dagger/dagger/issues/10390.
Pass the moduleSourceID instead of a JSON file so it simplifies SDK implementation and let it rely on the codegen.
If a moduleSourceID is passed to the codegen CLI,
it will fetch its dependencies and store it in the codegen configuration.
Improve Go & SDK client codegen to only generate what is needed:
- If there's only remote dep, do not load any dagger.json, just serve git deps
- If there's local dependency, load the dagger.json, (throw an error or emit a warning if missing) and ...
I would do some exec on a container mounting this cache in a pipeline to download the version of terraform you want previously of using it in the main pipeline.
I would do the check of the existence of the correct terraform version before downloading it directly in the exec.
Does that make sense?
What is the issue?
I followed
Setup tracing at https://dagger.cloud/traces/setup. To hide set DAGGER_NO_NAG=1
from the CLI.
It was working yesterday, so I believe it's a token expiration thing.
So I got to the traces setup page, clicked on the github logo
Then, I saw the loading page of dagger cloud v3, but nothing loaded and the request log showed me this
POST https://auth.dagger.cloud/oauth/token
403
{"error":"invalid_grant","error_description":"Invalid authorization co...
my one knee-jerk reaction is that i'm not 100% intuitively behind separate Env and ModelContext types... there are a few things you called out as making sense on ModelContext but less on Env:
ModelContext.Serve -> MCP service (stdio or sse)
- this makes sense if we have client support built into the engine, but i'm not sure if it's necessary when the CLI is the server, and calling Serve here might not ever make sense if we take the SDK/runtime approach to client support....
As a part of the release process we automatically upgrade daggerverse using the modules/daggerverse module. Since the development of the new Module Catalog & Insights feature the dagger cloud API now has daggerverse itself as a dependency. Because of this, after we upgrade daggerverse we must also run go mod tidy on the API itself, else we leave it broken on our main production instance. This upgrade also needs to include Kubernetes deployments and github workflows.
Why the new m...
This PR adds the ability to define +defaultEnv="FOO" to function arguments to reduce verbosity and improve developer experience.
There are a few things we need to discuss in terms of implementation but I wanted to get the ball rolling.
What are you trying to do?
When an error is raised during execution (for instance raised by a withExec) the DaggerQueryException raised doesn't allow to get access to the underlying error easily.
The exception should have an easy way to access the underlying error without to deal with graphql errors. Default message should be improved and we should have access to the details of the error.
For instance, here is a Go code from the [cookbook](https://docs.dagger.io/cookbook/#terminate...
After a long week of experimentations, I think we were able to trim down a little bit the expected values, thus we're bringing here 3 different "types" that should demonstrate such potential improvement.
Together with this change, we're trying to stick to run what the Alt Runners 1 are running:
- doc-lint
- sdk-go
- run those in sequence (not parallel)
Ideally someone from the community side should be able to take over this PR, and test this against the GHA already existent before ge...
Overview
Dagger should natively support .env files. It's a de facto standard for managing environment-specific configuration in a lightweight, portable way. It is widely supported, included by docker and docker-compose.
Proposed design
Default behavior
If .env exists in the current directory, or any parent directory, dagger should load it by default.
--env-file
An env file can be specified explicitly with `dagger -...
Sounds good :tada:
-
My main question is whether transitive dependencies should be able to use default secrets from the original caller. E.g. CLI calls module A, module A calls module B, module B has a default secret - is it allowed to access it?
It feels like the feature is a little lacking if it can't (though you can always just explicitly pass the secret between A and B), but if you can, it feels like a huge ecosystem vulnerability waiting to happen.
I'd propose that we limit thi...
I think this would be like context directories. When you have transitive dependencies with defaultPath, they're relative to the module that defines it, not the one you're calling. So I'd say if module B has a default env var, it would have to have an .env in its sources. That brings up another question though. Some .env files could be committed to git to support this from a git source, but then you may still want a .env that's specific to the caller, so how do we feel about supporting...
I don't think we should handle overrides. It's not part of the original spec, and is not universally supported. In our case it's less needed because Dagger already has a way to express sane defaults in a function. If it's safe to commit in a shared .env, it's safe to commit in the function directly.. So better to only support the basic use of .env as an uncommitted env-specific configuration.
- My main question is whether transitive dependencies should be able to use default secrets from the original caller. E.g. CLI calls module A, module A calls module B, module B has a default secret - is it allowed to access it?
Great question. I'm not sure.
It feels like the feature is a little lacking if it can't (though you can always just explicitly pass the secret between A and B), but if you can, it feels like a huge ecosystem vulnerability waiting to happen.
I'd propose ...
Could this work with direnv / .envrc files, rather than Dagger itself finding environment files within a repository?
This would allow us to use source_up and other helper functions, provided by direnv.
Actually we could support passing multiple env file paths... then we could stack them for you. So overrides would be possible, but would never happen automatically- up to the caller to manage their env files any way they want.
Now that dotenv, dotenvx, and op, infisical, etc exist; it's becoming more common for .env.production to be supported and only store references to secrets.
The nice thing about this approach is that people can still run op run -- bun run deploy without having to go through a Dagger pipeline.
But this still leaves the security risk that some nested module cannot have access to those values just because it happens to be passed a directory with a .env file? So won't the `dagger.j...
Adding some thoughts on .env support with frameworks (e.g. Laravel, Symfony).
- Support for a
.envfile is usually for supporting local development (e.g. laptop) where the user does not have an elegant way to manage the environment (typically with a UI) - When you deploy frameworks with
.envsupport, you don't create a.envfile in the production environment. Instead you manage the variables using a UI or define those in Terraform or a container spec
I'm wondering how the experi...
I think one of the maybe confusing things here is the expected experience.
From reading the comments and discussion:
- There are some functions that need a lot of env variables set. Right now we pass those as arguments, once you have 5 arguments to a function it's a frustrating developer experience to pass those into the function
- We need to keep the sandbox layer secure and prevent malicious modules from reaping environment variables from the host
It's weird to instantiate a LLM so you can expose its context over MCP, when you don't actually have access to a LLM endpoint.
I'm with you on this one, i just don't think it necessarily pollutes the concept of an Env to add the capability to make an MCP server out of one. "tools" are a combo of functions and builtins, and masking those makes sense outside the LLM context.
considering extension to ModelContext.resources might does kinda break what i'm suggesting though... like if a ...
What is the issue?
When an error occurs in a nested async function, the underlying error can be hard to find. This leads to a situation where Dagger Cloud tells you what failed (including cryptic looking dagger errors) but trying to figure out why something failed requires more scrolling and depending on the complexity of the pipeline can be quite difficult to understand.
The ideal behavior is that the second layer error showing why something failed should be the main thing you see whe...
This unifies the codepath directory methods execute when performing a buildkit solve
Spinning out a fix made while working on the dagql persistent cache. Main motivation is that I'm getting an aneurysm trying to think about the correctness of this fix in combination w/ all the other changes I'm making there, so splitting out here will help verify it independently with fewer health risks.
If correct, this is likely a performance improvement in the immediate term anyways since it would mean previously we were re-calling fields that returned lists for each element in them whe...
Running dagger develop path/to/module is an easy typo - however, it's not valid, you need to use the -m flag. This didn't error out though, we just accepted any additional args and ignored them.
We should explicitly forbid args to these functions if we're not using them, which will help prevent typos.
Optimize code using a more modern writing style. Official support from Go, for more details visit https://pkg.go.dev/golang.org/x/tools/gopls/internal/analysis/modernize.
With incoming changes as part of dagop, we're heavily moving away from buildkit - as we lift more operations into dagger (see #10367), we'll have to work out what happens to some functionality. Specifically, dockerfile build support is pretty heavily integrated with buildkit-specific code - removing buildkit from dagger makes it hard to preserve this feature.
This is appearing a bit sooner than I thought :cry: lifting our exec implementation into dagger and into WithExec means that it beco...
Hi @eunomie
i've added these methods
- default: i add also the
pathandextension.typefield i think could be useful toEnanchedMessagewhich containsmessage, path, type code, exit code and cmdtoFullMessagewhich containsmessage, path, type code, exit code, cmd and STDERR
Below the patterns of messages
private static final String SIMPLE_MESSAGE = "Message: [%s]\nPath: [%s]\nType Code: [%s]\n";
private static final String ENANCHED_MESSAGE =
"Me...
What is the issue?
Dagger module does not init on MacOS Intel Chip with Java SDK
Dagger version
dagger v0.9.4
Steps to reproduce
Follow build an agent instructions for Java
Log output
No response
Problem
As part of "project theseus" we're removing our dependency on buildkit. As a result our current implementation of Dockerfile compat (Directory.dockerBuild) will no longer work, because it relies heavily on buildkit and its dockerfile frontend.
This Dockerfile compat is a very useful feature and we don't want to lose it. So we need to find a solution
Solution
There are 2 possible designs:
- Implement a native Dockerfile-to-dagger adapter. This could be by porting buildkit...
What are you trying to do?
For introspection/automation/CI/LLM etc
I would have hoped for a more direct access to the full URL (including the org value which is retrieved from the token), maybe something like a getter on the engine object or something like this ๐
I agree that the full trace URL is printed at the end of the pipeline, my concern is that we haven't found the right log level to set on our CI, and as I said before this URL can be buried under tons of logs. I wished I co...
Enable by default a maven option to not print any progress when downloading maven artifacts.
This helps to maintain the logs less noisy.
I definitely like this, I feel like this also links into an idea I was talking about with @cwlbraa about "universal -i", where you could trigger any failure of any operation to drop you into an interactive shell (instead of just execops/llms). That environment to drop into - would just be an Env. If we have persistent Envs as part of a cloud service, then this would be the way to debug CI failures. (just as another potential cool use case, like our own implementation of a buildkit `...
The new option can be used to configure how much data to sweep when we perform a garbage collection pass. This requires a minor buildkit patch (we can maintain this in our fork for now): https://github.com/dagger/buildkit/tree/gc-target-space.
Was staring a lot at engine build traces today for unrelated reasons and noticed a few pieces of extremely low-hanging fruit in our various modules related to building the engine. Together they trim ~5-10s from an engine build based on some local runs, so not life-changing but enough to send out quick.
See individual commit messages for details.
[dagger/dagger] Pull request opened: #10422 chore(deps): bump the docs group in /docs with 2 updates
Bumps the docs group in /docs with 2 updates: posthog-js and sass.
Updates posthog-js from 1.240.6 to 1.242.3
Release notes
Sourced from posthog-js's releases.
1.242.3 - 2025-05-19
fix: add new relic to payload host denylist (#1952)
chore: remove unused function from survey extensions (#1960)
1.242.2 - 2025-05-15
fix: center positioning for surveys (#1959)
chore: escape quotation marks on elements string han...
Bumps the engine group with 9 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/Khan/genqlient | 0.8.0 |
0.8.1 |
| github.com/alecthomas/chroma/v2 | 2.17.2 |
2.18.0 |
| github.com/googleapis/gax-go/v2 | 2.14.1 |
2.14.2 |
| github.com/goproxy/goproxy | 0.20.0 |
0.20.1 |
| [github.com/mark3l... |
Bumps the sdk-typescript group in /sdk/typescript with 11 updates:
| Package | From | To |
|---|---|---|
| @opentelemetry/core | 2.0.0 |
2.0.1 |
| @opentelemetry/exporter-trace-otlp-http | 0.200.0 |
0.201.0 |
| @opentelemetry/sdk-metrics | 2.0.0 |
2.0.1 |
| [@opentelemetry/sdk-node](https://github.com/open-telemetr... |
This is a quick hack to try and avoid conflicts in these files.
Ideally these just shouldn't be committed to the repo at all, but we're a bit dependent on netlify for our docs builds right now.
(note this doesn't fix the issue in renderer.index - I have no idea what format that is, so I can't fix the issue).
What are you trying to do?
imagePullSecrets (https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) could be taken advantage of by dagger, mainly considering one can easily hit dockerhub pull limits.
Currently there's a workaround that can be done, by explicitly mounting the ~/.docker/config.json into the k8s pod where the dagger CLI runs.
However, if this could be integrated with a more "native k8s way", that would simplify a lot the life of dagger u...
In #8989, an issue emerged with GitLab CI's CI_JOB_TOKENs: Right now, when accessing remote modules via HTTP authentication using dagger call -m gitlab.com/..., the username is hardcoded to x-access-token (except for bitbucket.com). However, as specified in GitLabโs documentation, username gitlab-ci-token is required when using basic authentication with CI_JOB_TOKEN. In the discussion, we recognized that not only recei...
What is the issue?
I've got a custom function with an optional argument verbose bool but when I try and run dagger call myfunc --verbose I get an error:
error: parse selections: parse field "myfunc": init arg "verbose" value as dagql.DynamicOptional (Boolean) using dagql.DynamicOptional: cannot create Boolean from int64
I haven't dug deeply, but my guess is it's the [top level verbose flag](https://github.com/dagger/dagger/blob/a0afe1e0532e58af0ebe6fc3b0881ee695dd7a6a/cmd/d...
What is the issue?
cross-link the main docs site with the API site? When I search "defaultplatform" in the main site, it doesn't show me the dagger API results
What is the issue?
reproduction:
dagger -c 'container | from alpine | with-exec false & _wait' && echo "everything is ok"
will display:
โ connect 0.1s
โ load module 2.2s
$ Container.from(address: "alpine"): Container! 0.4s CACHED
โ .withExec(args: ["false"]): Container! 0.1s
! process "false" did not complete successfully: exit code: 1
Setup tracing at https://dagger.cloud/traces/setup. To hide set DAGGER_NO_NAG=1
everything is ok
note that the everything is ok was...
What is the issue?
We've noticed that many Windows users in workshops have had issues with the powershell install script.
Different powershell versions and admin privs have caused issues. Winget seems like the best path since it's shipped by default in Windows 11.
Noticing other open source players leading with Winget only install.
What is the issue?
When calling dag.Module().Runtime().Platform(), the engine panics because dag.Module().Runtime() is nil. This is when calling in context of a module. If this API is not meant to be used by Module authors, it should be hidden. I also couldn't find documentation relating to this API.
Dagger version
dagger v0.18.8
Steps to reproduce
No response
Log output
! panic while resolving Module.runtime: runtime error: invalid memory address or nil pointer d...
Adds a new WithSymlink method to the dagger API.
Note that this only implements the directory portion of the API, a follow-up commit will be required for container.WithSymlink once ContainerDagOp has been implemented.
See https://github.com/dagger/dagger/issues/8484 for details.
What are you trying to do?
Right now, it shows when it was executed, but I believe it would also be nice to see how long it has taken.
Especially if you chain runs on your CI (as I did) and want to compare 2 runs.
Why is this important to you?
As I passed from 5m30s with empty cache from depot.dev to 44s with hot cache, it's very compelling to see the improvement.
How are you currently working around this?
Clicking on each run to see the difference
As a suggestion - to unblock the use case for https://github.com/dagger/dagger/issues/8428, we'd want the pragma // +env or something right? Then that would let the author pull information from a bound environment. The "bound" environment would be the shell context for dagger shell, for dagger call we could have an --env flag.
What would this +env pragma do?
Mayybe, we could support a dag.Host.AsEnv function, to quickly construct an Env that maps to the user host? All the user env...
What are you trying to do?
Since we support returning a self object, we turn a function into a constructor function. This task could be done by turning init function into a constructor function (instead of registering a regular function).
Why is this important to you?
No response
How are you currently working around this?
No response
Context: https://github.com/googleapis/go-genai/issues/310
Bumps the genai client for the panic fix and undoes the workaround.
This is a WIP PR for implementing "platform modules" as discussed in this discord thread
NOTE: it doesn't currently work...
I think the problem is I hijack the context directory at the wrong time:
- I need the platform module's context directory when loading its own functions
- But then I need the original context when resolving default path etc.
We can use a lot of the functions from the new slices/maps packages, and a lot of these patterns have other ways of doing them in more modern go.
Some of this is just dead code as well.
This includes fixes for various hacks, and drastically improves the caching - now it actually works, so it won't trigger a whole build from scratch every single time.
Once init function is define, the SDK turns that function into constructor function.
Closes #10437
[dagger/dagger] Issue opened: #10447 ๐ python: `Service.start()` and `Service.stop()` do not work
What is the issue?
When manually starting and stopping services, for example like https://docs.dagger.io/api/services/#start-and-stop-services, the code will fail with an error:
AttributeError: type object 'Client' has no attribute 'from_context'. Did you mean: 'from_connection'?
This appears to be because Service.start() and Service.stop() are still using Client.from_context(), which has been removed:
https://github.com/dagger/dagger/blob/v0.18.8/sdk/python/src/dagger/...
Replace all :json with Elixir JSON standard library and drop :null handling because the JSON convert to nil automatically.
Updates #7444
Adds a new method to directories to allow checking if a file (or directory) exists at a specific path
You could previously prefix anything with an underscore and it would just be stripped out. So _container would execute container. However this was only intended to give access to the interpreter's own builtins, like _echo. Now _container should error since it doesn't exist.
This is a second take on the "platform module" feature. (First take: #10442 )
In this version, we add a platform: bool field to dependencies, instead of a top-level platform: { ... } field.
This means that any dependency can be marked as a platform module. It also means that a module can have multiple platform dependencies. Namespacing is unchanged from regular dependencies: each dependency is namespaced under its own name; dagger call cannot call dependencies, but dagger shell ca...
@shykes [mentioned](#daggernauts message) that the current dagger client install CLI doesn't completely follows the spec described in #9582.
This PR aims to fix that difference:
Before: dagger client install --generator=
Now: dagger client install
The continuation of https://github.com/dagger/dagger/issues/10367.
[!WARNING]
This is heavily under construction! :construction_worker_woman: Mostly just creating to track the work, and have a place to point folks to.
- requires the user to be logged into Dagger Cloud
- requires an org to be set
- requires the org to have this feature enabled
This provisions a remote Engine just-in-time, connects to it and then runs all subsequent operations in this Engine. CLI must be connected to Dagger Cloud. Only Cloud orgs with this feature enabled are able to use this functionality. ALL commands will work exactly the same, just that they will run against this remote Engine.
This is a highly **EXPERIMENTAL...
When an error is thrown by a TypeScript module, call ReturnError instead of logging the error and exit 1.
It seems I never applied the change introduced b
https://github.com/dagger/dagger/pull/8442 so here it is.
Today there was a discussion on error verbosity: when a dagger workflow fails, is that error reported to the user in a way that is clear, or confusing? When users are confused by an error trace, is there a pattern in what exactly confuses them, and a clear description of what they would have expected instead?
@vito strongly recommended collecting as many real-world examples as possible, to help answer these questions together.
So I am starting this thread to collect these real-world exa...
Here's an example I encountered today:
Use case: re-generate the Dagger client library while developing an engine API change.
Trace: https://v3.dagger.cloud/dagger/traces/0dbd8d48c2a2992d94d0b85d056fdafe?span=26e9dd8702f8dbf7
Terminal output:
<img width="1351" alt="Screenshot 2025-05-22 at 15 35 17" src="https://github.com/user-attachments/assets/b7c7cbf1-fedb-4149-9e8a-5ce96c603636" />
Snippet of what I saw:
โ โ โ โ Container.withMountedFile(
โ โ โ โ โ path: "/mnt/dnsna...
This commit removes the distinction between AI and CI examples. It also updates the "features" section to be after the "examples" section in the sidebar order.
Since we have removed the AI/CI separation for examples and since the corresponding partials are not used in any other page, this commit removes the partials (and related Example React component) and places the content inline in the page.
What are you trying to do?
GitHub Models is a very convenient LLM provider that available in-context in GitHub Actions via GITHUB_TOKEN.
It's also easily available from any context where you're logged in with gh.
This makes it extremely convenient for LLMs involving software engineering, e.g. in GitHub Actions.
Could we please add GitHub Models as an implemented and documented model provider?
Thank you
Why is this important to you?
...
Problem
When Daggerizing a large monorepo, you have 2 bad options:
A) Make each component a dagger module. This fully leverages the features of Dagger, but if you have many components that share the same tooling stack ("cookie cutter apps"), then it introduces a lot of boilerplate.
B) Implement a central "platform module", and invoke it in the context of each component, with cd component; dagger -m platform-module. This solves the boilerplate problem, but you lose many valuable featur...
Implement a generic ID type that matches any specialized object ID.
This is needed for improving the Env bindings API as described in #10370
"Generic object ID"
scalar ID
extend type Env {
withBinding(name: String!, value: ID!, description: String): Env!
binding(name: String!): Binding!
bindings(): [Binding!]
}
This changeset attempts to fix the flaky test issue by moving Nestru.Decoder that set hint at compile-time to runtime.
Fixes #10360
- Add
JSON.Encoderimplementation to all generated code. - Change
:json_librarytoJSONby default but still allows to configure by set:json_libraryin the config.
Updates #7444
This changeset changes the dagger-bootstrap to generate code from codegen introspection.json instead of fetch it from Dagger directly.
Bumps the engine group with 7 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/anthropics/anthropic-sdk-go | 0.2.0-beta.3 |
1.2.0 |
| github.com/containerd/console | 1.0.4 |
1.0.5 |
| github.com/google/go-containerregistry | 0.20.3 |
0.20.5 |
| github.com/lmittmann/tint... |
Bumps the docs group in /docs with 1 update: posthog-js.
Updates posthog-js from 1.242.3 to 1.246.0
Release notes
Sourced from posthog-js's releases.
1.246.0 - 2025-05-22
fix: Block newer google bots (#1974)
1.245.2 - 2025-05-22
fix: linked flag any variant match (#1972)
fix: modernise domain spelunking cookie setting code (#1973)
chore: fix changelog (#1971)
1.245.1 - 2025-05-21
chore: update some dependencies (#1969)
fix: don't call receive...
Bumps the sdk-java group in /sdk/java with 1 update: org.mockito:mockito-core.
Updates org.mockito:mockito-core from 5.17.0 to 5.18.0
Release notes
Sourced from org.mockito:mockito-core's releases.
v5.18.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.18.0
2025-05-20 - 5 commit(s) by Eugene Platonov, Patrick Doyle, Tim van der Lippe, dependabot[bot]
Make vararg checks Scala friendly (for mockito-scala) (#3651)
For ...
Bumps the sdk-typescript group with 14 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.3 |
1.13.4 |
| @opentelemetry/core | 2.0.0 |
2.0.1 |
| @opentelemetry/exporter-trace-otlp-http | 0.200.0 |
0.201.1 |
| [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelem... |
Another confusing: the engine said that the SDK doesn't exist (I use elixir) at the end of the error:
1 : test
10 : โ load module
11 : โ โ finding module configuration
14 : โ โ โ moduleSource(refString: "."): ModuleSource!
16 : โ โ โ โ sdkForModule: elixir
17 : โ โ โ โ sdkForModule: github.com/dagger/dagger/sdk/elixir@v0.18.6
18 : โ โ โ โ moduleSource(refPin: "", refString: "github.com/dagger/dagger/sdk/elixir@v0.18.6"): ModuleSource!
19 : โ โ โ โ โ git(url: "github....
[!NOTE]
This is the first part of #10336 and #8030
TypeDefs split
To be able to generate types of the module itself, this means it requires to generate and expose (register to the engine) the types and functions exposed by the module even if the module can't be compiled. If the module is referencing its own types, there's a moment they don't exist.
This circular dependency is cut by allowing module SDKs to expose a new function moduleTypeDefs. If this function exists, it wi...
Thanks for the before/after and easy to reproduce example!
The tricky part with this is finding the right heuristic(s).
Thinking out loud:
All the UI knows for each span is that it has an error status + description. We don't know the root cause of any error beyond matching string values, which aren't always an exact match (like the input: ... prefix), and even with exact matches it's not a sure thing that they're all the exact same error incident (imagine something like `/entrypoin...
There are two main authentication mechanisms in the CLI/SDKs:
- DAGGER_CLOUD_TOKEN: used primarily in CI environments
dagger login: used by individual users, likely in their machines
We currently only support using dagger login to provision remote engines. We should also support the use of engine tokens since what runs on CI and other remote environments. We faced this limitation when building an internal PoC that uses the Go SDK to dagger.Connect to an engine. At the moment we c...
[dagger/dagger] Issue opened: #10478 โจ Back-and-forth container and service communication (sdk/go)
What are you trying to do?
I would like to have a container that can talk with a service it depends on, such that they can call up each other:
flowchart LR
a[Container] -->|dials| b[Service]
b -->|dials| a
In practice, the Go code looks something like:
svc := docker.Container().From(...).AsService(...)
c := docker.Container().From(...)
// There is no way to make them communicate between one another at this stage!
c, err := c.Sync(ctx)
Why is this...
Think I figured out how to dedupe errors. :face_holding_back_tears:
Errors now track an _origin extended field that contains the originating span ID. It's all handled in internal plumbing with a bit of UI logic to skip displaying bubbled-up errors. No SDK changes needed.
- When we construct an
ExecError,engine/buildkit/sets the_originas the `Container....
Hey folks :) currently in the process of migrating from earhtly to dagger for my Rust + ts project CI/CD.
The challenge I'm facing is how to do cross compilation for Rust in Dagger. Earthly used to offer a special rust+cross feature, which was nice because i ran into a bunch of issues related to running docker in docker. Now in Dagg...
Do you have any wip branch? Kind of curious, since as part of https://github.com/dagger/dagger/pull/10457, I'm attempting to rework the ExecError, and want to make sure I'm doing it in a way that makes sense (it's not finished yet either).
One thing that'll come out of that is the ability to inject these errors on every container operation (or git clones, or whatever).
What are you trying to do?
When executing a module, the engine should be smart enough to adapt his calls based on what the SDK implements.
Each dagger module and client related commands need 1 or multiple interface implementation but some are also simply optional.
Here's the current state of called function based on the command:
| Dagger command | Method called on the engine | Method called on the SDK | Required | Note ...
We should revive the work in https://github.com/dagger/dagger/pull/8201 (was closed due to lack of time, but it's quite useful in our new SDK interface world that's being worked on by @TomChv as part of https://github.com/dagger/dagger/issues/9582).
This would help fix:
- #6621
- #7834
- #7707
It also feels heavily linked to #10480, and would help decouple init and develop more.
This new Init method would be in a new Init interface in core/sdk.go, something like:
type Init...
@joepio welcome! trying to get some context about your current setup. Do you specifically need Cargo cross to cross compile your app? Just checking if using Rust's native cargo build --target feature is an option here.
If that's not the case, running Docker in dagger is quite straightforward. Using this module from the daggerverse: https://daggerverse.dev/mod/github.com/shykes/x/docker@811fa8a47958c484441304cec08d6fe30a7550b3 here's a typescript example on how to use it:
@jedevc Still WIP obviously but here you go: https://github.com/dagger/dagger/pull/10468/commits/0dc4e26b5f566d5c2ebb1dba70b99d64ee591c15
It's currently broken - I need to figure out in ExecError whether/how it should consider the Container.withExec its origin (which I have yet to get working) or the unlazying point (.directory in the above asciinema). The former is more consistent with the rest of the UI. I tried extracting it from the op description like we do elsewhere but haven't...
@vito what makes this difficult, is that there is a massive chasm between 1) knowing what feels "right" or "wrong" as a user, and 2) having any understanding of the underlying mechanics of our TUI + otel. So it's hard to have an opinion on this or that heuristic...
My 2 cents: when sharing the example above, my perhaps naive thinking was: just show me the top-level error and hide the rest. I already see which spans have an error status in the tree, so it's easy to dig deeper if I want to...
I had a good discussion with @levlaz on the Discord today and wanted to link that here. I'd be interested in ways to specify "default secrets" that don't rely on secret references being stored in a .env file. Why not allow the first module / "top level module" to call a default secret directly in code?
e.g.
abc = Secret('secret_abc', default='env://$SECRET_ABC')
This could coexist with loading thes...
Why not allow the first module / "top level module" to call a default secret directly in code?
This doesn't work in 9/10 monorepository situations, as sometimes the "top" module is the root of the monorepo, or some nested project.
you're right - something we discussed in that discord thread is the idea of the "top" module being able to pass the "entitlement" it has to read secrets from the host down to sub-modules... in a similar way to Earthly's --allow-privileged flag (which is used to permit remote use of Earthly's LOCALLY instruction, despite it being poorly documented on that page)
Oh yeah this has sent me on a wild goose chase a couple of times. :sweat_smile:
Update: the error origin stuff seems to really be paying off. Now it's easy to jump from a bubbled up error straight to its origin (new r hotkey).
https://github.com/dagger/dagger/pull/10468 has all this and is in a decent state now.
Implementation notes:
- I replaced the
_originfield and replacing it with standard OTel trace propagation. - At the OTel lev...
Thanks @marcosnils!
Having some issue to connect to docker though. That example gives error during connect: Get "http://docker:2375/v1.49/containers/json": dial tcp: lookup docker on 10.87.0.1:53: no such host
Docker is running of course (dagger works), so not sure what's the issue. Maybe that's a discussion for the x repo where this docker dagger module lives, though.
What is the issue?
Dagger clients do not properly detect session termination and continue executing even after a shutdown is triggered, resulting in the job running until a full CI timeout.
In our case, healthchecks were failing fatally in the background and the session was closed, but the client continued running .withExec() steps and exporting files, unaware of the termination. This caused the job to appear stuck without any progress updates, eventually failing only after hitting...
What is the issue?
When running this function:
@function
def lib_deps(self) -> dagger.Directory:
base_dir = dag.container().from_("debian:bookworm-slim").directory("/usr/lib")
libs = (dag.container()
.from_("debian:bookworm-slim")
.with_exec(["apt", "update"])
.with_exec(["apt-get", "install", "-y", "zlib1g"])
.directory("/usr/lib")
)
return libs.diff(base_dir)
I face
...
What is the issue?
The engine connection process is being interrupted, resulting in multiple connection errors. The specific error message "error reading server preface: read |0: file already closed" showing while trying to connect dagger engine. Please refer the attached screenshot.
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0.18.9) windows/amd64
Steps to r...
Currently defaults to main object description and falls back to module description. This changes reverses that. If both are defined, module description should be used. Otherwise fallback to main object description.
What are you trying to do?
after installing dagger with brew, the first thing i did was run dagger -v. it spit out about 60 lines of error logs because i didn't have docker running. i think it would be less harsh and more efficient to check if docker -- or podman or whatever -- is running before attempting to run a series of docker commands. if its not running, display an informative error message that the container engine needs to be running.
example output for when a user doesn'...
What is the issue?
shamelessly copy-pasting from [discord](#general message):
in dagger 0.18.6, while exitting a container container | from node:18-alpine | with-mounted-directory /mnt ./ | terminal back into dagger shell, I woke up some hungry ass beast sleeping inside Dagger that immediatelly ate up all the remaining 14G of my RAM.
Yes, I'm calling it -- there's a memleak somewhere in there ๐ killing dagger proce...
What is the issue?
Example from Go:
package main
import (
"dagger/repro/internal/dagger"
)
type Repro struct{}
func (m *Repro) Build(platform dagger.Platform) *dagger.Container {
return dag.Container(dagger.ContainerOpts{Platform: platform})
}
The function call can produce a container:
$ dagger call build --platform=current
โ connect 0.4s
โ load module 3.1s
โ parsing command line arguments 0.0s
โ repro: Repro! 0.0s
โ .build(platform: "darwin/arm64/v8"): Container!...
Fixes by annotate a kind to the module so we can know during register what's function we should use for register.
And also annotate raw GraphQL name to the module so we don't need to extracting a name from module (with Module.split).
Fixes #10490
No need to track these separately.
Implement a new core object type: JSONValue. See #10370
This is deeply WIP still, sending out to track progress publicly and start getting some real CI runs soon.
This is the next big step forward in making our cache logic "dagger native" and consists of:
- A persistent sqlite-based DB for dagql cache
- Support for associating and matching cache based on multiple cache keys associated with a single object in dagql
- This is very in the weeds but also pretty fundamental for supporting content-based caching and "per-client state" in dagql...
When generating code for SDKs we need to add the .env to the .gitignore that is generated. This prevents users from accidentally committed secrets into their repositories.
Resolves #9729
Adds a new builtin command for .env that optional accepts an argument of the specific variable to show. If no argument is provided, it will print all available env vars in the shell.
Resolves #10021
here's the change i'll be pushing to the 'agents in an existing project' guide today https://github.com/kpenfound/hello-dagger-py/pull/3
context:
- we will not have self-calling shipped before the workshop and hack night next week
- agent reliability with privileged env is not great,
- copying the existing test function into the workspace and removing the privileged env greatly increases reliability even though it is not a very clean solution (the agent is no longer using "the same tools"...
We have been hitting networking issues in AWS, this should address them and also speed things up. Let's check this before merging.
Note: wait for these results before merging (approve is fine).
[dagger/dagger] Issue opened: #10504 ๐ better warning when cache eviction is occurring repeatedly
What is the issue?
When testing out Dagger locally, layers seemed to fail to cache randomly. It was confusing to me because it seemed like Dagger caching wasn't working at all as advertised. I was running Dagger under a Colima VM on my mac with a virtual disk size of 25GB.
I pruned my Dagger cache (and some other caches on that VM) and restarted the test, and suddenly things were caching as expected! It was then when I checked the Dagger caching documentation and saw the note about Dagg...
Previously the core API for manually pruning the engine local cache only supported pruning all entries. This adds an optional arg to enable using the engine-wide default GC policy during these prunes.
The use case we have in mind is one where the automatic GC is disabled and instead triggered manually by users (e.g. at a time of low-traffic such that GC overhead is has minimal interference).
Ideally, the core API for managing the local cache would support the full breadth of pruning o...
Found from PR https://github.com/dagger/dagger/pull/10494, the docs / docs job failed because some files in docs are not generated.
Ref: https://dagger.cloud/dagger/traces/272e4d5c587decf58e364b080fca5c13
What is the issue?
When following the instructions from: https://docs.dagger.io/api/ide-integration
$ cd projects && mkdir dagger-playground
if I then run $ dagger develop I get the following error
...
โ โ โ โ Directory@xxh3:bb913d32f4aa64b5.withNewFile(contents: "/sdk/** linguist-generated\n", path: ".dagger/.gitattributes", permissions: 384): Directory! = xxh3:1a82eb28f1a4a715 0.0s
โ โ โ โ .withNewFile(contents: "/.venv\n/**/__pycache__\n/sdk\n", path: ".dagger/.gitignore", ...
What is the issue?
223 : โ ): Container!
223 : [3.8s] | Error: failed to resolve image "ghcr.io/cli/cli:v2.63.2" (platform: "linux/amd64"): failed to resolve source metadata for ghcr.io/cli/cli:v2.63.2: failed to authorize: failed to fetch anonymous token: unexpected status from GET request to https://ghcr.io/token?scope=repository%3Acli%2Fcli%3Apull&service=ghcr.io: 403 Forbidden: {"response":{"data":null,"errors":[{"message":"failed to resolve image \"ghcr.io/cli/cli:v2.63.2\" (pla...
This adds support for using Google Cloud Secret Manager as a secret provider in Dagger, enabling secure secret retrieval from GCP environments.
This was tested with the following command:
DAGGER_TEST_GCP_SECRETS=1
GCP_PROJECT_ID=rawkode-academy-production
GCP_TEST_SECRET_NAME=KNOWN_SECRET
GCP_TEST_SECRET_VALUE=KNOWN_VALUE
go test -v -timeout 30s -run "^TestSecretGCP$" github.com/dagger/dagger/core/integration
Key features:
- Support for multiple authentication met...
Ever forget to pass -E? Now you can just press it at runtime!
- Added to keymap
- Turns yellow when activated
- Turns red when the TUI normally would have exited
Plus a few other minor fixes:
- Fixed zoom/unzoom keymap entry being busted ("zoom" entry gained the "unzoom" conditional and only showed when you already zoomed something)
- Show "interrupt" instead of "quit" in TUI mode, following #10455
- Clean up dead code for custom exits, following #9620
(splitting out from ...
I was wondering if we could support .env files without to much modification to the API or developer experience to support .env file loading...
Dagger Secrets already support the following sources:
- Environment variables from the host machine
- Files from the host machine
- Values from external providers (e.g. 1Password and Hashicorp Vault)
Maybe we add a new pragma for a Dagger Secret that indicates it should load a file with a default path location of .env and that...
(TODO: based on #10468 - needs rebase after merge)
Context: https://github.com/dagger/dagger/discussions/10461
(TODO: better description, prioritizing getting #10468 mergeable first)
When returning errors, capture the current trace context and store it in error attributes
This adds support for default value argument as mentionned in #9744
Also achieved the TODO left in TestOptionalValue integration test by @wingyplus ( c.f #9742 )
What are you trying to do?
Goal
Make Enum type support in Elixir
Draft design
We need to have Dagger.Mod.Enum to convert a module into Enum type when using (with use keyword).
Why is this important to you?
No response
How are you currently working around this?
No response
Wait, this docs page suggests Dagger can use .env files with secrets references... what is this discussion tracking then? https://docs.dagger.io/configuration/llm
What is the issue?
- Link to is incorrect. For example, the experimental_with_gpu is pointed to link https://github.com/dagger/dagger/blob/v0.18.9/lib/dagger/gen/container.ex#L223 which should pointed to
sdk/elixir/lib/dagger/gen/container.ex. - The experimental doesnโt highlight as warning . For example, https://hexdocs.pm/dagger/Dagger.Container.html#experimental_with_gpu/2
Dagger version
dagger v0.18.9
Steps to reproduce
No response
Log output
No response
Bumps the engine group with 8 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/anthropics/anthropic-sdk-go | 1.2.0 |
1.2.1 |
| github.com/docker/cli | 28.1.1+incompatible |
28.2.2+incompatible |
| github.com/docker/docker | 28.1.1+incompatible |
28.2.2+incompatible |
| [github.com/lmittmann/tint](https://github.com/lmittmann/ti... |
Bumps the sdk-java group in /sdk/java with 2 updates: org.junit:junit-bom and org.codehaus.mojo:exec-maven-plugin.
Updates org.junit:junit-bom from 5.12.2 to 5.13.0
Release notes
Sourced from org.junit:junit-bom's releases.
JUnit 5.13.0 = Platform 1.13.0 + Jupiter 5.13.0 + Vintage 5.13.0
See Release Notes.
New Contributors
@โOyster-zx made their first contribution in junit-team/junit5#4311
@โetranda...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 1 update in the /sdk/python/runtime directory: astral-sh/uv.
Updates astral-sh/ruff from 0.11.11 to 0.11.12
Release notes
Sourced from astral-sh/ruff's releases.
0.11.12
Release Notes
Preview features
[airflow] Revise fix titles (AIR3) (#18215)
[pylint] Implement missing-maxspl...
Bumps the sdk-python group in /sdk/python with 1 update: hatch-vcs.
Updates hatch-vcs from 0.4.0 to 0.5.0
Release notes
Sourced from hatch-vcs's releases.
v0.5.0
Changed:
Drop support for Python 3.8
Added:
Officially support Python 3.13
Avoid a deprecation warning emitted by a dependency when using the tag-pattern option
Changelog
Sourced from hatch-vcs's changelog.
0.5.0 - 2025-05-27
Changed:
Drop support for Python 3.8
Added:
Officially s...
Bumps the docs group in /docs with 11 updates:
| Package | From | To |
|---|---|---|
| @docusaurus/core | 3.7.0 |
3.8.0 |
| @docusaurus/preset-classic | 3.7.0 |
3.8.0 |
| @docusaurus/theme-classic | 3.7.0 |
3.8.0 |
| [@docusaurus/the... |
Bumps the sdk-typescript group with 16 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.3 |
1.13.4 |
| @opentelemetry/core | 2.0.0 |
2.0.1 |
| @opentelemetry/exporter-trace-otlp-http | 0.200.0 |
0.201.1 |
| [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelem... |
Something broke recently (I guess from a new package in alpine). The tests just need updating with some broader permissions. Not entirely sure what changed, but also, I do not really want to spend the time debugging this very obscure little test.
A lot of users have a Claude Max subscription. It would be nice if they could use that plan when using Dagger + Anthropic
ex_doc uses :source_url and :source_ref for deducing source links but it was not relative to the sdk/elixir folder
using :source_url_pattern seems to solve this issue #10515
I'm currently running into an M1 compatibility issue running cross:
Unable to find image 'ghcr.io/cross-rs/x86_64-unknown-linux-musl:0.2.5' locally
0.2.5: Pulling from cross-rs/x86_64-unknown-linux-musl
docker: no matching manifest for linux/arm64/v8 in the manifest list entries
In a terminal I'd be able to run with the --platform linux/amd64 flag, but I don't know how to do that in Dagger.
Current dagger index.ts:
@func()
/** Doesn't work on M1 macs */
...
Fixes https://github.com/dagger/dagger/issues/7707
This PR applies https://github.com/dagger/dagger/issues/7707#issuecomment-2912150141 with few changes to make it simpler:
- Rely on returned error type to ignore if a SDK doesn't implement a function
- Add tests for SDK with only runtime or only codegen
Noticed these while working in #10457, but figured now that we're using more dagop in places, they can be split out.
Working on a blog post for the evals, and need to force a few failure.
This is just the minimum viable change to fix the data race on main.
We currently lock in the user of the dagui.DB instead of in the dagui.DB itself; in practice this race doesn't occur since it's guarded by the mutex in the Frontend.
It could be worth considering pushing this down into the DB but I've been here before and previously decided it's better to let the DB consume things as fast as possible and trust the caller to synchronize more coarsely.
So, this change ju...
What is the issue?
I use Dagger from a development VM that I'm regularly establishing fresh SSH connections to and attaching to long running tmux sessions, so sometimes the SSH_AUTH_SOCK env var is stale.
When this happens, Dagger functions all fail fairly early. AFAIK we do not use any features relating to the SSH Agent... though LMK if there's something turned on by default I should be disabling!
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0.18.9) ...
What is the issue?
When using Dagger to run a container with a vim ENTRYPOINT, the expected behavior of launching the interactive vim editor does not occur. Instead, the shell opens without triggering vim, despite the ENTRYPOINT being defined in the Dockerfile.
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0.18.9) darwin/amd64
Steps to reproduce
- Dockerfile
FROM alpine
RUN apk add --no-cache vim
ENTRYPOINT ["vim"]
- Dagger Interactive She...
What is the issue?
Hi.
running dagger develop modifies the dagger.json file when it shouldn't ?
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0.18.9) darwin/arm64
Steps to reproduce
From
{
"name": "GotenbergBundle",
"engineVersion": "v0.18.9",
"sdk": {
"source": "php"
},
"include": [
"!.venv",
"!sdk"
],
"source": ".dagger"
}
if I manually modify like so :
- "include": [
- "!.venv",
- "!sdk"...
Follow up to:
- https://github.com/dagger/dagger/pull/9628 (added additional values to an API error)
- https://github.com/dagger/dagger/pull/10512 (fixes values not getting unmarshalled in the engine)
Rebased on top of https://github.com/dagger/dagger/pull/10512 for the fix.
Main objective for this was to make sure error extensions are propagated properly (easy), but I'm taking a fresh look at how exceptions are reported, including their stack traces. What's blocking me is that I spen...
Related to:
The "exclude" field in dagger.json is deprecated in favor of prefixing patterns with ! under "include".
- use ISO timestamp format for failLog
- add prettier config so my editor isn't battling with others
What are you trying to do?
Hello,
In our setup, we have created our own JSON config file that controls a lot of the moving parts in the pipeline (software versions, toggleable options, etc.). The config file is a module input of type *dagger.File, and it gets read and unmarshalled at the start of the pipeline. This makes it so that the entire pipeline depends on the digest of the entire file. If we so much as just change a whitespace character in the file, the entire chain gets cache-...
What are you trying to do?
The cookbook provides a helpful example of how to continue using a container after a command execution fails. A common pattern is running tests and returning results, or executing a long-running build and uploading cache artifactsโeven if the build fails. I would like to use this pattern in dagger-shell as well; however, there seems to be no way to exit a dagger-shell s...
Spinning out from https://github.com/dagger/dagger/pull/10497 to double check it doesn't (somehow) break anything in isolation and to rip the bandaid on a huge source of rebase conflicts earlier.
Putting Query as a field in structs is a surprisingly significant source of pain when it comes to serializing/deserializing objects into/from the DB, mainly because the standard json marshal/unmarshal interfaces don't accept a context and thus don't accept smuggling.
I dealt with it fo...
We unified the singleflight implementation in local source w/ the spiritually-similar cache used by dagql a while back. This wasn't strictly necessary other than attempting to re-use code where it felt reasonable to, reduce maintainance burden, etc.
Recently, we started frequently seeing strange flaky errors during filesyncs about missing files, which have proved hard to repro w/ any consistency locally, which makes them hard to debug.
Th...
What are you trying to do?
Currently, the Java SDK is not usable in Enterprise use cases (maybe even non-enterprise) because it doesn't support user local .m2/settings.xml. This settings.xml is where the user sets private registry as well as auth. It's similar to the auth file docker stores on local and dagger pull that in automatically. Same happens with Git for private registries. This solution may require somethings similar.
Why is this important to you?
Java is probably o...
What is the issue?
If I run the following command time dagger --cloud -m github.com/dagger/dagger call check --targets=docs from my $HOME directory, the command fails and it takes ~30s total: https://dagger.cloud/gerhard/traces/120a91f99d41d8d5c0623d896c38e7b4#0f4fdcf4884dc83c
If I run the same command from cd $(mktemp -d) it succeeds & it finished within ~20s: https://dagger.cloud/gerhard/traces/36412a610d902cadb6fa2214ce376d6d#276b326231fc59cc
It seems that when I run t...
In this changeset, it allows the module to add more objects and returning from a function to chain the object.
- [ ] Add
use Dagger.Mod.Enum - [ ] Converting enum module into Dagger
with_enumcall during the register of a module. - [ ] Ensure function can accept and return enum
- [ ] Integration test
What is the issue?
There a strange interaction when adding to many instructions on the same container when I am using Dagger with Deno. If I call .withEnvVariable more than 20 times the programmable workflow throws an UnknownDaggerError. I've made a simple script below to replicate this error.
Thanks for supporting Deno. This is the feature I was expecting for a long time. Keep up the good work! ๐ฆพ
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0...
[dagger/dagger] Pull request opened: #10548 chore(deps): bump the docs group in /docs with 8 updates
Bumps the docs group in /docs with 8 updates:
| Package | From | To |
|---|---|---|
| @docusaurus/core | 3.8.0 |
3.8.1 |
| @docusaurus/preset-classic | 3.8.0 |
3.8.1 |
| @docusaurus/theme-classic | 3.8.0 |
3.8.1 |
| [@docusaurus/them... |
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.
Updates astral-sh/ruff from 0.11.12 to 0.11.13
Release notes
Sourced from astral-sh/ruff's releases.
0.11.13
Release Notes
Preview features
[airflow] Add unsafe fix for module moved cases (AIR301,AIR311,AI...
Bumps the sdk-java group with 6 updates in the /sdk/java directory:
| Package | From | To |
|---|---|---|
| io.smallrye:smallrye-graphql-client-api | 2.13.0 |
2.14.0 |
| io.smallrye:smallrye-graphql-client-implementation-vertx | 2.13.0 |
2.14.0 |
| io.netty:netty-common | 4.2.1.Final |
4.2.2.Final |
| io.netty:netty-handler | 4.2.1.Final |
4.2.2.Final |
| [org.junit:junit-bom](https://github.com/junit-t... |
Bumps the engine group with 14 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.73 |
0.17.74 |
| github.com/anthropics/anthropic-sdk-go | 1.2.1 |
1.4.0 |
| github.com/go-git/go-git/v5 | 5.16.0 |
5.16.2 |
| github.com/goproxy/goproxy | 0.20.1 |
0.20.3 |
| [g... |
Fixes the currently failing docs job on main. And also, just good to keep this up-to-date.
[!WARNING]
This feature is EXPERIMENTAL, unreleased and undergoing many changes.
It has the same behaviour as the --cloud flag, which this is a follow-up to:
Starting out with just a very simple Prometheus gauge for the number of connected clients. This is meant to support some cloud-related use cases.
Current usage:
- ATM you have to set an env var on the engine container to configure the listener
- Example:
DAGGER_METRICS_ADDR: 0.0.0.0:9090 - Will add config file + command line support before merging once we confirm we want to go with this approach
- Example:
- After that prometheus metrics are available over HTTP at
/metrics- Exampl...
@weaversam8 the .env file support currently only picks up environment variables specific to configuring the LLM (see this code).
There are security considerations that need to be addressed to avoid modules loading variables from the host without knowledge to prevent bad actors from scraping host machines.
This discussion is tracking how Dagger can automatically load specific variable...
What is the issue?
If I call go mod vendor within a new dagger directory, then attempt to use daggger call, I get an undefined: gqlerror.
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0.18.9) darwin/arm64
Steps to reproduce
% dagger init --sdk=go
% go mod vendor
% dagger call container-echo --stringArg 'Hello, Dagger!'
...
Error logs:
โ Container.withExec(args: ["go", "build", "-ldflags", "-s -w", "-o", "/runtime", "."]): Container! 0.9...
What happened? What did you expect to happen?
I'am using docker buildx bake to use multi-step build.
In docker buildx I can use target as base image like below
In dockerfile
FROM base_image
# .. some docker step
In bakefile reference
target "intermediate" {
...
}
target "output" {
dockerfile = "./Dockerfile.out"
contexts = {
base_image = "target:intermediate"
}
}
Then, target output build docker image based on build result of target intermediate
I...
Fixes #10556
This seems to be missing from https://github.com/dagger/dagger/pull/9033. Since gqlerror is imported by main, we should make sure it actually ends up in the codegen.
We shouldn't be relying on go mod tidy to find it.
Missed this, woops. Since this is a new option, that very few users are actually using (and the docs referred to it as sweepSize), we can just rename this directly.
the goal: establish a repeatable pattern for evals, decoupling them from Dagger's own evals.
evals are now implemented as separate types that implement this interface:
type Eval interface {
Name(context.Context) (string, error)
Prompt(attempt int) *dagger.LLM
Check(ctx context.Context, prompt *dagger.LLM) error
DaggerObject
}
along the way, use extracted https://github.com/vito/runt helper, to replace the evalT boilerplate. this isn't essential to the pat...
WithSymlink didn't correctly pass along the directory path which would cause the directory to reset to /
What are you trying to do?
It would be nice to be able to do this using 'Container' for several use cases, currently my options are (I guess) ...
| Option | Supported in Dagger | Credentials Handled | Complexity | Best For |
|---|---|---|---|---|
| Container().Publish() | โ Yes | โ Yes | โญ Simple | Publishing |
| Docker CLI via container | โ Yes (indirect) | โ Yes via config | ๐ง Moderate | Existence checks |
| Raw HTTP via curl container | โ Yes | โ ๏ธ Manual auth | โ ๏ธ Higher | Fine-grained control |
| Bu... |
What are you trying to do?
I have multiple modules that are using models. Some modules are using the same model, some are using others.
I'm defining the module in a .env file in each module directory, but there's some limitations:
- what if I'd like to use two models running in different places? For instance I'd like to use a local model running on my machine and gpt, both inside the same dagger module.
- how can I share configuration across multiple modules? I need to copy/paste my `...
Importantly! It's never correct to use this View to determine how to do compat. The view there is used as the default for graphql queries, but everything else uses the ID.View or the Selector.View.
To understand why, imagine the following scenario:
- In server A (using version A), we call a field and get back an ID which has
ID.View = A - Later on, in server B (using version B), we attempt to load this ID.
While we make sure that we select the field+inputs correctly accordin...
this commit enriches the current dag.call spans with the metadata from
both the caller and the callee modules. It enables tracing function
calls across modules.
Signed-off-by: Marcos Lilljedahl
Refactors the dagop wrappers to make the path function optional. When ommitted, it will now default to the parent's dir or file value.
What is the issue?
dagger or just docker pull registry.dagger.io/engine:v0.18.10 takes ages.
Why can't you use Docker Hub, AWS, Azure, or something similar, that can scale well?
Dagger version
n/a
Steps to reproduce
No response
Log output
No response
As mentioned in https://github.com/dagger/dagger/pull/10248.
We should remove this method, and instead, have authentication at each point we need to do an authenticated operation, as follows:
type Container {
from(
address: String!
username: String!
secret: SecretID!
): Container!
publish(
address: String!
platformVariants: [ContainerID!] = []
forcedCompression: ImageLayerCompression
mediaTypes: ImageMediaTypes = OCIMediaTypes
username:...
What is the issue?
@function
async def http_service(self):
srv = (
dag.container()
.from_("python")
.with_workdir("/srv")
.with_new_file("index.html", "Hello, world!")
.with_exposed_port(8080)
.as_service(args=["python", "-m", "http.server", "-b0.0.0.0", "8080"])
)
await srv.up(random=True)
Then dagger call http-service - it prints things like ` 11:20:03 INF tunnel started po...
Fixes Go SDK to rely on replace directive to detect if it should copy the Go SDK locally (for testing purpose).
By doing so, we can remove the dev argument from the API. Remove dev flag from dagger client install.
To use the local copy of the SDK on Go:
go mod edit -replace dagger.io/dagger=.//
Example:
go mod edit -replace dagger.io/dagger=./dagger/sdk
This will add the Go SDK loaded in the engine:
> dagger client install go
# Generate client ...
What are you trying to do?
It would be a really helpful feature to support telemetry for dagger.Service types.
Why is this important to you?
Adding telemetry support to dagger.Service would help developers with debugging applications. Capturing metrics like HTTP request methods, URIs, response times, and status codes would allow developers to troubleshoot performance issues locally, and in cloud, such as identifying slow endpoints.
How are you currently working around this?...
Previously we used links to represent cause and effect, and we always wanted to see the effect (exec) status/logs represented by the causal span instead (Container.withExec).
Now links are multi-purpose, and we don't want to unilaterally skip showing spans that have links. At this point this check is entirely redundant since all the spans we don't want to see already mark themselves passthrough. (following https://github.com/dagger/dagger/pull/8442)
[dagger/dagger] Pull request opened: #10577 Fix ListOfType::getSubType can accept ReturnsListOfTypes
This is a very small fix that allows
#[ReturnsListOfTypes(new ListOfType('string'))]
public function myCustomFunction(): array { }
The OTel log SDK batch processor consumes an enormous amount of memory when we use it for engine clients. Each client gets its own processor, along with an additional processor for each ancestor. The memory usage really adds up quickly: each processor has a queue, each log batch is written to each parent, and each export does a slices.Copy of the batch of records.
Now we'll just write log records to SQLite as soon as they're emitted, synchronously, one at a time. For the evals, this cut ...
Following the evals refactor (#10562) the CI job started OOMing. A huge portion of this was logs, which is fixed by #10578, but there was still an alarming increase in heap usage (1.9GB -> 7.48GB) after extracting the evals out into a module and switching to interfaces:
This change addresses a longstanding TODO in (*dagql.Server).Schema to only re-generate the schema when it actually changes. Tha...
@Sessional when you say manage a cache directory to cache the terraform downloads when you create a cache volume using the Dagger SDK (e.g. dag.cache_volume("name")? That cache volume is not always guaranteed to persist on multiple runs (e.g. dagger call function). If you are worried about the caching only during the session that would work.
cache the terraform downloads and only run downloads again if they aren't already downloaded
Not sure if this is helpful or not... but the ...
introduces a new "cloud" top level query and type to interact with
Dagger Cloud. This was introduced a requirement from users to be
able to retrieve the Cloud URL from their pipelines.
Fixes #10417
Signed-off-by: Marcos Lilljedahl
when loading a module by ref, only serve that module, otherwise it's easy to hit name conflicts (e.g. evaluator/workspace, evals/workspace)
just some spring cleaning - originally did this to bump the logging SDK for an optimization, but it didn't end up helping
(see individual commits, will self-review)
[!NOTE]
This has been extracted and cleaned from #10475
This is a first step to #10336 and #8030
This PR introduces a new moduleTypeDefs method modules can implement. This method acts like moduleRuntime and should returned a container. Currently the container returned by moduleRuntime is called in two different ways:
- with an empty string for parent name: the engine is asking for the type definition of the module
- with a parent name: the engine is invoking a function d...
Somewhat relevant to https://github.com/dagger/dagger/issues/6553 but doesn't fully address it.
You still can't access them over the API (like Service { stdout, stderr }, but we can at least return a more detailed error so you can inspect them when the service fails to start.
Another spin-off from the persistent dagql cache work
This adds support for marking arguments to fields as internal, in which case they can only be set by internal server-side self calls and never by external clients in graphql requests. They won't show up in introspection schema requests either, so they never make it to SDKs or docs.
We have wanted this in a variety of situations for a while, but the immediate motivation here is to ...
This is tracking the progress of https://github.com/dagger/dagger/pull/10584 for the Elixir SDK.
Current progress of the OTEL support implementation.
Actually hitting a wall, TUI and CLOUD not receiving any spans but it works with Jaeger
Hi there. This is slightly unrelated but kind of adjacent to the discussion happening here. Our organisation has a use case where we need to pass the host's ssh socket in to a dagger module so that we can clone private source in the container. This means we are supplying --ssh=${SSH_AUTH_SOCK} whenever we call our dagger functions on the command line. It would be great if this could be defaulted so we can avoid supplying this flag.
func (m *MyModule) Build(
// +default=$SSH_A...
[dagger/dagger] Pull request opened: #10589 chore(deps): bump the docs group in /docs with 2 updates
Bumps the docs group in /docs with 2 updates: posthog-js and sass.
Updates posthog-js from 1.249.4 to 1.252.1
Release notes
Sourced from posthog-js's releases.
1.252.1 - 2025-06-15
Fix crash when config has circular references (#2015)
1.252.0 - 2025-06-12
1.251.1 - 2025-06-12
fix: Add warning for when the user tries to identify using the cookieless sentinel distinct ID (#2013)
1.251.0 - 2025-06-12
feat: im...
Bumps the sdk-typescript group with 17 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.3 |
1.13.4 |
| @opentelemetry/core | 2.0.0 |
2.0.1 |
| @opentelemetry/exporter-trace-otlp-http | 0.200.0 |
0.202.0 |
| [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelem... |
Bumps the sdk-java group in /sdk/java with 1 update: com.github.javaparser:javaparser-core.
Updates com.github.javaparser:javaparser-core from 3.26.4 to 3.27.0
Release notes
Sourced from com.github.javaparser:javaparser-core's releases.
javaparser-parent-3.27.0
Developer Changes
fix(deps): update dependency org.junit:junit-bom to v5.13.1 (PR #4775 by @โrenovate[bot])
chore(deps): update dependency maven to v3.9.10 (PR #4774 by @โrenovate[bot])...
[dagger/dagger] Pull request opened: #10593 ci: ensure cni binaries are built with latest go version
Fixes the failing scan check on main, which is detecting that we're building our CNI binaries with an old go version.
Revival of https://github.com/dagger/dagger/pull/10191 - apparently, once you force push to a closed PR, you can't re-open it. How wonderful.
It makes sense that the --no-mod flag should be allowed everywhere that the --mod flag is.
The main rationale for this was around dagger query, where it wasn't possible to run without attempting to load the current directory. But it also extends to other commands.
What is the issue?
We need a section in the documentation that covers the env vars that are available to configure Dagger.
We can look for references using this search: https://github.com/search?q=repo%3Adagger%2Fdagger+os.Getenv(+language%3AGo&type=code&l=Go
From this Discord thread: https://discord.com/channels/707636530424053791/1384134172502659162
Two tweaks:
- Mount a cache volume to
/root/.cache/golangci-lint- lints are incredibly slow + expensive so this should help. - Log the lint errors instead of putting them all in the error message. Errors are really not meant to be giant strings like that - logging is more appropriate here.
I have a repo with an assortment of different versions of terraform being used for different projects. We are using dagger to run terraform check on the projects when we swap them around. However, I find that dagger is downloading these versions of terraform regularly (I think that's what I'm seeing?), almost like the engine is pruning/evicting old layers and then recreating them at a later date. We might go a week or two without using one of the versions, and then when we go back it rebuil...
You are suggesting that I should be doing this check with a shell command? There's no way of evaluating what's in the cache using python? Part of the selling point for me was being able to use a tool I'm good at.
Something like:
if [ ! -f "/terraform/11.0" ]; then
wget -o terraform/11.0 <terraform-url>
fi
terraform/11.0 fmt
Fixes the detected protobuf vulnerability by trivy - see https://avd.aquasec.com/nvd/2025/cve-2025-4565/.
The cache is garbage collected based on these settings:
The default cache policy attempts to keep the long-term cache storage under 75% of the total disk, while also ensuring that at least 20% of the disk remains free for other applications and tools.
The garbage collection can be adjusted in the engine config.
[!warning]
Based on https://github.com/dagger/dagger/pull/9518.
Been meaning to do this for a while. Rather than requiring our custom class for descriptions:
Before
import dagger
@dagger.enum_type
class Options(dagger.Enum):
ONE = "ONE", "The first value"
TWO = "TWO", "The second value"
After
import enum
import dagger
@dagger.enum_type
class Options(enum.Enum):
ONE = "ONE"
"""The first value"""
TWO = "TWO...
- First commit backfills tests for this scenario
- Second commit fixes the issues and has the diff in expected output from first commit
This commit adds the required config to the azure pipelines examples to prevent the traces from being orphaned and allow them to show up in the Dagger Cloud UI.
You can see a working version of this here: https://dagger.cloud/levlaz/ci?branch=main&ref=42d7d5ab08445c927b5f7e4464c4908db61e183f&repo=levlaz.visualstudio.com%2Fsnippetbox%2F_git%2Fsnippetbox
What are you trying to do?
This was discussed here: #general message.
Why is this important to you?
No response
How are you currently working around this?
No response
What are you trying to do?
Hi everyone,
During our migration to Dagger, I encountered a security concern when using .file().contents() to read AWS credentials generated via aws_signing_helper. Here's a simplified example of the relevant code:
.withExec([
"bash", "-c",
`
curl -fsSL https://rolesanywhere.amazonaws.com/releases/${awsHelperVersion}/X86_64/Linux/aws_signing_helper -o /usr/local/bin/aws_signing_helper
chmod +x /usr/local/bin/aws_signing_helper
echo -n "$...
Continuation of #10427.
Mostly in the drivers package, but also a small cleanup in the git backend.
Follow-up from https://github.com/dagger/dagger/pull/10326.
Not sure if this was ever practically getting hit, but was potentially a bug waiting to happen :thinking:
[dagger/dagger] Pull request opened: #10608 ui: fix error hoisting logic and `UNSET` status handling
Currently there are two issues that lead to bubbling up errors beneath the connect span:
- The error hoisting logic should only continue through
UNSETspans when we're beneath a failed path - The
connectspan, and all other spans usingtelemetry.End, has anUNSETstatus - they should haveOK
UNSETshould only correspond to baredefer span.End()usage where the intent is to measure duration without having any impact on success/failure status
Cache hit on withMountedSecret with different secret values in parallel execution
Description
When using withMountedSecret in parallel goroutines with different secret values but the same secret name, the cache appears to return the same secret content for all containers, even though different values were set. This leads to incorrect secret mounting where all containers get the same secret value instead of their intended unique values.
Expected behavior
Each container should mou...
This test was failing because the expected error message wasn't being displayed. So now the TUI will display the error message if the origin of the error isn't being shown.
As far as I can tell, this only adds the internal capability of the httpAuthUsername to the general code, but not the general capability of reading it from git, right?
I am trying to clone private repositories in GitLab with the CI_JOB_TOKEN (I don't want to create a long-lived SSH key), with the following .gitlab-ci.yaml example
.dagger:
extends: [.docker]
before_script:
- apk add curl
- curl -fsSL https://dl.dagger.io/dagger/install.sh | DAGGER_COMMIT=head BI...
See https://github.com/dagger/dagger/pull/10605#issuecomment-2985933172 where this was reported first.
With #10605 we introduced Git.httpAuthUsername; however, during refactoring, the part where the username was passed on from the credential helper was accidentally removed. This PR adds it back.
During testing, I encountered the following error:
failed to resolve git src: failed to resolve git src: select: select: failed to compute cache key for Query.git: assign input "httpAu...
Right now --progress=report effectively forces -v, which was probably done for the test suite. But we can just pass -v to the test suite instead.
What is the issue?
When using Dagger in gitlab-ci the pipeline succeeds even if the steps fail.
For example we push the alpine container to a registry. It returns success even if it fail to push the container.
Dagger version
dagger v0.18.9 (docker-image://registry.dagger.io/engine:v0.18.9) linux/amd64
Steps to reproduce
- Deploy a Kubernetes Executor
- Create a dagger pipeline to push an image to private registry.
- call the pipeline in gitlab ci without specifying the ...
Telemetry allows to communicate all information about the execution of a workflow. This is the way to communicate calls to other modules for instance.
Those information will be rendered in both the CLI and Dagger cloud.
The telemetry layer has not been yet implemented in the Java SDK.
Example
To better understand the issue, let's take an example using two modules, one in Go (with the telemetry integration) and one in Java (without telemetry)
Both are using a [de...
Is there any way to mount an extra volume into the engine to stash outside of regular caching rules?
What is the issue?
Hi Dagger,
I found your courtesy of o3, asking about how to enable agents to actually build for our stack.
Please make your testimonials on home page clickable. I'd like to read them, but they scroll out of view.
Another big carve-out from persistent cache work, this change:
- Generalizes
dagql.Instanceto be able to wrap any type (whereas previously it could only wrap objects)- Additionally, there are now two types:
dagql.Instanceanddagql.ObjectInstance(which is adagql.Instanceplus some more object-specific methods) - Partially to support this, these types are now type-param'd Interfaces rather than just structs
- Additionally, there are now two types:
- Does some refa...
[dagger/dagger] Pull request opened: #10621 chore(deps): bump the docs group in /docs with 2 updates
Bumps the docs group in /docs with 2 updates: posthog-js and typedoc-plugin-markdown.
Updates posthog-js from 1.252.1 to 1.255.1
Release notes
Sourced from posthog-js's releases.
1.255.1 - 2025-06-20
chore: new survey config (#2031)
split configuration and fix react linting (#2028)
1.255.0 - 2025-06-18
feat: enhance campaign parameter retrieval f...
Bumps the engine group with 4 updates in the / directory: github.com/99designs/gqlgen, github.com/dagger/testctx, github.com/openai/openai-go and google.golang.org/genai.
Bumps the engine group with 1 update in the /sdk/go directory: github.com/99designs/gqlgen.
Updates github.com/99designs/gqlgen...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Updates astral-sh/ruff from 0.11.13 to 0.12.0
Release notes
Sourced from astral-sh/ruff's releases.
0.12.0
Release Notes
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
Detection of more syntax errors
Ruff now detects version-related syntax errors, such as the use of the match
statement on Python versions ...
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it- `@dependabot ...
[!NOTE]
This needs to be merged after #10584
In the meantime, only the last commits flaggedsdk/javaare really for this PR, the others are from the base branch.
This is the java implementation of the new moduleTypeDefs defined in #10584
This is done by splitting the entry point in two parts, one to register types, on to invoke functions.
This split, at least on the codegen aspect, is interesting even without moduleTypeDefs as it makes responsibilities clearer.
Fixes the failing publish job on main.
Seems to be something weird happening in edge with aws-cli, and the version of prompt_toolkit that it's using.
What is the issue?
I have created a dagger function to build a go project. It simply executes go mod download and go build -o ... in a container basically. If the function is used to compile the own dagger project, locally everything is fine but in a CI environment, regardless of GitHub or GitLab, the build fails. This can also reproduced if not the own go code is compiled, but another project (still with the same error).
Link to demo repo: https://github.com/daniel-naegele/dagger-d...
Bumps the sdk-elixir group in /sdk/elixir with 1 update: req.
Updates req from 0.5.10 to 0.5.12
Changelog
Sourced from req's changelog.
v0.5.12 (2025-06-24)
[run_plug]: Do not raise on unknown content types.
[Req.Test]: Improve Req.Test.transport_error/2 error message.
v0.5.11 (2025-06-23)
[encode_body]: Fix leading newline before multipart body.
[run_finch]: Handle initial transport errors on into: :self.
[run_plug]: Automatically parse r...
Bumps the engine group with 1 update in the / directory: github.com/openai/openai-go.
Updates github.com/openai/openai-go from 1.6.0 to 1.7.0
Release notes
Sourced from github.com/openai/openai-go's releases.
v1.7.0
1.7.0 (2025-06-23)
Full Changelog: v1.6.0...v1.7.0
Features
api: make model and inputs not required to create response (19f0b76)
api: update api shapes for usage and code interpreter (d24d42c)
client: add escape hatch for null slice &am...
Bumps the sdk-typescript group in /sdk/typescript with 3 updates: @typescript-eslint/eslint-plugin, @typescript-eslint/parser and typescript-eslint.
Updates @typescript-eslint/eslint-plugin from 8.34.1 to 8.35.0
Release not...
Update TS SDK to support enum/value feature introduced by #9518.
Handle serialization through metadata with an external function generated in client.
Handle deserialization inside client gen with an function generated in client.
Add tests for enum generation
Signed-off-by: Tom Chauveau
Reverts https://github.com/dagger/dagger/pull/10599.
Yeah something is pretty dreadfully wrong here. Will properly investigate, but wanna get main green again.
See a failed trace: https://dagger.cloud/dagger/traces/8d0c91263b13a3e0b54c636e6bb9af1a
Adds new verbiage and intro page.
See the saga in:
Making a note of this for later, need to work out what's going wrong ๐ค
What is the issue?
Given the following code:
type Test struct {
Test string
}
func (m *Dagger) Test(test Test) {}
Running test test in the Dagger interactive shell results in:
โ test test 0.0s ERROR
! query:
query{dagger{test(test:"test")}}
error: parse selections: parse field "test": init arg "test" value as core.DynamicID (DaggerTestID!) using core.DynamicID: decode "DaggerTest" ID: failed to unmarshal proto: proto:ย cannot parse invalid wire-
format data
```...
The fact that these are happening concurrently is a little smelly, but we should at least avoid the deadlock.
What is the issue?
With v0.18.10 it was possible to pass the string values of an Enum type with the CLI. With v0.18.11 this appears to be broken. Furthermore, values shown in --help text are inconsistent and unclear to users, making it difficult to determine which values to use. No breaking change that would explain this behavior is mentioned in the v0.18.11 release notes. I therefore expect this to be a bug rather than intended behavior.
Dagger version
dagger v0.18.11 (docker-im...
For some reason Wolfi has been occasionally publishing APKINDEX files where the latest version of ld-linux specifies a hard dependency on an exact version of glibc which is not present in the APKINDEX yet. It goes away within an hour usually, but it's frustrating in the meantime to not be able to build the engine obviously.
For now, attempting to resolve this by just specifying glibc, ld-linux and libcrypt1 versions that are one minor version ago. I repro'd the problem by manually construc...
Spin off of a spin off https://github.com/dagger/dagger/pull/10620, just noticed this while working on that PR and is a pretty nice+easy time save for TestContainer.
These were consuming silly amounts of CPU and memory because they kept recompiling the same test code. Deduping more seems to shave ~2m off TestContainer in CI (based on one run so far).
Follow-up to #9518.
OrbStack will by default automatically put a CA cert in containers,
including the dagger engine if the user is running on MacOS w/ OrbStack.
This results in the engine seeing a custom CA cert and deciding to
automatically install it in every container. While this works it
introduces performance overhead for a case that is unlikely to be of any
utility.
This therefore disables automatic CA cert installation when the only ...
What is the issue?
Container.WithSymlink seems to silently pass when attempting to overwrite an existing but broken symlink. This has caused me some headache while debugging.
Container.WithSymlink correctly errors out if you try to overwrite an already existing but working symlink.
Perhaps there should be added an extra field to ContainerWithSymlinkOpts that allows for overriding any existing symlinks?
...
It visualises and explains the first three (3) Dagger Engine metrics:
- dagger_connected_clients
- dagger_local_cache_entries
- dagger_local_cache_total_disk_size_bytes
To use this, run:
dagger -m github.com/dagger/dagger/modules/metrics call run up
Then open up Grafana in your browser: http://localhost:3000 (default user is admin & pass is also admin...
They served their purpose, and are no longer needed.
Fixes a regression from https://github.com/dagger/dagger/pull/10594 where the +default value itself has a +, which was getting parsed incorrectly and resulting in panics like:
9 : โ โ โ [0.5s] | internal error during module code generation: runtime error: slice bounds out of range [50:28]
9 : โ โ โ [0.5s] | goroutine 1 [running]:
9 : โ โ โ [0.5s] | runtime/debug.Stack()
9 : โ โ โ [0.5s] | /usr/lib/go/src/runtime/debug/stack.go:26 +0x5e
9 : โ โ โ [0.5s] | runtime/debug...
What happened? What did you expect to happen?
Problem:
I have been trying to make an AI agent following the guides on the website and https://github.com/kpenfound/agents/blob/main/go-coder/main.go
Building it using the go sdk.
What I find quite difficult to understand is that when the agent calls a function say BashExec in the workspace, to update the workspace state i need to return the workspace (*Workspace), but to let the agent see the output of the bash call i need to return (st...
Bumps the sdk-typescript group with 9 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @types/node | 24.0.3 |
24.0.7 |
| @typescript-eslint/eslint-plugin | 8.34.1 |
8.35.0 |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parse... |
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it- `@dependabot ...
Bumps the sdk-java group in /sdk/java with 1 update: org.junit:junit-bom.
Updates org.junit:junit-bom from 5.13.1 to 5.13.2
Release notes
Sourced from org.junit:junit-bom's releases.
JUnit 5.13.2 = Platform 1.13.2 + Jupiter 5.13.2 + Vintage 5.13.2
See Release Notes.
Full Changelog: https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2
Commits
e51deb2 Release 5.13.2
d4fc834 Merge commit from fork
deb3e7c Avoid reportin...
Bumps the docs group in /docs with 1 update: typedoc.
Updates typedoc from 0.28.5 to 0.28.7
Release notes
Sourced from typedoc's releases.
v0.28.7
Features
Introduced the @sortStrategy tag to override the sort option on a specific reflection, #2965.
Bug Fixes
Classes and functions exported with export { type X } are no longer missing comments, #2970.
Setting locale to an unknown value will now cause TypeDoc to operate in English instead of a de...
Fixes https://github.com/dagger/dagger/issues/8025.
This adds a new Container.load API, which accepts a name and exports the image to the host's container store. It's similar in style to how Export works, which exports a tarball to the host. Bikeshedding welcome!
TODO:
- [ ]
Container.loadAPI - [ ] Automatic store discovery (when not available from driver)
- [ ] Containerd store loading
- [ ] Cleanup
What is the issue?
Summary
The generated file sdk/src/dagger/client/gen.py has syntax errors if a dependency module written in Go has a default directive containing spaces, e.g. //+default="foo bar".
If this is not a bug an update to relevant documentation would be helpful, such as default values.
Description
A python module depends on another module written in Go.
The Go module includes the following directive in t...
If WithSymlink was called on an existing symlink, it would incorrectly resolve that symlink rather than returning an error.
For example:
WithSymlink("target", "symlink").
WithSymlink("newtarget", "symlink").
would incorrectly produce:
symlink -> target
target -> newtarget
When the second WithSymlink was called, containerdfs.RootPath would first resolve target to symlink prior to making the the underlying os.Symlink("target", "newtarget") syscall.
This f...
Current behavior:
I have an engine running that is version v0.18.9
I have just upgraded my CLI to version v0.18.10
Default behavior:
When I run something with the CLI, like dagger functions, the CLI will kill the v0.18.9 engine, start up a v0.18.10 engine, connect to it, and run my command
Leave old engine
If I set DAGGER_LEAVE_OLD_ENGINE=1 in my environment first, the CLI will start a new v0.18.10 engine for my session, but it will not delete the v0.18.9 e...
We have preliminary docs here https://docs.dagger.io/ci/integrations/apple-container/
but there are a lot of improvements to be made to make the DX of using https://github.com/apple/container great with Dagger.
Some of these are more general for all container runtime alternatives to docker such as nerdctl and podman.
Some of these will be specific to container.
You can help by listing any bugs, friction, or weirdness you experience.
Unknowns:
- how well does local content-addresse...
What is the issue?
Current Behavior
When using defaultPath in shell commands, the directory is re-evaluated on each command execution within the shell session. This differs from passing the directory explicitly, where it's evaluated once
and cached.
Example
Given a function with:
// +optional
// +defaultPath="/"
// +ignore=["build"]
source *dagger.Directory,
This causes duplicate execution:
dagger shell <<'EOM'
result=$(test)
$result ...
https://docs.dagger.io/api/chaining#export-directories-files-and-containers
https://github.com/dagger/dagger/blame/14ff07af8b91c091e1f1e7afbf0e01316142f8ca/docs/current_docs/api/chaining.mdx#L217-L219
โผ github.com/kpenfound/dagger-modules/golang@v0.2.1 |
build ./cmd/dagger --source=https://github.com/dagger/dagger |
export ./my-build 0.0s ERROR r jump โด
โฐโโ export 0.0s ERROR r jump โด
! input: golang.build failed to stat file /out: process "go build -o /out/ ./cmd/dagger" did not co...
What is the issue?
dagger session destroy command is stuck. I can't stop it with Ctrl-C.
Dagger version
dagger v0.18.12 (docker-image://registry.dagger.io/engine:v0.18.12) linux/amd64
Steps to reproduce
Exit dagger shell with exit and run the above command.
Log output
Not sure where the logs are...
...and other little fixes.
@sipsma points out that this is a code smell: https://github.com/dagger/dagger/blob/14ff07af8b91c091e1f1e7afbf0e01316142f8ca/core/schema/container.go#L918
Reaching into and modifying the instance isn't a great practice, and will become impossible in https://github.com/dagger/dagger/pull/10620. However, we don't really need to be returning instances directly from dagop, there's no hard dependency, so we can simplify some of the code here.
The other little ...
This was getting incredible difficult to context-load into my head, especially when adding new attachables with similar struct names.
By splitting them up, we simplify what's actually going on - this also mimics how buildkit does this.
#10577 fixes a bug with returning lists of types, ideally I would like to add some tests for this.
This is where I'd want to add some tests: dagger/core/integration/module_php_test.go
It would look similar to each of those tests which call functions from here: [dagger/core/integration/testdata/modules/php/list-kind/src/ListKind.php](https://github.com/dagger/dagger/...
Fixes: https://github.com/dagger/dagger/issues/10546
- Use native Deno fetch instead of NodeFetch when creating a GraphQL client
- Upgrade Deno runtime to latest 2.4.0
See https://github.com/dagger/dagger/issues/10546#issuecomment-3027288130 for explanations of that changes
What is the issue?
I have a module which creates a symlink over a file which already exists. I've been using a small helper function to call ln -sf to create the symlink, but decided to move to using the WithSymlink introduced recently. Understandably, calling it raises the following error:
! symlink /dev/stdout /var/lib/dagger/worker/cachemounts/buildkit3966597304/var/log/nginx/access.log: file exists
I don't necessarily expect the default behaviour to override the file, b...
Encountered one of these in the wild, and realized our secret translation could not handle an optional secret!
Today, we only really officially support the docker runtime for auto-starting the dagger engine.
Ideally though, we should support more, to name a few:
- [ ] Containerd (for
nerdctl,finch, etc). - [ ] Apple's
container. - [ ]
podman
These should all support {driver}-container and {driver}-image to support all the scenarios we support with docker today.
[!IMPORTANT]
All of the problems with garbage collectio...
Raised by @marcosnils on Discord: #general message
Fixed by correctly awaiting sdk.shutdown and closing telemetry when an error is thrown since the process is exiting early meaning it's not properly closed by the connection finaly logic.
This wasn't very generic, and was really only for http. We can just call with the internal args there.
FYI @alexcb
Signed-off-by: Marcos Lilljedahl
Various work around the codegen binary with as main purpose to split codegen CLI into 2 subcommand: generate-module & generate-client
This PR also include the following changes:
- Clean up overall codegen binary architecture (will improve it more with follow ups PRs)
- Split up arguments to match the commands
- Move some functions to different location to improve maintainability
Context
I belong to a team that manages CI/CD pipelines for a company. We will start to use dagger to manage our pipelines.
We currently develop several dagger modulen and we use python sdk to develop them :
- we have one module which allows to call our custom CLI to interact with a lot of package manager (JFrog CLI like).
- And we also have modules to manage CI/CD workflow for differents package manager :
- npm
- maven
- python
- ...
- Each of these modules use the CL...
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it- `@dependabot ...
Bumps the docs group with 2 updates in the /docs directory: posthog-js and typedoc.
Updates posthog-js from 1.255.1 to 1.256.2
Release notes
Sourced from posthog-js's releases.
1.256.2 - 2025-07-04
fix: Fix backwards compatibility (#2074)
feat: Sdk spec gen (#2029)
Fix CHANGELOG.md (#2068)
1.256.1 - 2025-07-02
fix survey input color on dark backgrounds (#2071)
1.256.0 - 2025-06-30
feat: push replay and...
Bumps the sdk-elixir group in /sdk/elixir with 1 update: req.
Updates req from 0.5.12 to 0.5.14
Changelog
Sourced from req's changelog.
v0.5.14 (2025-07-02)
[run_plug]: Remove warning about into: fun with {:halt, acc} result.
The warning never been particularly useful because it's not like users
can do anything about it.
v0.5.13 (2025-07-02)
[run_plug]: Ease transition to automatically parsing request body.
Since v0.5.11, this code:
plug = fn co...
Problem
Our docs used to have a page for secrets management. It appears to have been renamed to "security" and mixed with "sandboxing" which is unrelated.
Solution
Either revert the "security" page to talk about secrets specifically, or delete it altogether.
This is a POC of one piece of #10370, specifically default arguments.
It's very rudimentary and does not build. For now, just a raw vibe-coding session vomited by Claude code.
This fixes a bug where with-symlink would panic when attempting to get a reference to a scratch container.
Fixes #1390229838836662323 message
The general VCS path regex pattern was failing to match repository URLs containing tilde characters, which are commonly used in systems like Bitbucket Server for user-scoped repositories (e.g., /scm/~username/).
Root cause: The regex character class [A-Za-z0-9_.-/] in the general syntax pattern explicitly enumerated allowed characters but omitted the tilde (~), causing RepoRootForImportPath to...
Summary
Private package authentication in Dagger requires different approaches across SDKs. All SDKs support git-based packages via SSH authentication, which works well for packages hosted in git repositories. However, for packages in private registries: the Go SDK relies on SSH workarounds, the Python SDK requires embedding credentials in URLs (security concern), and the TypeScript SDK has no support at all. We have an opportunity to provide a unified, secure authentication mechanism tha...
What is the issue?
Problem
Reported by a discord user here: https://discord.com/channels/707636530424053791/1389911301047844977
Given the following pipeline:
package main
import (
"context"
"dagger/dagger-debug/internal/dagger"
)
type Result struct {
Report *dagger.Directory
ExitCode int
}
type DaggerDebug struct{}
// Works as expected
func (m *DaggerDebug) Test(ctx context.Context) *Result {
return &Result{
Report: dag.Directory().WithNewFi...
[dagger/dagger] Pull request opened: #10697 POC: inject default secret in current module constructor
This is a first POC for designing the much-requested "default secrets" feature, as part of #10370 .
In this POC, a default secret will be injected if the following conditions are true:
- A top-level module is loaded (with
dagger -mor implicitly from the current directory) - That module has a constructor
- That constructor has an argument called
token - That argument is of type
Secret
If all the above is true, then that argument is modified to have a new default value: the...
this was causing the deeper error to be hidden, don't think the effect is intended
before:
after:
not really sure if we need that passthrough flag either, but leaving that one alone since it's at least not harmful (besides the extra noise)