#github-feed
1 messages ยท Page 10 of 1
Bumps @opentelemetry/sdk-metrics from 1.23.0 to 1.24.0.
Release notes
Sourced from @โopentelemetry/sdk-metrics's releases.
v1.24.0
1.24.0
:rocket: (Enhancement)
feat(sdk-trace-base): log resource attributes in ConsoleSpanExporter #4605 @โpichlermarc
feat(propagator-aws-xray): moved AWS Xray propagator from contrib 4603 @โmartinkuba
feat(resources): new experimental detector ServiceInstanceIdDetectorSync that sets the value for service.i...
Bumps tar from 6.2.1 to 7.0.1.
Changelog
Sourced from tar's changelog.
Changelog
7.0
Rewrite in TypeScript, provide ESM and CommonJS hybrid
interface
Add tree-shake friendly exports, like import('tar/create')
and import('tar/read-entry') to get individual functions or
classes.
Add chmod option that defaults to false, and deprecate
noChmod. That is, reverse the default option regarding
explicitly setting file system modes to match tar entry
settings.
Ad...
Bumps @opentelemetry/semantic-conventions from 1.23.0 to 1.24.0.
Release notes
Sourced from @โopentelemetry/semantic-conventions's releases.
v1.24.0
1.24.0
:rocket: (Enhancement)
feat(sdk-trace-base): log resource attributes in ConsoleSpanExporter #4605 @โpichlermarc
feat(propagator-aws-xray): moved AWS Xray propagator from contrib 4603 @โmartinkuba
feat(resources): new experimental detector ServiceInstanceIdDetectorSync that sets the v...
Bumps docutils from 0.20.1 to 0.21.2.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can ...
Bumps sphinx from 7.2.6 to 7.3.7.
Release notes
Sourced from sphinx's releases.
Sphinx 7.3.7
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.3.6
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.3.5
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.3.4
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphinx 7.3.3
Changelog: https://www.sphinx-doc.org/en/master/changes.html
Sphin...
Bumps grpcio from 1.62.1 to 1.63.0.
Release notes
Sourced from grpcio's releases.
Release v1.63.0
This is release 1.63.0 (giggle) of gRPC Core.
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
[Deps] Backport: Protobuf upgrade to v26.1. (#36353)
[OTel C++] Add experimental optional locality label available to client per-attempt metrics....
Bumps pluggy from 1.4.0 to 1.5.0.
Changelog
Sourced from pluggy's changelog.
pluggy 1.5.0 (2024-04-19)
Features
#178 <https://github.com/pytest-dev/pluggy/issues/178>_: Add support for deprecating specific hook parameters, or more generally, for issuing a warning whenever a hook implementation requests certain parameters.
See :ref:warn_on_impl for details.
Bug Fixes
[#481](https://github.co...
Bumps mypy from 1.9.0 to 1.10.0.
Changelog
Sourced from mypy's changelog.
Mypy Release Notes
Next release
Mypy 1.10
Weโve just uploaded mypy 1.10 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Support TypeIs (PEP 742)
My...
Bumps go.opentelemetry.io/otel/trace from 1.24.0 to 1.26.0.
Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.
[1.26.0/0.48.0/0.2.0-alpha] 2024-04-24
Added
Add Recorder in go.opentelemetry.io/otel/log/logtest to facilitate testing the log bridge implementations. (#5134)
Add span flags to OTLP spans and links exported by go.opentelemetry.io/otel/exporters/otlp/otlptrace. (#5194)
Make the initial alpha release of go.opente...
Bumps golang.org/x/sync from 0.6.0 to 0.7.0.
Commits
14be23e semaphore: cancel acquisition with a done context
See full diff in compare view
Bumps go.opentelemetry.io/otel/sdk from 1.24.0 to 1.26.0.
Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.
[1.26.0/0.48.0/0.2.0-alpha] 2024-04-24
Added
Add Recorder in go.opentelemetry.io/otel/log/logtest to facilitate testing the log bridge implementations. (#5134)
Add span flags to OTLP spans and links exported by go.opentelemetry.io/otel/exporters/otlp/otlptrace. (#5194)
Make the initial alpha release of go.openteleme...
Bumps google.golang.org/grpc from 1.62.1 to 1.63.2.
Release notes
Sourced from google.golang.org/grpc's releases.
Release 1.63.2
Bugs
Fix the user agent string
Release 1.63.1
Bugs
grpc: fixed subchannel log messages to properly reference the parent channel (#7101)
Special thanks: @โdaniel-weisse
API Changes
grpc: remove Deprecated tag from Dial and DialContext; these will be deprecated in v1.64 instead (#7103)
Release 1.63.0
Behavior Changes
grpc...
Bumps go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.24.0 to 1.26.0.
Changelog
Sourced from go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc's changelog.
[1.26.0/0.48.0/0.2.0-alpha] 2024-04-24
Added
Add Recorder in go.opentelemetry.io/otel/log/logtest to facilitate testing the log bridge implementations. (#5134)
Add span flags to OTLP spans and links exported by go.opentelemetry.io/otel/exporters/o...
Bumps smallrye-graphql.version from 2.7.0 to 2.8.3.
Updates io.smallrye:smallrye-graphql-client-api from 2.7.0 to 2.8.3
Updates io.smallrye:smallrye-graphql-client-implementation-vertx from 2.7.0 to 2.8.3
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...
Bumps google.golang.org/grpc from 1.62.1 to 1.63.2.
Release notes
Sourced from google.golang.org/grpc's releases.
Release 1.63.2
Bugs
Fix the user agent string
Release 1.63.1
Bugs
grpc: fixed subchannel log messages to properly reference the parent channel (#7101)
Special thanks: @โdaniel-weisse
API Changes
grpc: remove Deprecated tag from Dial and DialContext; these will be deprecated in v1.64 instead (#7103)
Release 1.63.0
Behavior Changes
grpc...
Bumps github.com/charmbracelet/lipgloss from 0.9.1 to 0.10.0.
Release notes
Sourced from github.com/charmbracelet/lipgloss's releases.
v0.10.0
String Transforms ๐
Lip Gloss v0.10.0 features a brand new Transform function for Styles to alter strings at render time. As well as some bug fixes, like ANSI-aware table cell truncation. ๐งน
Simply define a Transform function as func (string) string and apply it to any style:
// Example:
s := NewStyle().Tra...
Bumps github.com/containerd/containerd from 1.7.15-0.20240329193453-0dcf21c1528a to 1.7.15.
Release notes
Sourced from github.com/containerd/containerd's releases.
containerd 1.7.15
Welcome to the v1.7.15 release of containerd!
The fifteenth patch release for containerd 1.7 contains various fixes; one for a
regression introduced in v1.7.14 in the way process exits were handled.
Highlights
Adds mediatype to OCI index record on export (#9990)
Runt...
Bumps github.com/docker/cli from 26.0.0-rc1+incompatible to 26.1.1+incompatible.
Commits
4cf5afa Merge pull request #5047 from vvoland/v26.1-5038
6c2b06d Merge pull request #5045 from vvoland/vendor-docker-26.1.1-dev
1c6a8ec cli-plugins: PluginRunCommand: use cmd.Environ instead of os.Environ
6d1c387 vendor: github.com/docker/docker ac2de55998d4 (v26.1.1)
1e6db5d Merge pull request #5044 from vvoland/wait-cancel-noerror
840016e waitExitOrRemoved: Handle cont...
Bumps go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.24.0 to 1.26.0.
Changelog
Sourced from go.opentelemetry.io/otel/exporters/otlp/otlptrace's changelog.
[1.26.0/0.48.0/0.2.0-alpha] 2024-04-24
Added
Add Recorder in go.opentelemetry.io/otel/log/logtest to facilitate testing the log bridge implementations. (#5134)
Add span flags to OTLP spans and links exported by go.opentelemetry.io/otel/exporters/otlp/otlptrace. (#5194)
Make ...
Adds support for standard proxy settings (HTTP_PROXY, HTTPS_PROXY, NO_PROXY, ALL_PROXY, FTP_PROXY) being passed transparently to containers from the system.
The support itself is very easy via the new custom executor setup.
Integ tests are much more complicated, though kind of fun. I have integ tests working for HTTP_PROXY and HTTPS_PROXY, using a squid proxy service and nested engine with a binding to it, but they are a bit of a mess right now.
Draft pending:
- [ ] ...
With this typo, the yaml file was invalid and so the config failed to be applied.
I finally found where you can check the validity of a dependabot config - see https://github.com/dagger/dagger/network/updates.
Important updates:
- Buildkit: https://github.com/moby/buildkit/compare/dc23e43dc15c14dcf1871f8cc97a6e96c8f94a2e...51d85d712fad213cd10ac362b18c0a5aab909923
- No major features/bug fixes that should affect us
- Fsutil: https://github.com/moby/buildkit/compare/dc23e43dc15c14dcf1871f8cc97a6e96c8f94a2e...51d85d712fad213cd10ac362b18c0a5aab909923
- A fix for hardlinks uploads
- gRPC: https://github.com/grpc/grpc-go/compare/v1.62.1...v1.63.2
This PR replaces:
What is the issue?
We've seen that since bumping to 0.11 + some of our containers are facing out of memory issues. Currently our dagger engines sit at around 7GB of memory, when before 0.11 they were at 2GB. It continues to climp until kubernetes choses to preempty the pods.
We initially saw it because quite a few barebones debian:12.5-slim execs with apt-get update + apt-get install -y ca-certificates gave a 137 exit code.
Which from what I could gather is when buildkit sends a ...
We use a StringSlice for process args, so we actually hit this branch pretty often. Here's a quick and dirty attempt at handling the cases that we can handle.
One of the action items discussed in https://github.com/dagger/dagger/pull/7107#issuecomment-2061525961
Append [required] to flags that are marked as required. As proposed by Helder, this follows the behavior of Typer: https://typer.tiangolo.com/tutorial/options/required/
Bumps the sdk-java group in /sdk/java with 8 updates:
| Package | From | To |
|---|---|---|
| io.smallrye:smallrye-graphql-client-api | 2.7.0 |
2.8.3 |
| io.smallrye:smallrye-graphql-client-implementation-vertx | 2.7.0 |
2.8.3 |
| org.apache.commons:commons-lang3 | 3.13.0 |
3.14.0 |
| org.apache.commons:commons-compress | 1.24.0 |
1.26.1 |
| org.mockito:mockito-core | 5.10.0 |
5.11.0 |
| [org.codehaus.mojo:exec-maven-plugin](htt... |
Bumps the sdk-go group in /sdk/go with 5 updates:
| Package | From | To |
|---|---|---|
| go.opentelemetry.io/otel | 1.24.0 |
1.26.0 |
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc | 1.24.0 |
1.26.0 |
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp | 1.24.0 |
1.26.0 |
| [go.ope... |
Bumps the sdk-typescript group in /sdk/typescript with 7 updates:
| Package | From | To |
|---|---|---|
| @opentelemetry/sdk-metrics | 1.23.0 |
1.24.0 |
| @opentelemetry/semantic-conventions | 1.23.0 |
1.24.0 |
| node-color-log | 11.0.2 |
12.0.0 |
| tar | 6.2.1 |
7.0.1 |
| [@typ... |
Bumps the engine group with 31 updates:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.45 |
| github.com/a-h/templ | 0.2.543 |
0.2.663 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.1 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [github.com/containernet... |
Bleh, I broke this in https://github.com/dagger/dagger/pull/7234.
Goreleaser needs this :(
Bumps the sdk-python group with 3 updates in the /sdk/python directory: docutils, importlib-metadata and protobuf.
Updates docutils from 0.20.1 to 0.21.2
Updates importlib-metadata from 7.0.0 to 7.1.0
Changelog
Sourced from importlib-metadata's changelog.
v7.1.0
Features
python/cpython#114664
Bugfixes
Make MetadataPathFinder.find_distributions a classmet...
Silenced output when creating/updating the requirements.lock file. Since we create lots of modules in our test suite this adds a lot to logs because of all the hashes.
Example (before, โ 450 lines):
exec uv pip compile --generate-hashes -o requirements.lock sdk/pyproject.toml pyproject.toml
1 Resolved 34 packages in 931ms
2 # This file was autogenerated by uv via the following command:
3 # uv pip compile --generate-hashes -o requirements.lock sdk/pyproject.toml pyproject.toml...
Reverts dagger/dagger#6845 given that seems like it triggers some edge cases that we haven't spotted and we don't seem to have a better option for now
Fixes #7137.
With the changes as part of #6835 (in v0.11.0), all old TUIs were removed, including the old --progress=plain output. With #7069 (in v0.11.1), a limited version of the plain TUI was restored. However, as noted in https://github.com/dagger/dagger/issues/7137#issuecomment-2090450408 and https://github.com/dagger/dagger/pull/7223#issuecomment-2090499541, this new plain progress has issues - it only reports spans that have logs, and loses a lot of additional information.
This...
What is the issue?
After writing to a temp mount in a container, the mounted directory shows up as empty, but there is no error indicating that the command writing to the mount fails.
When opening up a terminal in the same container, it works.
Dagger version
dagger v0.11.2 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
return dag.Container().From("alpine").
WithUser("root").
WithMountedTemp("/root/foo").
WithExec([]string{"sh", "-c", "echo baz...
The API has Container.WithSecretVariable but no Container.WithoutSecretVariable. This means the only way to clear a secret is to put a new blank one in the same variable name.
What are you trying to do?
Allow customizing how function names are translated into commands.
For example:
// +command=e2e
func (m *Ci) E2e() {
// ...
}
Why is this important to you?
Function names are often translated to weird commands. For example E2e becomes e-2-e.
How are you currently working around this?
I call my end-to-end test function Etoe. ๐
What is the issue?
I have a go module with a weird name with single dotted characters in it (e.g. "m.a.s.h"). I was running through the setup script when I encountered a weird error, "unable to find main object". I determined this error only occurs when there are single-dotted characters in the name field of dagger.json. I suspect the culprit is a mismatch between the arguments informing the [generated go struct name](https://github.com/dagger/dagger/blob/1bc2cffabc80e614afea9dc0155a0...
The XDG_DATA_HOME env var can be empty (expectedly), and it breaks the printed bash completion setup instructions. This little PR makes the install script use the default $HOME/.local/share location when the XDG_DATA_HOME is empty. See https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html
What is the issue?
Here is an excerpt from the install.sh run on my server(s):
dagger has built-in shell completion. This is how you can install it for:
BASH:
1. Ensure that you install bash-completion using your package manager.
2. Add dagger completion to your personal bash completions dir
mkdir -p /bash-completion/completions
dagger completion bash > /bash-completion/completions/dagger
Notice how `mkdir -p /bash-completion/completio...
Just a doc string update, but something odd is happening when I run ./hack/make sdk:elixir:generate locally:
โ DaggerElixirSdk.generate: Directory! 11.8s
! call function "Generate": process "/runtime" did not complete successfully: exit code: 2
โ marshal: json: error calling MarshalJSON for type *dagger.Directory: input: container.from.withWorkdir.withDirectory.withExec.withExec.withExec.withServiceBinding.withEnvVariable.withMountedFile.withEnvVariable.withExec.withMountedSecret.wi...
What is the issue?
The command
dagger -m github.com/shykes/daggerverse/wolfi@v0.1.2 call container --packages=python3 terminal
fails with Error: sending initial size: get terminal size: The handle is invalid.
Dagger version
dagger v0.11.2 (registry.dagger.io/engine) windows/amd64
Steps to reproduce
I have create an azure windows 11 vm with docker desktop installed.
I follow the install docs, I install powershell 7.4.2 and I execute
Invoke-WebRequest...
Upgrading the Erlang/OTP to fix Erlang
https://github.com/erlang/otp/issues/8238 bug.
What is the issue?
Since v0.11.2 was shipped I have found that TypeScript Dagger Modules and Functions will fail to run, with the following error thrown in the logs: TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"
The best hypothesis I could drum up is that this error was introduced after this PR merged in on Friday:
Follow up to:
Part of:
What changed?
- Removed
COMMANDSfrom the list of subcommands heading, in favor of justFUNCTIONS. - Added
[arguments]and `` to the usage line when appropriate. - Flags created for function arguments are split into its own
ARGUMENTSsection. So constructor arguments will now appear separately from callโs own flags.
Before
After
Every section was indented except for the examples.
Follow up to:
Part of:
Before
After
Bumps the engine group with 29 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.45 |
| github.com/a-h/templ | 0.2.543 |
0.2.663 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.1 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [gith... |
Bumps the sdk-typescript group with 7 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @opentelemetry/sdk-metrics | 1.23.0 |
1.24.0 |
| @opentelemetry/semantic-conventions | 1.23.0 |
1.24.0 |
| node-color-log | 11.0.2 |
12.0.0 |
| tar | 6.2.1 |
`7.... |
Bumps the sdk-python group with 5 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| babel | 2.14.0 |
2.15.0 |
| docutils | 0.20.1 |
0.21.2 |
| importlib-metadata | 7.0.0 |
7.1.0 |
| protobuf | 4.25.3 |
5.26.1 |
| pygments | 2.17.2 |
... |
[!WARNING]
This is a breaking change! ๐ฅDeprecation path not possible. May want to hold merge until we decide which release this goes in.
Fixes https://github.com/dagger/dagger/issues/6961
Brings more consistency. We made contents mandatory in Directory.withNewFile but not in Container.withNewFile:
We really want these bug fixes for the next release but they are still in PR upstream, so we made a fork of buildkit in the dagger org and I cherry-picked those fixes.
- This fork is only intended to be used on temporary bases for situations like this where we want bug fixes but upstream hasn't updated yet. Not intended to be used for any long term divergence.
The upstream PRs with cherry-picked commits are:
We collected this output but didn't actually put it in the error message, which left us with only an exit code to debug with.
Now the actual output is there, which is much more useful.
always resolves to the target image platform to set the Container
platform
Signed-off-by: Marcos Lilljedahl
Bumps the engine group with 28 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.45 |
| github.com/a-h/templ | 0.2.543 |
0.2.680 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.1 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [gith... |
This commit adds a cookbook with sample code for common use cases.
In addition to making sure that all the module runtimes are being properly linted, this also ensures that the go.mods are kept up to date!
This is important, so that we don't see these go.mods not reflecting the state of reality (see the report in https://github.com/dagger/dagger/issues/7284, which mis-identifies the source of the issue - the dependency in question was always being installed, but the go.mod wasn't accurately reflecting that).
What is the issue?
Hit this in sdk:typescript:test https://github.com/dagger/dagger/actions/runs/8986965799/job/24684341907?pr=7296#step:5:6492
Also:
cc @TomChv
Dagger version
dagger v0.11.2 (registry.dagger.io/engine) linux/amd64
Steps to reproduce
Not sure how to reproduce, but I've seen our CI hit it a few times. Will comment when we hit it again.
Log output
[NotAwaitedRequestError.txt](https://github.com/dagger/dagger/files/15237078/NotAwaitedRequestE...
Fixed a few things:
- Moved the typescript changelogs into the typescript
.changes - Fixed the author on a PR that would have linked to the wrong github user
- Added missing changelogs for #7227 and #7298
Uses ts.stdout instead of ts.stdin to get terminal size.
Fixes #7282
In engine:dev mage task, append .exe to exported cli file when OS is Windows.
The fix for leaking goroutines was fixed, so rebased our temp fork on upstream with that.
Also, it was noticed that the fix for edge merging actually does need the more complicated solution that includes adding jobs to all ancestor states; there was a panic when the solver walked provenance without that.
So this also now points to the (still pending upstream) commit with that fix.
Bumps the engine group with 27 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.46 |
| github.com/a-h/templ | 0.2.543 |
0.2.680 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.1 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [gith... |
What is the issue?
Users are reporting intermittent errors where dagger starts to fail with this error:
cannot use proxySpan{โฆ} (value of type proxySpan)
Dagger version
dagger v0.11.2 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
No response
Log output
โ initialize 2.4s
! input: module.withSource.initialize resolve: failed to initialize module: failed to call module "ci" to get functions: call constructor: process "go build -o /runtime ." did...
Another part of the effort to support https://github.com/dagger/dagger/pull/6916 while also doing general cruft cleanup and setup for various upcoming efforts.
Deeply WIP still, but main goal is to fix the current knots tied between BuildkitController, DaggerServer, BuildkitClient, Query, dagql.Server, ClientCall-related stuff, etc. in order to make the whole system more comprehensible and make it easy to manage/isolate state (both now and going forward).
There's quite a bit...
[!WARNING]
The goal of the PR is to easily test a new setup were nodes requiring dind run on separate infra. It should be reviewed nor merged
This PR was auto-generated.
Signed-off-by: Justin Chadwell
Found in https://github.com/dagger/dagger/actions/runs/9003172745/job/24733214096?pr=7319.
Attempting to call a function like:
// Verify that the engine builds without actually publishing anything
func (e *Engine) TestPublish(
ctx context.Context,
// +optional
platform []Platform,
) error {
Causes a panic:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0xf6108d]
gor...
- moved
telemetry/graphql.gotocore/telemetry.goso it can integrate withQueryto get necessary module metadata dagger.io/dag.digest.stableis a Call's 'stable digest'. This digest can be used to compare performance of the same Call across different inputs over time. This calculation involves simply recursing through a call and removing any embedded Calls passed as arguments.dagger.io/dag.caller.typeindicates whether the span comes from a direct user call, a call from a mo...
Fixes https://github.com/dagger/dagger/issues/7320.
Also added tests for this. cc @TomChv the typescript tests I added seem to fail, with:
$ dagger --progress=plain call --source=. test custom --race=true --pkg=./core/integration --run=TestModuleScalarType/typescript
...
module_test.go:2989:
Error Trace: /app/core/integration/module_test.go:2989
Error: Received unexpected error:
input: container.from.withMountedFile.withWorkdi...
Yay - somehow, https://github.com/dagger/dagger/pull/7111 wasn't entirely right - the git version in alpine 3.18 is too old, and git fetch --porcelain isn't supported. However, in alpine 3.19, the version is new enough, and this new flag works.
See https://github.com/dagger/dagger/actions/runs/9003172745/job/24733214096?pr=7319#step:4:71.
14:06:47 WRN failed to fetch branch err="error fetching branch from origin: exit status 129\nerror: unknown option `porcelain'\nusage: git fetch ...
What is the issue?
As far as I can tell we don't have any documentation describing the contents of dagger.json.
We should have a section in the docs that talks about the file, what it contains by default, and what additional parameters are available.
The biggest point of friction for newcomers is there is a way to exclude files and dirs via dagger.json that is undocumented. So for projects with large directories (that are not required for the actual build) it can cause significan...
This commit revises the quickstart to use an example application and build a pipeline for it by writing bespoke Dagger Functions.
Also see https://github.com/dagger/dagger/pull/7196 and https://github.com/dagger/dagger/pull/7275
The TS SDK was very subtly broken when used from a git ref due to the fact that the Directory.diff logic was way too fragile (has existed since the beginning of time). This fixes that logic and updates the TS SDK to be slightly simpler now that it doesn't need to try to avoid that fragility.
Individual commits have more detailed messages.
We also need to add integ tests that use SDKs other than go sourced from git refs. Starting the effort now, will send out a separate PR if t...
While in theory SDKs should be agnostic of whether module source is
coming from git, local dirs, etc. a very subtle issue arose recently
that broke TS modules only when sourced from Git (related to
Directory.diff path handling).
That would have been caught by coverage of those SDKs used from git,
so adding tests here. Verified that tests pass with ./hack/dev but the
TS one fails if run direct against v0.11.3, so it's working as intended.
Related: https://github.com/dagger/...
We probably want Publish Engine & CLI to re-use _hack_make. The main benefit of doing that is that we control the dagger version being used in a single place and trigger all jobs with the same logic. However, we can to unblock jobs from main quickly since we deleted the legacy CI and now no jobs can be execute.
This was causing errors on main and in PRs: https://github.com/dagger/dagger/actions/runs/9008181567/job/24749649865?pr=7330#step:5:502
Couldn't have caught it because the docs PRs (correctly) don't trigger engine tests, but I think the way the engine tests run result in an error if there's a compilation problem on any Go packages in the whole repo, which includes the docs since we have all those go examples.
- There's definitely some room for improvement here, but want to fix this to unb...
What is the issue?
Failed to connect; retrying... make request: Post "http://dagger/query": rpc error: code = Unknown desc = failed to verify client: client ID "***" registered with different secret token
Dagger version
dagger v0.11.3 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
No response
Log output
No response
A few releases ago, client IDs were changed to be digests of the dagql.CurrentID in order to remove the number fields in our ftp_proxy hack and to consolidate client ID w/ module caller digest.
This is not entirely working as expected though (detailed below). Fortunately the new custom worker gives us a non-hacky path to set whatever IDs we want in containers without worrying about cache busting or the various problems caused by the ftp_proxy hack, which has been gone entirely as of last r...
When OTEL support was added, module functions were updated to set env vars with the OTEL traceparent values. These values appear to be random every time a function is invoked, even if coming from the same caller and making the call with the same inputs, etc.
That resulted in them busting the Buildkit cache every time.
Fortunately, most of the time the dagql cache within the context of a session prevented this from being noticeable, but in the case where dagql IDs were impure (which prev...
Fixes the issue described in #7323 (that wasn't the right fix though, since this occurs on a client - so we don't control the git version).
The --porcelain flag is very nice, but unfortunately, it's not present on older git versions. Since the client git version isn't controlled or managed by us, we should try and play nice with it, and not use any
features that are too new.
In this new approach, we create a new "refs/dagger/..." ref, and then update that (to avoid making changes to ...
Bumps the engine group with 25 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.46 |
| github.com/a-h/templ | 0.2.543 |
0.2.680 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.2 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [gith... |
What is the issue?
While reviewing:
I've hit the following issue:
โ Directory.withNewFile(contents: "some-content", path: ETOOBIG:sha256:b28cf6ece37f09c81b0f005953eeee586b4d2a60af4317de1cd461dc6ae74f80): Directory! 0.0s
! File name length exceeds the maximum supported 255 characters
I am able to hit this consistently on NixOS 24.05 with Docker 24.05 cc @vito @matipan @sipsma ? This now explains the behaviour...
What are you trying to do?
Automate/make dependency updates easier.
Dependency update strategies:
- Update one dependency because I need something from a newer version:
dagger install github.com/...
- Update all dependencies to latest (due to Dagger engine compatibility or because I just want to update everything to the latest version):
Ideal solution:
dagger install -u
Why is this important to you?
No response
How are you currentl...
What are you trying to do?
Do not auto-publish the following modules to Daggerverse:
- Dev/test modules
- Untagged modules
- Project (application) modules
- Modules intended as a demo/bug reproduction
- Forks of modules
In my particular case:
This PR was auto-generated.
Signed-off-by: Justin Chadwell
Discovered during #7272, when trying to make sense of some of the output.
Before, the context was not being propagated, so when loaded, all CLI args would be associated with the root, instead of under the initialize span (where it makes a lot more sense).
Before:
โฏ dagger call -vv --source=. version string
โ connect 0.9s
โ starting session 0.2s
โ OK!
โ initialize 7.9s
โ ModuleSource.resolveFromCaller: ModuleSource! 0.1s
โ ModuleSource.asModule: Module! 0.1s
...
Introduce a new function to automatic open and close connection after execute a function. Here is an example
Dagger.with_connection(fn client ->
client
|> Dagger.Client.container()
|> Dagger.Container.from("alpine")
|> Dagger.Container.with_exec(~w"echo hello")
|> Dagger.Container.stdout()
end)
|> IO.inspect() # Result: {:ok, "hello\n"}
Cause a linting failure if we generated a .changes file that isn't reflected in the CHANGELOG.md.
This happened because I missed a step during #7342. We can automate it, so this doesn't need to happen again :tada:
:inets requires to start before using the SDK because of :httpc module.
When chaining module functions from the CLI, it appears that the expected DAG concurrency is lost. Here is an example:
package main
import (
"context"
"fmt"
"math/rand"
)
type MyModule struct{}
type Job struct {
*Container
*Directory
Key string
}
type Jobs struct {
Jobs []Job
}
func (r *MyModule) JobGroup(
ctx context.Context,
// +optional
sync bool,
) Jobs {
jobs := Jobs{Jobs: []Job{
r.echoAndSleep(5),
r.echoAndSleep(6),
r.echoAndSl...
[dagger/dagger] Pull request opened: #7355 chore(sdk/typescript): rename typescript sdk runtime name
Found during working on #6967. The name in
sdk/typescript/runtime/dagger.json use PascalCase as a name but other SDK use kebab-case. This commit try renaming it to kebab-case to make it consistent.
A recent commit that changed client IDs to be random again accidentally made it so that commands run to update CA certificates (when a custom engine has those installed) hit errors about client tokens not matching when the exec being run was nested, which includes module function calls.
This was due to the fact that those commands run in the same container with the same client ID but the secret token was generated by the client each time it ran...
What are you trying to do?
Dagger is really good at reading and executing Dockerfiles, but it would be really cool if you could generate a Dockerfile from Dagger as well.
Why is this important to you?
A few users have mentioned that rewriting their Dockerfile in Dagger (which is a good thing) has some downstream consequences. Most critically it breaks existing docker-compose setups.
How are you currently working around this?
No great workaround.
What are you trying to do?
I have a function that creates a secret: https://daggerverse.dev/mod/github.com/sagikazarmark/daggerverse/registry-config@b45dbd7448bb967aca4a538af9ce7f042abf0316#RegistryConfig.secret
The current secret API takes a name at the moment: dag.SetSecret("name", "value").
I'm not sure, but my guess is that name is supposed to be unique (ie. to make sure there is no interference between calls to the same function).
Why is this important to you?
Right no...
Bumps the engine group with 25 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.46 |
| github.com/a-h/templ | 0.2.543 |
0.2.680 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.2 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [gith... |
Bumps the sdk-java group with 8 updates in the /sdk/java directory:
| Package | From | To |
|---|---|---|
| io.smallrye:smallrye-graphql-client-api | 2.7.0 |
2.8.3 |
| io.smallrye:smallrye-graphql-client-implementation-vertx | 2.7.0 |
2.8.3 |
| org.apache.commons:commons-lang3 | 3.13.0 |
3.14.0 |
| org.apache.commons:commons-compress | 1.24.0 |
1.26.1 |
| org.mockito:mockito-core | 5.10.0 |
5.12.0 |
| [org.codehaus.mojo:exec-mav... |
Bumps the sdk-typescript group in /sdk/typescript with 2 updates: execa and graphql-request.
Updates execa from 8.0.1 to 9.0.2
Release notes
Sourced from execa's releases.
v9.0.2
Types (bug fixes)
Do not require using --lib dom for TypeScript users (#1043, #1044)
Fix type of the reject option (#1046)
https://github.com/sindresorhus/execa/compare/v9.0.1...v9.0.2
v9.0.1
Types (bug fixes)
Fix types ...
From https://go.dev/doc/devel/release:
go1.22.3 (released 2024-05-07) includes security fixes to the go command and the net package, as well as bug fixes to the compiler, the runtime, and the net/http package. See the Go 1.22.3 milestone on our issue tracker for details.
Bumps the engine group with 23 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.46 |
| github.com/a-h/templ | 0.2.543 |
0.2.680 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.2 |
| github.com/containerd/containerd | 1.7.15 |
1.7.16 |
| [gith... |
fix: project argument is named source.
dagger call container command output seems to be wrong, running the example following the docs gives a different output.
https://github.com/dagger/dagger/pull/7264 updated to explicitly use go 1.21.7 everywhere.
However - the go releaser version we were using apparently only supports up to 1.21.4 - so we should update it, so that the failing publish job on main can pass: https://github.com/dagger/dagger/actions/runs/9064274083/job/24903799826
This PR gets rid of our shim and migrates all of its functionality to run directly in the engine instead.
Original motivation: as part of the general engine refactoring/cleanup I've been working through I realized we would be able to simplify a lot if we served nested clients (e.g. module functions and nested execs) directly from our executor. Among other things, it would allow us to be more "stateless" and not need to...
What are you trying to do?
I want to add tags when running .AsTarball(), perhaps in ContainerAsTarballOpts
Example usage:
client.Container().From("ubuntu:latest").WithExec([]string{"touch", "/test"}).AsTarball(dagger.ContainerAsTarballOpts{Address:"test:foo"}).Export(context.Background(), "test.tar")
Docker equavalent:
โ git:(stobias/ci-improvements) โ docker build -t tarball_test .
โ git:(stobias/ci-improvements) โ docker tag tarball_test tarball_test:...
What are you trying to do?
Get rid of `` when a function returns a single error.
Why is this important to you?
Generally when you run a CLI tool, no output along with exit 0 means success. That extra `` is just unnecessary. (One might say annoying, but one might risk being called obsessive ๐)
How are you currently working around this?
I look away. ๐
Follow-up to #6835 (found during hackery on #7272)
We used to use the magic [internal] prefix in buildkit vertex names to mark these as internal to the UI. However, we've since updated our TUI and cloud logic to instead pull this information from an OTEL span attribute (which makes much more sense). However, we didn't have a way of connecting buildkit vertices to this attribute.
This wasn't immediately obvious - because of how [our TUI logic doesn't show spans that last longer than 10...
What is the issue?
Moved all code snippets into paths that match the default location on dagger init. This makes it easier to bootstrap a module to test. See https://github.com/dagger/dagger/pull/7340#issuecomment-2110289907
What are you trying to do?
dagger init --sdk go --name module --source .
Why is this important to you?
Go complains about the name Module being redeclared.
How are you currently working around this?
I don't use that name, but I'm guessing other names might be affected too.
What is the issue?
I'm supposed to be able to do this:
dag.Container().WithFile("", file)
dag.Directory().WithFile("", file)
When no path is specified, the file should be mounted in the current directory with it's current name.
Unfortunately, Dagger behaves differently in different scenarios which makes mounting files like this unreliable.
(The unfortunate consequence is every higher level API that allows mounting a file in a lower level container requires a se...
What are you trying to do?
Right now if there is some issue with docker the dagger CLI will continue to try to connect indefinitely. We had a very patient person who waited 56 minutes before giving up. :)
Ideally we either check to make sure docker is going to work, or time out if we are stuck connecting for more than say 5 minutes.
Why is this important to you?
Especially for people new to Dagger this can be a very bad first impression and a very poor DX.
How are you ...
What are you trying to do?
Users have asked for the ability to get files out of Service containers so they can capture test reports, or logs, or other generated files. Currently there is no API.
integration test container cannot be a service if we want to extract files like tests reports at the end of a run. If it was possible to extract files from a service that would also work.
Discord references:
#1239817495309713428 message...
This commit consolidates function documentation from three specific guides to a single version with tabs.
You can preview these docs with this command:
dagger call -m github.com/levlaz/daggerverse/docusaurus serve --src https://github.com/levlaz/dagger#docs-237-convert-functions --dir "src/docs" up
What are you trying to do?
test linear workflow
Why is this important to you?
No response
How are you currently working around this?
No response
A regression was introduced by #6833 and list
of nested object were not supported anymore.
This changes fixes the behaviour by using the correct referenced object when the type of an object property is a list
of object.
What is the issue?
This is because R8 has removed that type from the final APK. Can we provide examples of R8 rules that should accompany with usage of LazyClassKey?
Dagger version
2.51.1
Steps to reproduce
No response
Log output
No response
Follow-up to #7349
This should be "go", not "elixir". Looks like a bad case of copy-pasta.
Continued progress exploration! I just kinda kept pulling on #7375, and kept finding more things to tidy up :tada:
Fixes:
- #7375
This changes a few things about the initial connection:
- Changes timeouts, to provide a sane upper limit on the amount of time allowed to provision an engine, e.g. pulling+starting a docker container (10 minutes)
- Splits up the
connectstep into separate parts - this allows for improved debugability if this step is hanging - we can see exactly which p...
Before this, we would display all the containerd/buildkit spans that relate to pulling an image. These are super unhelpful by default, so we want to hide them in the TUI (unless the parent command errors).
We already have this concept today with telemetry.Encapsulate. However, this is set on the parent (in our case, Container.from), which isn't quite what we want. Firstly, this would silence all output from this function (even if later we would want to add some more useful output of ...
What is the issue?
This was discovered part of:
Somewhat similar to this issue, but different since host had 16CPUs, parallelism was 16:
The CLI will remain stuck and it will need to be manually killed, as mentioned by @jpadams in a private thread. When a timeout is used - [30m in our case](https://github.com/dagger...
What are you trying to do?
Today, there is no way to ask the API for a new file directly. You have to go through Directory.
We got close to seeing this in the past, but it hasn't happened yet.
https://github.com/dagger/dagger/issues/3028
https://github.com/dagger/dagger/issues/3884
Why is this important to you?
Many users have requested this including @sagikazarmark @vito @helderco @jpadams
How are you currently working around this?
myFile := dag.Director...
@vikram-dagger, I'm also thinking we need to document somewhere (not in this PR, of course) how these functions translate to the client versions in dag, and how they differ. Several Go users have been confused by this, especially when a function returns both an error and an object, because the client version doesn't return an error in this case.
_Originally posted by @helderco in https://github.com/dagger/dagger/issues/7379#issuecomment-2112383112_
While debugging https://github.com/dagger/dagger/issues/7387, it would be useful if on a test timeout failure we could send the test dagger engine an explicit SIGQUIT signal to dump a stack trace.
This would make the engine logs a little more helpful, and would allow for a full example to test.
Spinning this out of a private discord discussion [here](#1239760726801776680 message).
We inherit buildkit's default gc policies - which is to try and keep cache usage under 10% of available disk.
This is not actually great for a lot of cases. Here's a few dagger scenarios, and what kind of cache policies w...
dagger terminal sometimes outputs gibberish chars. This happened to Mark during a community call. Will add the video example once it renders.
updated link to community activities since it was broken
Fixes https://github.com/dagger/dagger/issues/6894
This is not an option that we should support. Justin puts it best:
I think with (Dagger) Modules, this effectively means that
`max-parallelism` is pretty much just completely broken - it just fits
very badly with the idea of nested containers.
... but to me this kind of highlights that we need a better way of
constraining resources - max-parallelism is just really not fit for
the shape that pipelines tend ...
Examples:
- Serve current checkout:
dagger call --source=. docs serve up - Serve a PR straight from github:
dagger call --source=https://github.com/dagger/dagger#pull/7382/head docs serve up
Next: make it more like prod
Signed-off-by: Solomon Hykes
Signed-off-by: Jeremy Adams
Signed-off-by: Kyle Penfound
What is the issue?
I have a function with a bool type parameter. When I get --help for this function the docs do not show the type.
I have this parameter defined in go:
// Optional flag to disable cache
// +optional
// +default=false
enableCache bool,
I expect the output to show this:
ARGUMENTS
--src Directory The source directory of your docusaurus site, this can be a local directory or a remote git repo [required]
--ca...
What are you trying to do?
Right now if I want to call --help on a module or function that has some required parameters I need to add those parameters before getting the help output. This is especially painful when using a constructor.
I expect this to work closer to daggerverse.dev where I can inspect everything a module or function can do without needing to think about the inputs.
Why is this important to you?
I think its a much cleaner DX if we decouple --help from executio...
Problem
When I call a function returning a Container, to run that container as a service, I have to run:
dagger call as-service up
That is 2 extra functions in the chain, which is cumbersome. It's common to write a wrapper function that returns a Service, for the sole purpose of typing:
dagger call up
But now I have to maintain one more function, with another name. It's also cumbersome and feels unnecessary.
Solution
Implement...
In dagger call --help thereโs three groups of flags:
- Module constructor arguments
callspecific flags- Global flags
Example:
ARGUMENTS
--source Directory [required]
--host-docker-config Secret
--version string
OPTIONS
--json Present result as JSON
-m, --mod string Path to dagger.json config file for the module or a directory containing that file.
Either local path (e.g. "/path/to/some/...
What are you trying to do?
I'm trying to use a literal type in order to have better typing in my dagger code.
I have a field like this on an object.
@field() type: 'head' | 'merge'
However it looks like the code-gen doesn't seem to support this as when I try to run the dagger module, I get
Error: query module objects: returned error 400 Bad Request: failed to get schema introspection JSON: introspection query failed: input: __schema.types[75].fields[2].t...
What are you trying to do?
While trying to get around https://github.com/dagger/dagger/issues/7401, I tried to keep the @field as a string, but then just type a custom property.
@object()
export class MergeRequestReference {
@field() _iid: string
@field() _type: string
constructor(iid: string, type: 'head' | 'merge') {
this._iid = iid
this._type = type
}
get iid() {
return this._iid
}
get type() {
return this._type
}
}...
Noticed this while testing on windows, if I try to do dagger call --source Z:\\fooo ... the CLI thinks that Z is a file and \\fooo is a directory view name.
Added Kyle's demo to the integration page as an additional resource.
What are you trying to do?
fs.FS is a common interface for filesystems in Go. Copying files from an FS currently requires authors to walk through the filesystems and add the files into the Directory. (For example, as in here, and described here) A built-in conversion function can simplify this process.
Why ...
Bumps the engine group with 26 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.46 |
| github.com/a-h/templ | 0.2.543 |
0.2.680 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.2 |
| github.com/containerd/containerd | 1.7.15 |
1.7.17 |
| [gith... |
What is the issue?
I have a module that has 1 constructor argument and a run function. When I call dagger functions, the command treat constructor arg as a function.
Dagger version
0.11.4
Steps to reproduce
Use the module from https://github.com/wingyplus/daggerverse/tree/main/earthly. Then run dagger functions. You will see both function and constructor arg listed like the screenshot below:

Behavior Changes
codec: Remove handling of environment variable GRPC_GO_ADVERTISE_COMPRESSORS to suppress setting s...
--parallel now defaults to the number of CPUs. Before, this was hard-coded to 16 which was set the number of CPUs in the larger GitHub Runners, the ubuntu-22.04-16c-64g-600gb instance size specifically. If this new default value does not work well on the larger CI runners (they have 48CPUs & we run multiple pipelines on them at the same time), we can specify this value explicitly in the workflows.
--timeout defaults to 30m. This was changed not that long ago - the value was set t...
Fixes https://github.com/dagger/dagger/issues/7398
The --help flag is now global (interspersed). So the help will no longer be shown next to the command where itโs defined if thereโs more to the right. Itโs position in the chain no longer matters, it will be the same as adding it to the end. This was needed to look ahead and skip some validations while that flag wasnโt parsed yet, and while it was possible to preserve the previous behavior, making it global seems more consistent with CLI...
Fixes https://github.com/dagger/dagger/issues/6608
Most common reason for not being able to call a function is unsupported flags, but if there's unsupported return types as well, they should be added too.
This change excludes functions with any unsupported flag, however, maybe itโs best to do it only for required flags, and keep the function but skip adding the optional arguments that arenโt supported.
First working draft of multi SCM support.
Currently only works on public VCS repo, as well as public vanity URL relying on the go-get vanity URL logic from Go.
TODO
- [ ] More detailed history of https://github.com/grouville/go-vcs when merging
- [ ] Improve error messages: on init, install, call, functions -> add ++++ integration tests
- [ ] Add vanity URL test by changing
dagger.io/daggerredirect (side PR) - [ ] Add
vcsToBuildKitReflogic in core/schema/git` to handle s...
Fixes https://github.com/dagger/dagger/issues/6515
This removes sync as a default selection for commands ending in a Container, Directory or File.
What is the issue?
This dagger call check failed:
If you look carefully at all the workflows, you will notice that they all succeeded. The last time that this happened, re-triggering the workflow fixed it: https://github.com/dagger/dagger/pull/7407#issuecomment-2119253346
In this case - https://github.com/dagger/dagger/pull/7416 - that didn't work.
https://dagger.cloud/dagger/traces/d2a10b407f509e3a0cb119c9f7d97a7b
Is there a different workaround that we could use for t...
Problem
The Service API is powerful, but confusing - especially to beginners.
Service.start()starts a service, but you're not supposed to use it, except in a niche use case.Service.up()also starts a service, but differently - only to expose ports to the client's network, and should only be called in the CLI. If you call from a Dagger Function, it will expose ports on the function container's network.Service.stop()stops a service, but you're not supposed to use it, ...
Follow-up on:
This adjusts for conventions adopted in:
- #7170
- #7143
Problem
Dagger has great caching, but Dagger Functions don't fully benefit from it, because their runtime containers are not cached.
This has several consequences:
- Functions that perform compute-intensive work themselves, via native code, are most affected: they are re-run each time, adding a major performance penalty.
- Functions that are not compute-intensive (the majority) are less affected, but still pay a small performance tax at each execution, because of the overhead o...
What is the issue?
dagger's practice of using __init__.py to hold dagger scripts beyond simple imports flies in face of python convention. The documentation and templates should be revised to indicate that dagger does not in fact require or recommend this, and users are free to place their code in another file and import it in __init__.py so long as it is in a package called "main"
[Discord discussion](#python message...
This proposal is an alternative to #7199. The problem is the same, but the proposed solution is different.
Problem
There are two types of Dagger modules: those that are standalone software projects, and those that exist in the context of another software project. Let's call those standalone modules and contextual modules, respectively.
Dagger is designed to support both, which is good, but causes friction for users in some areas.
- Contextual modules almost always need ac...
What are you trying to do?
A user reported that they were surprised to see us using a non-LTS version of Node in our Typescript SDK.
We should consider pinning our TypeScript SDK to the LTS version of node as we approach "dagger 1.0"
Why is this important to you?
Since we expect people to adopt this SDK in their production pipelines, I think we will have a lot less issues long term if we stick to a stable version of node. Node's own documentation recommends using only LTS ...
This PR adds the Builds section to the cookbook and provides the first example that shows how to make multi-stage builds.
If applied, this commit fixes a typo in the help text for the dagger develop command.
Fixes #7391
This started as just adding a new signals enum, and allowing it to be attached to stop. However, I realized - not every signal should necessarily cause a process to terminate, so we should also probably have a way of signalling a process, without waiting for that to happen. So I also added a new signal method.
Bumps the sdk-typescript group with 8 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @lifeomic/axios-fetch | 3.0.1 |
3.1.0 |
| execa | 8.0.1 |
9.1.0 |
| graphql-request | 6.1.0 |
7.0.1 |
| @eslint/js | 9.2.0 |
9.3.0 |
| [@typescript-eslint/eslint-p... |
What is the issue?
This is the first time that I'm seeing this in our CI, wanted to flag it up:
dagger call --source=.:default --host-docker-config=file:/home/runner/.docker/config.json engine container export --path=./bin/engine.tar --forced-compression=Gzip
panic: runtime error: slice bounds out of range [:77] with capacity 64
goroutine 1[19](https://github.com/dagger/dagger/actions/runs/9186832417/job/25263267560#step:4:20) [running]:
bytes.(*Buffer).grow(0xc00041b...
Fixes https://github.com/dagger/dagger/pull/7096#issuecomment-2125073758 issue by enabling corepack and setting yarn version to v4 in our provision tests
What are you trying to do?
In Erlang/OTP 27, they introduced a json module for encode/decode json. It would be great if we make support by default.
Why is this important to you?
No response
How are you currently working around this?
No response
Changed the default install path from $env:HOMEPATH to $env:USERPROFILE as this includes the drive. Currently when calling the install script on the D: drive the transfer from the temp directory to the install path fails. This is not reported as an error and the install script appears to have worked correctly. This is because $env:HOMEPATH does not include the drive in the path. Changing this to $env:USERPROFILE has the same path but the path includes the drive, this fixes the issue.
What is the issue?
Custom values that are stored in a @field do not have their prototype chain preserved.
This leads to unexpected behaviour, especially since objects need to be created as a class with @object in order to be serialized at all.
Dagger version
dagger v0.11.4 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
I created a very simple module, that just passes a custom object between two modules.
@object()
class RootModule {
...
Adding based on discussion at #1239191997005303869 message
normalizeCallerLoadedSource function can segfault if withContextDirectory returns an error, as we do not check for the returned error on the withContextDirectory call.
The following dagql calls can be executed: on the dagger init, for example, the withName gets called on my tests, and trigger the segfault.
It is currently never triggered, as there are two potential edge cases in which we return an error on withContextDirectory:
- when the modulesourcekind is not local
- ...
- Adopt upstream logging SDK (still WIP -
otelloggrpcis a noop for example) - De-duplicate
github.com/dagger/dagger/telemetryandsdk/go/telemetry(no longerinternal/)dagger.io/dagger/telemetryis now the place where we centralize OTel setup across the Dagger CLI, engine, and SDKs.
- Fix integration test suite OTel integration - now we'll have one span per
connect(t), and one span will show up beneath them- [ ] Unfortunately
testutil.Querycall sites won't. Maybe w...
- [ ] Unfortunately
use errors.New to replace fmt.Errorf with no parameters.
This commit adds the matrix build subsection to the builds portion of the cookbook.
What is the issue?
Fields in a module or custom type get listed as functions.
This is true at least for Go, have not tried others.
This is also true when using module constructors.
Dagger version
dagger v0.11.4 (registry.dagger.io/engine) linux/amd64
Steps to reproduce
I have a simple example here: https://github.com/MikaelElkiaer/daggerverse/blob/main/testing.go, from which I can run:
dagger --mod github.com/mikaelelkiaer/daggerverse call testing --help
...
Current test suite breaks because of an missing go.mod in docs/current_docs/manuals/developer/cookbook/snippets/builds/multi-stage-build, breaking the imports.
Break was introduced with https://github.com/dagger/dagger/commit/4e99699ebb430e01919c13a830a92793499338ab, and was not tested as the test suite was not running the important tests
Instead of just closing it immediately. This could potentially result in the child process crashing with "broken pipe" if it accidentally wrote to this file descriptor.
This is a weird edge case discovered as part of investigating https://github.com/jedevc/dagger/tree/fix-weird-stall/examples/sdk/go/repro. This could have occurred if any primary output was detected during progress rendering: https://github.com/dagger/dagger/blob/24d1dcbc591c3d29c8d9ca12ea7cbd893cf14d55/dagql/idtui/frontend...
- PR tests fail after #7454 because the new matrix-build snippet doesn't bring its own
go.mod, so the first commit fixes that. - The second commit removes all generated code, which I'm pretty sure we want, but I'm not sure if anything breaks from it. Putting up a quick PR to see if it's OK.
- std/go: Go toolchain in a Dagger module
- std/graphql: GraphQL toolchain in a Dagger module
We have a concept of directory "views" for filtering the contents of a directory, to avoid uploading its entire contents. A view can passed explicitly to the CLI with PATH[:VIEW]. For example dagger call build --source .:default. But there is no way to configure a view to be used by default.
| command | view used today | view used in proposal |
|---|---|---|
dagger call build --source .:foo |
foo โ
|
foo |
dagger call build --source . |
none โ | default if it exists,... |
During the course of development/testing of the
go snippet, files like the go.mod, go.sum, etc
were committed, but aren't needed as snippets.
Introduced in a commit as part of
https://github.com/dagger/dagger/pull/7021
What is the issue?
The project depends on rs/cors v1.10.0. Unfortunately, rs/cors (v1.9.0 through v1.10.1) presents a risk of denial of service.
The bug was fixed in rs/cors v1.11.0. Either update to rs...
Exploring how object prototypes should play into the typescript sdk
Problem
Today Dagger is split in two components - a CLI and an OCI image - which are built and packaged separately, but should not be.
These components are tightly coupled: they are only usable together; must be upgraded together; the communication protocol between them is private and undocumented; and the functional boundary between them is not settled. The only reason for packaging them separately is that it's easier for us. But the price we (and our users) pay elsewhere may not be...
This is a long-overdue update of the style guide.
Bumps the sdk-java group in /sdk/java with 2 updates: org.assertj:assertj-core and org.codehaus.mojo:exec-maven-plugin.
Updates org.assertj:assertj-core from 3.25.0 to 3.26.0
Release notes
Sourced from org.assertj:assertj-core's releases.
v.3.26.0
:boom: Breaking Changes
Core
Delegate OptionalDouble value comparison to Double.compare in hasValue assertion #3411
This fixes the comparison of NaN value...
Bumps the engine group with 26 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.47 |
| github.com/a-h/templ | 0.2.543 |
0.2.707 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.3 |
| github.com/charmbracelet/lipgloss | 0.10.0 |
0.11.0 |
| [gi... |
Bumps the sdk-python group with 10 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| anyio | 4.3.0 |
4.4.0 |
| babel | 2.14.0 |
2.15.0 |
| docutils | 0.20.1 |
0.21.2 |
| grpcio | 1.63.0 |
1.64.0 |
| importlib-metadata | 7.0.0 |
7.1.0 |
| [protobuf]... |
Bumps the sdk-go group with 3 updates in the /sdk/go directory: go.opentelemetry.io/otel, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc and go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp.
Updates go.opentelemetry.io/otel from 1.26.0 to 1.27.0
Changelog
Sourced from go.opentelemetry.io/otel's cha...
Follow up to #7272, specifically going to aim to correct some of @vito's comments in https://github.com/dagger/dagger/pull/7272#pullrequestreview-2071794451.
Improvements
- Don't skip displaying fast top-level progress rows, this was resulting in quick steps like
File.exportat the end from sometimes not displaying. - ...
Add interface support to the TypeScript SDK
Fixes #7446 by loading the object as class if it exist inside the module.
If an object exists inside the module, it loads the class by calling his constructor so now public methods can be called inside the module.
Follow-up to:
Core objects
At minimum this produces a debug level log for core functions, to reduce noise:
User objects
For module functions, itโs raised as a warning to make it more visible to module authors:
dagger functions
In dagger functions, since itโs just listing functions, itโs shown in faded color at the end of the output:
Considerations
When listing functions with dagger call and wit...
This PR is an attempt to fixe #7433, if the CI is green, we can merge it, otherwise I'll dig into what breaking change happens with this new version.
This PR was auto-generated.
Regression from #7349
[dagger/dagger] Pull request opened: #7486 fix: ensure we filter buildkit http spans from publishing
Reported by @nipuna-perera on [discord](#daggernauts message):
Ok now I'm definitely on 0.11.5, but I am still seeing the HTTP spans when doing a Publish. Did that get missed?
We just need to make sure that we apply our magical telemetry context to the export steps as well, which I just missed.
Before:
โฏ dagge...
This ordering issue caused a couple of issues:
- Error messages indicated telemetry issues, when actually the engine wasn't connected to properly.
- The
retrylogic has exponential backoff that isn't capped - whereasnewBuildkitClientuses buildkit'sWaitwhich has a more reasonable default of retrying every second until a connection is established (which was our previous behavior before we added this telemetry).
This is a fairly likely cause of the issue that @marcosnils was see...
What is the issue?
We shipped the ability to use views to filter directories a few weeks ago, but as far as I can tell this PR did not include any additional documentation on how this works. https://github.com/dagger/dagger/pull/6857/files
This is a powerful part of the CLI and has a chance to significantly improve performance and overall DX so we should be sure to include this in our docs.
What is the issue?
While using the kube-pod scheme in the _EXPERIMENTAL_DAGGER_RUNNER_HOST variable, if kubectl is not present where the dagger CLI is running, the CLI will just keep trying to connect to the engine indefinitely.
ref: https://discord.com/channels/707636530424053791/1245072471481385051
My assumption is that we're not handling this specific error upon connection and we're probably retrying indefinitely as part of the backoff retry connection strategy .
D...
When we removed mage, we removed the easy helpers that allowed generating/linting/etc on all SDKs. That meant that making API changes became much more fiddly.
This patch restores the "all" group, but this time directly in the dagger module. One day, we might remove this with a script, but we don't have that right now.
Very minimal attempt at a PHP runtime for module support.
To the best of my knowledge, the go part of this PR is complete & working.
Outstanding is to write the PHP code to
- Create a module entry point
- Scan the user module src directory for dagger functions
- Retrieve the call information from the dagger engine
- Dispatch the call to the detected function
- Return the result the the dagger engine
In this PR, I do:
- Move code template from EEx to iodata. I tried the EEx way for sometime but it's quite hard to modify the template when the logic get complicated. The iodata is quite a bit easier to read and easier to change the logic.
- Add more unit tests, I use a library called
mnemeto do snapshot testing the code instead of adding assertion by hand. The tests aren't cover all the case but the important cases (object renderer) are most cover. We can add it more later. - Reduce...
In v0.11.5, I've started seeing this hanging for some reason. However, CI continues to pass.
Not entirely sure what the cause is, but in the meantime, we should unblock being able to run these parts of our CI locally.
Context
First PR of a serie, splitting the implementation of https://github.com/dagger/dagger/pull/7420, in a cleaner way.
This one imports the codebase from https://github.com/grouville/go-vcs directly into our codebase for ease/maintainability purposes.
First commit
The first commit is Google's https://pkg.go.dev/golang.org/x/tools/go/vcs#RepoRootForImportPath filtered-history squashed into one, with all the context:
This commit adds a forked / improved version o...
dumb-init was accidentally always being built for the host platform, which meant if it was built on an x86 host the published arm64 image would incorrectly be x86.
This fixes that and also adds general purpose verification of all the binaries we build checking that they are of the expected target platform, to reduce the chances of this happening again.
Tested the verification logic by locally going back to building the dumb-init binary for the host platform and getting an error w...
โ ๏ธ PR still in progress, I'm currently working on the registration system, so I can do the TypeScript registration and then I'll work on the call.
Fixes #6780
Fixes OSS-141
What are you trying to do?
Currently, the TypeScript SDK uses experimental decorators that are considered deprecated. TypeScript has provided support for standard ECMAScript decorators since version 5.0. I would suggest considering the use of standard decorators over the now deprecated experimental decorator implementation which will never be usable from JavaScript and might even get removed from TypeScrip...
Draft pending:
- [ ] test, need to fully grok the situations in which this bug was occurring since it seems to be host dependent
[dagger/dagger] Issue opened: #7503 ๐ git operations don't work if they need to use an http proxy
What is the issue?
If the git operations in the engine require the HTTP_PROXY to be set, they'll not work given that the proxy values are not passed to the underlying git commands executed.
ref: #1244581784080093225 message
cc @sipsma
Dagger version
v0.11.5
Steps to reproduce
Try to perform a dagger call or dagger install of a module that requires a proxy server to be set in order to reach the ta...
Otherwise, operations done by shelling out to git won't honor the proxy values.
The integ test added here runs a pipeline that triggers a git pull and then asserts that the squid proxy logs show a connection to github.com.
What is the issue?
I've been trying to follow the documentation on passing a file via the CLI.
It appears that the file is uploaded, but somehow there is an issue with the file being detected.
Using windows and following the default tutorial for host file access, it does not work on Windows
The weird part with -d is that this file seems to be "uploaded to the engine" fine..
โ upload . from PATRICK-PC (client id: jhyf9iajxjh4gcitjjjlelp1i) (include: C:\Projects\example\...
Before this, file+dir arg values to dagger call on a Windows client were not converted from \ format to / format, which resulted in calls like filepath.Split in the Linux engine container to not work as expected.
Now the CLI calls filepath.ToSlash before sending paths, which helps handle the paths better in the engine container; specifically enough to avoid at least one bug that resulted in the engine trying to find a path at e.g. /C:\Foo\Bar.
To be clear, this is probably n...
This commit adds the multi-arch build example
What is the issue?
Issue:
When running dagger call build --source=. as-service up --ports=8080:80, I encounter a "port not ready" error. The error message indicates that the connection to 8080 is refused.
Steps to reproduce:
- Run dagger call build --source=. as-service up --ports=8080:80
- Observe the "port not ready" error
$ dagger call build --source=. as-service up --ports=8080:80
11:19:49 WRN canceling... (press again to exit immediately)
โ Se...
What is the issue?
When using the Python SDK, many errors during development of functions are surfaced as
โญโ Error โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Failed to unstructure result: unknown error (unhandled errors in a TaskGroup โ
โ (1 sub-exception)) @ main.Common.build โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Turning on debugging doesn't provide anything m...
What is the issue?
The new --plain=progress implementation shiped with v0.11.5 seems to swallow print statements and logs from modules among a lot of helpful debugging information (i.e. the command called).
Dagger version
dagger v0.11.5 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
Take the following example:
import logging
from dagger import function, object_type
from dagger.log import configure_logging
configure_logging(logging.DEBUG)
l...
Branched from https://github.com/dagger/dagger/pull/7496
This PR allows the use of other CIs than GitHub as a ref:
- dagger functions
- dagger install
In order to do it without changing the current logic, we do 2 things:
- Extend parseRefString to actually try to isolate the root of the remote
- Stat / fallback as a local source if not found
At the same time, we introduce a function to split the root and the subdir.
All this logic relies on Google's repoRootForImportPath func...
What is the issue?
I'm adding this issue for tracking purposes.
We ran into networking issues where Dagger Engine deployed with Istio as a sidecar that runs dagger containers caused networking issues where the pods were not able to reach go package registry or npm. Removing istio from the equation resolved the issue.
Dagger version
dagger v0.11.5 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
No response
Log output
No response
What is the issue?
Take following example
SDK_ENTRYPOINT = f"""#!/bin/sh
# Source the environment setup file
. "$(find /sdk -type f -name 'environment-setup-*')"
# Execute CMD
exec "$@"
"""
@object_type
class SdkBuilder:
sdk_entrypoint: str = SDK_ENTRYPOINT
...
Using this module as a dependency generates the following invalid Python code in sdk/src/dagger/client/gen.py:
...
def sdk_builder(self, sdk_entrypoint: str = "#!/bin/s...
What are you trying to do?
From @kpenfound :
What I propose is to have a built in scaffolder/template system to give you a starting module based on a specific template instead of the default
grep-dirandcontainer-echosample. This would be similar to what you can do with rails, react, or other frameworks with scaffolders. Here'screate-react-appfor example https://create-react-app.dev/docs/getting-started/#selecting-a-templateThis might look something like `dagger init ...
TODO:
- [ ] get rid of references to
./hack/make - [ ] clarify
# Update .github/workflows dagger versions $ENGINE_VERSIONand# Update docs/current_docs files to point to new dagger versionsteps- I had to do some careful grepping around (can't prefix with
vto find the docs file, yamls use v0-11-5, etc.)
- I had to do some careful grepping around (can't prefix with
#7096 introduced a regression by using yarn install --production. If the field packagaManager is set, it might lead to failure because yarn post v1.22.11 doesn't support the --production flag anymore, it has been removed in favor of yarn workspaces focus --production.
However, depending on the yarn major version (v2, v3, v4), the options are different but also the results and the way they handle subdependencies.
It seems npm is the only package manager that actually force inst...
TODO:
- [ ] Actually fix, just reproing in integ test so far and sending out so I don't forget about this
- Problem is the engine hits a nil panic due to
dagql.CurrentID()being nil duringQuery.RegisterClient, which is due to the fact that the terminal is being connected to direct over a websocket at that point, not via a gql query - This will also be fixed by https://github.com/dagger/dagger/pull/7315, so if that's merged first then I'll just throw this test in there so we have...
- Problem is the engine hits a nil panic due to
What is the issue?
wrong format of /usr/local/bin/dumb-init
which will break in pure aarch64 host
Dagger version
v0.11.5
Steps to reproduce
docker run ghcr.io/dagger/engine:v0.11.5 in aarch64 host
$ docker cp dagger-engine-f3da0aa799eb2fd3:/usr/local/bin/dumb-init .tmp/dumb-init
$ file ./.tmp/dumb-init
./.tmp/dumb-init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
we could see the dumb-init is x86-64 format
other ...
What is the issue?
Secrets building container in dagger with dockerfile are not available. Lastest working version is v0.9.11
Dagger version
v0.11.6
Steps to reproduce
You can find an example in this repository: https://github.com/Alvise88/dagger-dockerfile-secret-issue
Log output
No response
What is the issue?
When executing dagger develop several times in a row, the content of the dagger.gen.go file varies each time (blocks of code are reordered).
Dagger version
dagger v0.11.6 (registry.dagger.io/engine) linux/amd64
Steps to reproduce
git clone https://github.com/camptocamp/daggerverse.git
cd daggerverse/redhat
dagger develop
mv dagger.gen.go{,.bak}
dagger develop
diff -u --color dagger.gen.go{.bak,}
Log output
Possible output:
---...
- add cross compile examples to build section
- Add Dockerfile examples to build section
Bumps protobufjs from 7.2.4 to 7.3.0.
Release notes
Sourced from protobufjs's releases.
protobufjs: v7.3.0
7.3.0 (2024-05-10)
Features
add handling for extension range options (#1990) (2d58011)
protobufjs: v7.2.6
7.2.6 (2024-01-16)
Bug Fixes
report missing import properly in loadSync (#1960) (af3ff83)
protobufjs: v7.2.5
7.2.5 (2023-08-21)
Bug Fixes
crash in comment parsing (#1890) (eaf9f0a)
deprecation warning for new Buffer (#1905) (e93286e...
Problem
When initializing a new dagger module with the Go SDK, by default no go.mod is created if a parent go.mod already exists. This is not the correct default behavior. It causes confusion, and in some cases can even break development altogether.
As a rule of thumb: by default, my dagger module should be an island. It should work the same regardless of what else is going on in the same repo. If I want my module's behavior to depend on another part of the repo, *that should be ex...
It would be cool if the Go SDK supported embedded another type. For example:
type *SuperDirectory {
*dagger.Directory
}
// Extend the core directory type with an extra function
func (dir *SuperDirectory) Hello() string {
return "world"
}
Since SuperDirectory embeds dagger.Directory, it inherits all the methods of the embedded type. But this embedding does not carry into the corresponding Dagger module. So, even though I can call SuperDirectory.Entries() ...
What is the issue?
A user [reports on Discord](#daggernauts message)
I feel like
dag.HTTP,dag.Gitand any others need more awareness, when you do searching on the docs, i dont think they have a section on any page specifically? So would people assume they need to write something like WGET etc in a container?
Problem
Some OCI image fields can be set by a Dockerfike but are not supported by the Dagger API. For example, healthcheck.
Solution
Add missing functions to the Container type to reach feature parity with Dockerfiles.
What is the issue?
Running an dagger cli command like version, help, or init will produce a warning line like
20:43:08 WRN failed to get repo HEAD err="reference not found"
Dagger version
dagger v0.11.6
Steps to reproduce
test-git-issue โค ls -a
. ..
test-git-issue โค dagger version
dagger v0.11.6 (registry.dagger.io/engine) darwin/arm64
test-git-issue โค git init -q
test-git-issue โค dagger version git...
based on #7452 - sorry for the large diff, wanted a PR up so I can see how it goes in CI
Adds testsctx, a little *testing.T compatible testing library that adds ctx propagation and middleware. Ideally we'd extract it for general use once it's fully baked so Go folks can use it and get pretty OTel integration in Cloud.
Adds the following testctx middleware to our integration test suite:
t.Paralleleverywhere. Non-parallel tests have been adapted to work in parallel. (I t...
Bumps the sdk-typescript group with 11 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @lifeomic/axios-fetch | 3.0.1 |
3.1.0 |
| execa | 8.0.1 |
9.1.0 |
| graphql-request | 6.1.0 |
7.0.1 |
| tar | 7.1.0 |
7.2.0 |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEA... |
Bumps the sdk-python group with 16 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| anyio | 4.3.0 |
4.4.0 |
| opentelemetry-sdk | 1.24.0 |
1.25.0 |
| opentelemetry-exporter-otlp-proto-grpc | 1.24.0 |
1.25.0 |
| babel | 2.14.0 |
2.15.0 |
| [certifi](h... |
Bumps the engine group with 27 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.47 |
| github.com/a-h/templ | 0.2.543 |
0.2.707 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.4 |
| github.com/charmbracelet/lipgloss | 0.10.0 |
0.11.0 |
| [gi... |
Since we're building the flask-app example, we could call the container image that we're publishing flask-app too vs hello-dagger.
The image we build also doesn't really work to the intended purpose when run alone, which could reduce confidence:
docker run -it --rm ttl.sh/hello-dagger@sha256:bb01842ae62045a24fed30437cdb63901581ce83e82043e02131864b76d54716
* Serving Flask app 'app.py'
* Debug mode: off
WARNING: This is a development server. Do not use it in a ...
What are you trying to do?
I want a very easy way to get my IDE/editor set up to do hinting/Intellisense/suggestion for any of the SDKs so I can use the Dagger API most effectively without having to look at a reference doc or try to remember the API and struggle.
Why is this important to you?
While learning Dagger or even as an advanced user, having suggestions or corrections from a language server/IDE is huge so I have a good experience coding in Dagger without making mistakes.
#...
What are you trying to do?
Right now if you don't have a dependency installed or specified in pyproject.toml you get an error that looks like this:
Error: input: module.withSource.initialize resolve: failed to initialize module: failed to call module "nostalgia" to get functions: call constructor: process "/runtime" did not complete successfully: exit code: 1
Stderr:
โญโ Error โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ The "main" module could n...
What is the issue?
Given this python docstring:
"""Apache Avro Tools
This module provides a set of functions to work with Apache Avro Tools.
Shorthand avro tools functions provided by this module are:
- idl2schemata: a helper function to Convert an Avro IDL file to Avro schema files in the provided directory
- idl: a helper function to Convert an Avro IDL file to an Avro schema file
For more advanced usage, you can use the avro-tools function to get a container with...
With our fix https://github.com/moby/buildkit/pull/4887 merged upstream, we can remove usage of our fork, and update moby/buildkit to master.
Fixes #7524 (nice catch @yann-soubeyrand :tada:)
To do this, we lexigraphically sort our case names before creating the switch case. This ensures the same result between runs, which ideally should improve cache consistency as well.
This could have resulted in less-than-optimal caching performance.
This allows installing an arbitrary commit from main, to make it easier to install versions from main for testing.
TODO:
- [ ] Test
install.ps1changes on windows
v0.26.0 shipped today and breaks things for probably not interesting reasons since this is already working around convoluted dependency issues (we're blocked on runc, runc is blocked on Go)
What is the issue?
Dagger does not seem to recognise the ~ on Windows and assumes the current working directory in combination with the ~ rather than being the current users home directory.
Dagger version
dagger v0.11.6 (registry.dagger.io/engine) windows/amd64
Steps to reproduce
I tried various approaches of the following
dagger -m github.com/pjmagee/dagger-heroes-decode@6c672139c5a5d5138ae608cd33af707c45a833c9 call decode --file "~\simple.StormReplay" stdout
...
What is the issue?
We're experiencing transient issues pulling the dagger container:
1: connect ERROR: new client: failed to run container: Unable to find image 'registry.dagger.io/engine:v0.8.8' locally
docker: Error response from daemon: Get "https://registry.dagger.io/v2/engine/manifests/sha256:779fedd2902d251166eefe4fd1f00f71ab74e157b1e736fce4c6615b0fb1b321": net/http: TLS handshake timeout.
See 'docker run --help'.
: exit status 125
Error: new client: failed to run contain...
[dagger/dagger] Pull request opened: #7549 core: reduce module ID size by not including full schemas
Before this, we were passing full introspection schema JSONs as strings as args to non-Go SDKs, which resulted in them being included in the full IDs for non-Go modules.
Those strings got huge and could appear multiple times in a single ID, which inflated their size, and also ended up in progress output (I think the source of ETOOBIG?) + telemetry.
This has been a known issue for a while but not harmful enough to be prioritized for a fix. However, my [other PR](https://github.com/dagg...
Bumps the engine group with 26 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.47 |
| github.com/a-h/templ | 0.2.543 |
0.2.707 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.4 |
| github.com/charmbracelet/lipgloss | 0.10.0 |
0.11.0 |
| [gi... |
@marcosnils raised an issue happening when loading a module as
a subpath of a root directory.
This leaded to an error happening during the diff
failed to diff generated code: select:
cannot diff with different relative paths
This PR fixes that issue by not creating a directory
as generated result code but instead reusing the
codegen dir.
Example now
{
git(url:"github.com/marcosnils/daggerverse") {
branch(name:"main") {
tree {
...
It's already installed.
And also, we should move all our dependency installation out of here, and into previous steps, this is generally a bad practice in the first place.
What are you trying to do?
Right now upgrading modules to newer version is painful, especially because even if you put in the human readable tag version, when you run dagger develop it will be automatically converted to the git commit version instead.
We should allow people to specify tag versions in dagger.json and not have them rewritten to git commits, but we should also consider adding a mechanism similar to go get -u to check for newer versions and be able to apply those aut...
- Remove deprecated 'root' field
- Convert filters on deprecated root, to a view
- Update broken dependency
Note: the module itself still doesn't build
Signed-off-by: Solomon Hykes
What is the issue?
The dagger CLI crashes when trying to export a file in Windows. It looks like exporting a file attempts to do a chown and the CLI complains that this is not supported by Windows.
Dagger version
dagger v0.11.6 (registry.dagger.io/engine) windows/amd64
Steps to reproduce
Here is a simple function that reproduces the error on Windows, the error should happen with any function that tries to return a file.
@function
def get_file(self) -> da...
What is the issue?
The output in the terminal on Windows is very difficult to read because it seems that is is not able to handle the ANSI escape sequences properly. This behavior is the same on powershell and the command prompt.
See this issue for a concrete example but there are many different types of output that cause this.
Dagger version
dagger v0.11.6 (registry.dagger.io/engine) windows/amd64
Steps to reproduce
_No re...
What is the issue?
I thought this was resoled in https://github.com/dagger/dagger/issues/6901 but it seems like there are still issues with the Windows Installation instructions for the Dagger CLI. https://docs.dagger.io/install
I am able to to install just fine with this basic command:
However, if I try to change the path or version I get an error.
Command
$sc...
What is the issue?
coming from: https://discord.com/channels/707636530424053791/1248011149971292331
summary is that if you do a dagger init --sdk go in a large go codebase, the first cold codegen will take an excessive amount of time.
dagger could trace: https://dagger.cloud/marcos-test/traces/a996535073617e245051590c94cbb6e8
Dagger version
v0.11.6
Steps to reproduce...
Revival of https://github.com/dagger/dagger/pull/7323.
This is motivated slightly by some of the issues in https://github.com/dagger/dagger/pull/7554 - running up-to-date software is pretty important.
stopgap fix for #7392. Increasing the GC keep size to more reasonable defaults
so users don't get cache evicted so aggresively.
Signed-off-by: Marcos Lilljedahl
The export function does chown cause Windows crash due to it's unsupported. This commit fixed by skip chown operation when running in Windows.
Fixes #7558
The runtime are not compatible with older dagger. It's need to specify a version in the --sdk option to make works.
Problem
dagger listen generates a token by default. But the token is not printed to the user, so it's impossible to connect.
The only valid way to call dagger listen to day is by explicitly passing the token as an argument.
Solution
Print the full URL (with token) so that dagger listen is usable without arguments.
#7560
- Use [switch] for 'toggle' behaviour
(.\install -Interactive) - Added interactive install (validates paths + some inputs)
- Ensures semver provided is valid + not higher than latest version of dagger
- Ensures the amd64/arm64/armv7 versions are installed by checking the arch of the system
- Optionally adds dagger.exe to the PATH (off by default)
- Correctly tells the user where it's installed with a friendly full path i.e C:\users\patrick\dagger
- Uses github redirect of '/...
What is the issue?
Overview
It appears the updated functionality for dagger login was released, but the Dagger Cloud docs weren't updated. The new feature makes it A LOT easier to use Dagger Cloud from your dev machine.
What changed
Before: You added your Dagger Cloud token as an environment variable to send telemetry to Dagger Cloud from your dev machine.
Now: You can use the dagger login command to connect your dev machine to Dagger Cloud. You can use `dagg...
While debugging something nodejs-related in https://github.com/dagger/dagger/pull/7315 I noticed a bunch of problems with the TS tests and some related areas:
- Fix missing awaits in TS tests that caused accidental parallelism + tidy up env restoration: https://github.com/dagger/dagger/commit/15c43aef428a74dbe9c18d3c08ae2feba1e4a2d6 https://github.com/dagger/dagger/commit/32638a4809cfca968ebacddfb4e2428d9d769fed
- Fix bun image to be multiplatform and upgrade bun version to avoid SIGSEGV/...
tsx pushed a release an hour ago that caused all Typescript modules to break out of band with errors like:
Transforming JavaScript decorators to the configured target environment
("node21.3.0") is not supported yet
It broke out-of-band because our install of tsx was not pinned to any version. I pinned it now to the previous patch release and things work again.
Hopefully there's some better way of pinning this version since it's currently just a direct npm install call and ...
Bumps the engine group with 29 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.48 |
| github.com/a-h/templ | 0.2.543 |
0.2.707 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.4 |
| github.com/charmbracelet/lipgloss | 0.10.0 |
0.11.0 |
| [gi... |
Bumps the sdk-typescript group with 16 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @lifeomic/axios-fetch | 3.0.1 |
3.1.0 |
| @opentelemetry/api | 1.8.0 |
1.9.0 |
| @opentelemetry/exporter-trace-otlp-grpc | 0.51.0 |
0.52.0 |
| [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/... |
Bumps the sdk-python group with 16 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| anyio | 4.3.0 |
4.4.0 |
| opentelemetry-sdk | 1.24.0 |
1.25.0 |
| opentelemetry-exporter-otlp-proto-grpc | 1.24.0 |
1.25.0 |
| babel | 2.14.0 |
2.15.0 |
| [certifi](h... |
Bumps the sdk-go group with 4 updates in the /sdk/go directory: go.opentelemetry.io/otel, go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc and [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go...
Bumps the engine group with 26 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.48 |
| github.com/a-h/templ | 0.2.543 |
0.2.707 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.4 |
| github.com/charmbracelet/lipgloss | 0.10.0 |
0.11.0 |
| [gi... |
This mismatch (caused by git mv) seems to confuse the Buildkit Git source.
The interface documentation shows how to define an interface and use it in arguments. But it doesn't show how to use the interface in the return value. I tried, but it doesn't seem to be possible.
It would be very useful to make this possible.
Example:
type Check interface {
Pass() bool
Details() string
}
type MyCheck struct {}
func (c *MyCheck) Pass() bool {
return true
}
func (c *MyCheck) Details(...
(related PR https://github.com/dagger/dagger/pull/7573, creating an issue for tracking+visibility)
Currently, all typescript modules will fail to run due to a breaking change pushed to tsx (issue), which the typescript SDK did not pin the version of in all previous engine releases.
- If your engine has a local cache of previous typescript SDK calls, it may work for a while until that local cache gets pruned
The error message looks li...
This will allow users to workaround the lack of pinning of tsx in previous engine releases until our next release.
Background: the root cause of https://github.com/dagger/dagger/issues/7583 was lack of pinning deps in the typescript sdk (one of the unpinned ones updated out of band and broke every ts module in all previous engine releases) but it was made much more painful by the fact that we needed to do an engine release in order to fix it rather than just patching the TS SDK.
If we could instead allow users to easily import all of the builtin SDKs as git refs if they want, that would improve this si...
- Use session attachables to pop open terminals from the engine to the
CLI - Reworked the CLI logic to accomodate attachable terminals
- Updated
Container.Terminal()signature to returnContainer - Added
Directory.Terminal()
What is the issue?
We'd like a place in the install docs where we can list alternative installation methods that are not maintained by Dagger, in a way that makes it clear to users what is official/maintained-by-Dagger and what is community-supported.
Possible implementation could look like
I often find myself wanting to run
dagger build
or similar and then I have to go back and add the call. Ideally, this would just work if there was no confusion.
cc @shykes
Bumps the engine group with 26 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.44 |
0.17.48 |
| github.com/a-h/templ | 0.2.543 |
0.2.707 |
| github.com/charmbracelet/bubbletea | 0.25.0 |
0.26.4 |
| github.com/charmbracelet/lipgloss | 0.10.0 |
0.11.0 |
| [gi... |
Bumps the sdk-python group with 17 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| anyio | 4.3.0 |
4.4.0 |
| opentelemetry-sdk | 1.24.0 |
1.25.0 |
| opentelemetry-exporter-otlp-proto-grpc | 1.24.0 |
1.25.0 |
| babel | 2.14.0 |
2.15.0 |
| [certifi](h... |
What is the issue?
Builds are intermittently failing with the following error:
get fn name: returned error 400 Bad Request: {"errors":[{"message":"transport not supported"}],"data":null}
Dagger version
dagger v0.11.6 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
The error occurs intermittently, I don't have a way to reproduce it.
Log output
No response
What is the issue?
I've seen an increase in builds timing out on GitHub Actions recently (~since the beginning of May).
Here is an example: https://github.com/openmeterio/openmeter/actions/runs/9443871398/job/26008370834?pr=984
I don't have a strong lead, but it seems to me that runs generally hang at service executions.
Dagger version
dagger v0.11.6 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
No response
Log output
No response
With https://github.com/dagger/dagger/pull/7031, we have a new mechanism for checking version compatibility.
This method wasn't really used consistently across multiple SDKs, wasn't called by the CLI, and so removing it shouldn't result in a huge loss of functionality with the new versioning compat work. However, this is a breaking change, so putting this on the v0.12 milestone.
Fixes https://github.com/dagger/dagger/issues/7522.
[!WARNING]
No fix currently included, just a test to reproduce the issue.
While we are keeping this default so that we don't break existing users, setting this value is something that we want to move away from.
The problem is that this setting limits how many operations can run in parallel. It is still possible for a single operation to max out all available cores. It is also known for a value of 2 to cause deadlocks, i.e. https://github.com/dagger/dagger/issues/6894
For now, we just allow this to be disabled with either --set engine.args='' or by explici...
We did this with all SDKs in summer 2023:
We should do the same for the Helm chart (it's the only odd one out) and also start a changelog for it. As discussed here:
What is the issue?
I have observed that sometimes when calling Dagger the first time (engine gets started) the connect step takes an excessive amount of time.
ref: #maintainers message
Dagger version
v0.11.6
Steps to reproduce
It's hard to consistently reproduce since it happens sometimes. What I do to repro is removing the engine container and then trying to run
Log output
130|marcos:tmp/lala (ma...
The tsx issue has been fixed so this isn't needed anymore. Worst case if something else pops up this SDK would still be usable by it's git commit ref, so may as well remove it now.
Thanks to https://github.com/privatenumber/tsx/issues/582 being resolved, we can bump tsx to its latest version.
This has been reported to happen intermittently by a few users. The error originates from gqlgen and suggests that something in the http request is unhandled; it basically tries to find a matching pattern for gql requests based on http method and some headers.
It's unclear how this could happen only occasionally and I've never s...
We were previously always putting a random id in the cache volume used for engines created in various CI functions, which meant none of them ever had any local cache. The main reason was that two engines can't use the same local cache at the same time.
We can't lift that limitation, but by using the engine version and private cache mounts we can get best effort re-use of these cache volumes, which is a simple enough performance improvement for some cases that we may as well take it.
Bumps webpack-dev-middleware from 5.3.3 to 5.3.4.
Release notes
Sourced from webpack-dev-middleware's releases.
v5.3.4
5.3.4 (2024-03-20)
Bug Fixes
security: do not allow to read files above (#1779) (189c4ac)
Changelog
Sourced from webpack-dev-middleware's changelog.
5.3.4 (2024-03-20)
Bug Fixes
security: do not allow to read files above (#1779) (189c4ac)
Commits
86071ea chore(release): 5.3.4
189c4ac fix(security): do not allo...
- Standardize on
slogeverywhere that we print output from the engine, instead of "faking" stdout/stderr in places.- Goal:
SpanLoggerno longer leaves ambiguity as to whether caller needs toClose(). It never does. - We will no longer drain to ensure we get every last log, but this was never really an issue, doesn't seem worthwhile atm.
- Goal:
- Rename
telemetry.Logstotelemetry.SpanStdioso its intentions are clearer.- Goal: again, remove ambiguity as to whether caller need...
Ran npm audit fix --audit-level high on directories with package-lock.json containing vuln. This is not considered critical given it's related to code example. But it needs to be done nonetheless.
Bumps rustls from 0.21.10 to 0.21.12.
Commits
3633152 Cargo: v0.21.11 -> v0.21.12
0baaeba proj: MSRV 1.61 -> 1.63
6fd691a tls13: fix clippy::unnecessary_lazy_evaluations finding
6da5337 Test for illegal IP address in server name extension
75f8857 Ignore server_name extension containing IP address
7b8d1db Prepare 0.21.11
ebcb478 complete_io: bail out if progress is impossible
20f35df Regression test for complete_io infinite loop bug
2f2aae1 Don't spe...
When an exec fails due to context canceled, we were dropping the cancelation error and just returning the exec error. I believe this got fat-fingered while updating the code from upstream to use fmt.Errorf instead of github.com/pkg/errors.
It's not clear if this is really meaningful, but noticed it changed while attempting to debug occurances of "exit code 137" in our CI, which plausibly could be related to all of this. It's possible there's calling code that tries to handle cancelation wi...
Follow-up of https://github.com/dagger/dagger/pull/7511 (rebased on top of it)
This applies the new ref scheme to directories and files (moving out from the buildkit syntax), whilst remaining retrocompatible
WIP but very close to finish
[dagger/dagger] Pull request opened: #7610 executor: fix deadlock in service exit from netns workers
There was a race condition where contexts get canceled after a job is sent to the netns worker but before the result got read. This caused runInNetNS to exit (due to canceled context) but the result chan to never be read from. It was crucially an unbuffered chan, which resulted in the worker never being able to exit and the whole container cleanup to block indefinitely.
The fix here is just to make that chan buffered with a size of 1 so that the worker doesn't ever get blocked trying to wr...
we're changing the default minConnectTimeout and backoff settings since
in some cases, the connect happens before the engine is ready to
accept connections, causing the client to wait for the default
minConnectTimeout (20s) before retrying. This causes very long
connection times when the engine is not ready to accept connections.
Signed-off-by: Marcos Lilljedahl
What is the issue?
Have hit this when starting with a clean state, no previous Dagger Engine container running. Was reviewing:
This is the exact command that I was running: dagger call image --source=.:app --token=env:GH_TOKEN
As this is a transient issue, it might be difficult to reproduce. Creating this issue s...
This PR was auto-generated.
Sending out separate PR in case I want to push extra debug commits
Attempting to solve #6441
This seems like a more Dagger supported method for installation because:
- Its supported by existing goreleaser
- It handles the checksum
- winget allows the portable zip binary
- It can also handle adding the install to the users PATH via an alias
- Supports simple uninstall and upgrades of the Cli
I have used the existing package Id that was already found by someone who published the 0.9.6 to Winget, since that time, I have published 2 versions bu...
Bumps github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.1.0 to 1.6.0.
Release notes
Sourced from github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases.
sdk/internal/v1.6.0
1.6.0 (2024-04-16)
Features Added
Options types for SetBodilessMatcher and SetDefaultMatcher now embed RecordingOptions
Added a collection of default sanitizers for test recordings
sdk/azidentity/v1.6.0
1.6.0 (2024-06-10)
Features Added
NewOnBehalfOfCredentialWit...
Bumps @grpc/grpc-js from 1.10.6 to 1.10.9.
Release notes
Sourced from @โgrpc/grpc-js's releases.
@โgrpc/grpc-js 1.10.9
Avoid buffering significantly more than grpc.max_receive_message_size per received message.
@โgrpc/grpc-js 1.10.8
Fix a bug that caused channels with unix: targets to not reconnect after the channel goes idle (#2750)
@โgrpc/grpc-js 1.10.7
Improve reporting of HTTP error codes (#2723)
Update dependency on @grpc/proto-loader to the la...
Bumps golang.org/x/net from 0.20.0 to 0.23.0.
Commits
c48da13 http2: fix TestServerContinuationFlood flakes
762b58d http2: fix tipos in comment
ba87210 http2: close connections when receiving too many headers
ebc8168 all: fix some typos
3678185 http2: make TestCanonicalHeaderCacheGrowth faster
448c44f http2: remove clientTester
c7877ac http2: convert the remaining clientTester tests to testClientConn
d8870b0 http2: use synthetic time in TestIdleConnTimeout
d...
Bumps requests from 2.31.0 to 2.32.2.
Release notes
Sourced from requests's releases.
v2.32.2
2.32.2 (2024-05-21)
Deprecations
To provide a more stable migration for custom HTTPAdapters impacted
by the CVE changes in 2.32.0, we've renamed _get_connection to
a new public API, get_connection_with_tls_context. Existing custom
HTTPAdapters will need to migrate their code to use this new API.
get_connection is considered deprecated in all versions of Requests...
Bumps jinja2 from 3.1.3 to 3.1.4.
Release notes
Sourced from jinja2's releases.
3.1.4
This is the Jinja 3.1.4 security release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes.
PyPI: https://pypi.org/project/Jinja2/3.1.4/
Changes: https://jinja.palletsprojects.com/en/3.1.x/changes/#version-3-1-4
The xmlattr filter does not allow keys with / solidus, > greater-than sign, or = equals ...
Bumps the sdk-python group with 17 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| anyio | 4.3.0 |
4.4.0 |
| opentelemetry-sdk | 1.24.0 |
1.25.0 |
| opentelemetry-exporter-otlp-proto-grpc | 1.24.0 |
1.25.0 |
| babel | 2.14.0 |
2.15.0 |
| [certifi](h... |
Bumps braces from 3.0.2 to 3.0.3.
Commits
74b2db2 3.0.3
88f1429 update eslint. lint, fix unit tests.
415d660 Snyk js braces 6838727 (#40)
190510f fix tests, skip 1 test in test/braces.expand
716eb9f readme bump
a5851e5 Merge pull request #37 from coderaiser/fix/vulnerability
2092bd1 feature: braces: add maxSymbols (https://github.com/micromatch/braces/issues/...
9f5b4cf fix: vulnerability (https://security.snyk.io/vuln/SNYK-JS-BRACES-6838727)
98414f9 ...
For now, seeing if the recent pushes to main help out some of the telemetry draining issues, which requires the sdk tests+lints use dev rather than stable engine.
We could do this in the long term too. I have more thoughts on that but will save them once it's confirmed this even helps.
fixes dependabot/514
Signed-off-by: Marcos Lilljedahl
[dagger/dagger] Issue opened: #7630 ๐ dagger.io/dagger v0.11.7 is not available through dagger.io
What is the issue?
I think your proxy was left out in the cold when you pushed the latest release to github
Dagger version
dagger v0.11.7
Steps to reproduce
go get dagger.io/dagger => dagger.io/dagger v0.11.6
Log output
No response
Introduced in 8421636 (#7554).
This caused the https://github.com/dagger/dagger-go-sdk read-only copy to include the full dagger/dagger repo, instead of the filtered one.
Based on https://github.com/dagger/dagger/pull/7483
Rework of https://github.com/dagger/dagger/pull/7628, that doesn't entirely disable these checks.
Create a new ci/std/shellcheck module using https://github.com/koalaman/shellcheck, and enable checks for our scripts in CI.
This check would have caught https://github.com/dagger/dagger/pull/7617, and would have errored out with:
$ dagger call --source=.:default scripts lint
โ DaggerScripts.lint: Void 4.1s
! call function "Lint": process "/runtime" did not complete successfully: exit code: 2
โ invoke: input: shellcheck.check.assert resolve: call function "Assert": process "/r...
We originally started to run these in 9bb57fc (#7554) and 8421636 (#7554), however, I only fixed the --dry-run publishing for python, typescript and go.
In this PR, I've fixed it for elixir and rust as well, and enabled it for those (as well as PHP). This should hopefully help to avoid future rele...
https://github.com/dagger/dagger/pull/7349/files#diff-57d0a87a3ee76e3f54076848756b333683e6bdb5ae34463f3a5240b04942ce0b was a bad refactor.
See https://github.com/dagger/dagger/actions/runs/9481418789/job/26124166243#step:7:36.
Since the bad refactor, we've not been actually running the testdev tests in the dev container - we've been using the top-level one.
Bumps the sdk-typescript group with 16 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @lifeomic/axios-fetch | 3.0.1 |
3.1.0 |
| @opentelemetry/api | 1.8.0 |
1.9.0 |
| @opentelemetry/exporter-trace-otlp-grpc | 0.51.0 |
0.52.0 |
| [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/... |
What are you trying to do?
Trying to pull down more history for a ref than just the single commit.
The request is to have a property on the dag.git to specify the depth (number of commits) to checkout
Why is this important to you?
We currently have a couple different jobs within our workflow that rely on checking the differences between the given commit and its parent.
How are you currently working around this?
Right now, we are using dag.git to do the initial checko...
Bumps the sdk-go group with 5 updates in the /sdk/go directory:
| Package | From | To |
|---|---|---|
| go.opentelemetry.io/otel | 1.26.0 |
1.27.0 |
| go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp | 0.2.0-alpha |
0.3.0 |
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc | 1.24.0 |
`1.27.... |
In the upcoming v0.12 release, we plan to make a few backwards incompatible changes to the API. This includes:
- Changing function signatures
- Removal of deprecated fields
- etc.
However, these changes will likely require updates to module code, across the ecosystem. We want to make this transition as easy as possible - when users upgrade their cli/engine versions, they shouldn't need to worry about manually ensuring compatibility with their engines.
There are a couple of approach...
by waiting for logs to appear, instead of hoping they do
This should do a decent job at de-flaking, since the failure mode is just missing the log events before closing the client. If we wait to see them before making the more rigorous assertions (i.e. not seeing dupes, not seeing other clients) we should be OK.
PR 7315 that reworked how sessions connect breaks client-server compat, mainly because the engine API is now just HTTP rather than gRPC-tunneled HTTP, so we need to update the min compatible versions.
As was discussed here, since #7628 got merged we are using dind runners for SDK jobs. Default dind runners have 32c and 16Gi, which for SDK jobs is excessive. Since we now have support for dynamically sized dind runners, we migrate SDK jobs to 4c (like we used to run it) and we leave testdev with 32c jobs.
If you use the v0.11.7 CLI and run e.g. dagger -m . call --source=.:default test custom --timeout=10m --run=TestModuleDaggerUp --pkg=./core/integration --race=true --parallel=8 on main you'll currently get a hang after the tests pass.
- Note: this won't currently impact any users, it's only an issue on main atm when using v0.11.7 as the CLI
This is due to OTEL draining spans from the CLI's session attachable server (engine logs show waiting on TunnelListener/Listen). The CLI is gettin...
Rough draft but working for basic features (shared/locked). TODOs:
- [ ] Way more tests (need to backfill coverage + add more for new "mount from host" feature)
- [ ] Support for sharing mode private
- [ ] Support for permissions+owner
- [ ] Support for source of cache mount
Problem
Dagger modules are often contextual: they are used in the context of another software projet. Almost always, these modules need to access their context directory - typically the project's source code.
- Today a module cannot directly access its context directory. Instead it must be passed by the caller as an argument. This is inconvenient.
- To make things worse, modules cannot filter the contents of the context directory. This is essential to avoid the prohibitive c...
Follow up to #7631
This is fairly fiddly to do correctly. Essentially, we need to be able to handle at least these inputs:
- Branch names, like
main - Tag names, like
v0.11.7 - Full refs, like
refs/pull//merge
We can't simply use git fetch , since that doesn't create a local ref copy. We shouldn't use a refspec that mirrors to a single name, since that strips refs/tag/... which means tags are lost.
The correct way to do this is using a git fetch refspec, to mirror all ...
The command is invalid, and I suspect it's missing a space.
โฏ dagger develop...
Error: unknown command "develop..." for "dagger"
What is the issue?
While installing this the following module dagger install github.com/vito/daggerverse/testcontainers@a1647750b3ef09b83091b40185f498bb995ed540 in a dagger python project, the generated setup function (https://github.com/vito/daggerverse/blob/a1647750b3ef09b83091b40185f498bb995ed540/testcontainers/main.go#L28) has an incorrect signature.
The generated code is:
def setup(self, ctr: Self) -> Container:
It should have generated:
...
There were a couple of weird whitespace handling issues with the plain progress.
- If a program produces logs at pace, then ExportLogs will be called on large chunks, and is not guaranteed to end with a newline. In this case, that last line should be marked as pending, and we should hold it until the rest of that line is received (flushing any unfinished lines when the span terminates).
- If a program writes "\r" carriage return characters in the middle of a line, we were essentially wr...
@vito has said we should do this a couple times, so I just yanked it out (look at all those deps gone!).
We just need to pull in a bubbletea helper, and also bring in all the defined symbols that we use for rendering.
just need to break a few tests for a demo ๐
Don't show the github usage part in publish command since it's not
supported
fixes #DEV-2941
Signed-off-by: Marcos Lilljedahl
This changes the dagger init command to not generate LICENSE if no code has been generated (when --sdk) is not specified.
It also generates a license if then dagger develop is executed with --sdk flag.
Fixes #6666
Fixes DEV-4201
- Add checksum validation
- Delete the file is the checksum fails
- Install-Dagger should also use $env:USERPROFILE
- fix for DaggerCommit regex, it should be optional (โฏยฐโกยฐ๏ผโฏ๏ธต โปโโป
Extracting from #7532 for a more minimal diff.
I found out that Elixir runtime cannot run on my Apple M1 machine and realize that the image in Elixir runtime has only amd64 architecture. :(
So I do fix by bump image to a new version that have both amd64 and aarch64 architectures.
Saw this fail here: https://github.com/dagger/dagger/actions/runs/9509605842/job/26212800646?pr=7660
Don't have the cloud trace on hand because it got re-run and couldn't find it in the history. But ugly output extracted from GHA logs is:
2024-06-14T02:27:54.5780199Z [95m122 : [0m [90m[5m41.8s] [0m[90m|[0m module_python_test.go:306:
2024-06-14T02:27:54.5781462Z [95m122 : [0m [90m[5m41.8s] [0m[90m|[0m Error Trace: /app/core/integration/module_python_te...
โ ๏ธ This is an ugly implementation atm (lots of copy-paste), but it is a foundation for the question:
- what testing strategy do we want over the modules integration tests, across VCS ?
In the current state of the PR, It basically covers every test relying on the modules test repo with its public GitLab equivalent
This won't work as is for bitbucket (because of a different valid HTMLURL), and tests will probably need to be extended to not dumbly fail over refs with .git (which wor...
This PR comes from discussion in [dev-engine](#1250226289919660105 message) and in [php](#php message) discord channel.
I do relocate the runtime module from sdk/elixir/runtime into sdk/elixir. The benefit of this way is the sdk and runtime are run on the same commit, unlike previous implementation that the sdk use git remote to fetch sdk source.
Howe...
What are you trying to do?
Creating a "Daggerverse" that has many modules residing in the same Git repository is a common practice today. However, not everyone will commit the generated code up to the repository as it is not required for general dagger operations.
I need a way to tell dagger to recursively go into each of my modules and generate code with a single command so that I can lint the dagger modules without running into errors based on missing generated code.
Why is th...
@jedevc @levlaz
I noticed Powershell is also not style, upon further checking out docusauraus and mdx, I think we're only missing the addition of 'powershell' in the languages array, which I validated from their documentation.
the v0.11.7 release bumped the base images that the engine uses which
caused a newer version of iptables to be used. This newer version of
iptables which uses nftables is still not widely supported and it's
currently causing issues for some users.
Signed-off-by: Marcos Lilljedahl
- Now supports navigating the full trace, instead of being stuck with the bottom of the visible region
hjklor arrow keys to move aroundenterto "zoom in" to the selected spanendorspaceto follow the bottom of the screenhometo go to beginning
- Now supports mouse scroll wheel again
- I initially skipped this because I found it occa...
=== FAIL: core/integration TestContainerSystemProxies/git_uses_proxy/git-proxy-logs (0.00s)
proxy_test.go:360:
Error Trace: /app/core/integration/proxy_test.go:360
/app/core/integration/proxy_test.go:228
Error: "1718561860.060 0 10.88.0.161 NONE_NONE/000 0 - error:transaction-end-before-headers - HI...
What is the issue?
It appears issue #7057 has recurred in v0.11.7 (also tested with the latest b213c4f88de0f4bfa164e047276d717024b78cb2). Now, it occurs with all progress modes. As before, the issue arises in CI where only --progress=plain is available. Long-running tasks may be canceled if nothing is printed for a certain period. It would be beneficial to have the ability to read the log while the build is running.
Dagger version
dagger dev-071bba814c2411bb8ab5c016897210711f0f26...
Bumps the engine group with 14 updates:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.48 |
0.17.49 |
| github.com/containernetworking/cni | 1.1.2 |
1.2.0 |
| github.com/distribution/reference | 0.5.0 |
0.6.0 |
| github.com/docker/docker | 26.1.4+incompatible |
`27.0.0+incompatible... |
Bumps the sdk-python group in /sdk/python with 2 updates: docutils and protobuf.
Updates docutils from 0.20.1 to 0.21.2
Updates protobuf from 4.25.3 to 5.27.1
Commits
3d9f7c4 Updating version.json and repo version numbers to: 27.1
368b9b2 Merge pull request #17019 from protocolbuffers/cp-27
2717ae7 Internal change
9a37881 Always report plugin support errors from protoc.
f61d89c Avoid ODR violations from ...
Bumps the sdk-typescript group with 16 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @lifeomic/axios-fetch | 3.0.1 |
3.1.0 |
| @opentelemetry/api | 1.8.0 |
1.9.0 |
| @opentelemetry/exporter-trace-otlp-grpc | 0.51.0 |
0.52.0 |
| [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/... |
What is the issue?
Using the python quickstart already fails at the first step after dagger init --sdk=python
https://docs.dagger.io/quickstart/daggerize#construct-a-pipeline-using-dagger-functions
What is the issue?
discord: #1252253912405381141 message
Hi!
How can I supply a command to a dagger-cli that would accept arguments containing a comma? Is there any syntax to escape commas from parsing?
cmd="trivy fs --dependency-tree --scanners vuln,misconfig,secret --severity,UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL --output trivy-report.out -f table --exit-code 7 ./"
dagger -m github.com/shykes/daggerverse/wolfi call ...
Reported by @vito in an internal discord: #1250122361131499664 message
huh, running that command with --debug or -vvv seems to cause the CLI to eat up all of my memory, seems like a bug with the call simplification code
last time this came up it was because of a call simplifying to itself or something and ending up in a loop, all the memory usage is from trying to render the indentation
Turns out, the changes to call sim...
Error: make request: input: container.from.withExec.stdout resolve: failed to copy: httpReadSeeker: failed open: failed to do request: Get "http://registry:5000/v2/test-cache-a/blobs/sha256:c74b3fa9b6e492458102dbd87edf33967a1863e12ac8a138fbc12c6f87483f18": dial tcp 10.88.0.107:5000: connect: connection refused
Test: TestRemoteCacheRegistrySeparateImportExpor...
DEPENDS ON #7586
Add a --interactive (-i) option to dagger call which will spawn
a terminal when a container execution fails
What is the issue?
When a user provides a git url, for example as a Directory argument, without any branch, tag, commit sha, etc, then we assume they want #main.
https://github.com/dagger/dagger/blob/main/cmd/dagger/flags.go#L253-L268
But the default_branch might be master (most common alternative) or maybe something else. So we shouldn't assume.
The default_branch can be looked up before pulling, but requires access to the git server over the network. For example:
``...
based on #7671
The place where something becomes un-lazied is not that useful. Better to show effects at their point of origin instead.
This also effectively works around a Buildkit bug that ends up associating LLB to incorrect spans[^1], which would sometimes put a failed span beneath a succeeding one, making it especially hard to find.
[^1]: possibly from here which the race detector is also unhappy with)
- [ ...
Fixes https://github.com/dagger/dagger/issues/7684.
Previously, we didn't use to have a way to get the "default" branch - however, now we do, we can just do .Head() on a git repository. (note: this is just as lazy as all the other git calls).
So we don't need to assume "main" at any point.
This PR was auto-generated.
Minor regression from #7483 - we don't such a powerful machine for this job.
As discussed in https://github.com/dagger/dagger/issues/7640.
This is a follow-up to https://github.com/dagger/dagger/pull/5315, which will allow us to add a backwards compatibility check if/when we make breaking changes to the module API, etc.
This uses the engineVersion field introduced in 1377f13 (#6469).
Fixes https://github.com/dagger/dagger/issues/7687 by returning an explicit error in case the user uses primitive types in Typescript such as String, Boolean or Number.
The error returned will be of shape (example with Boolean):
Use of primitive Boolean type detected, did you mean boolean?
I couldn't repro this locally but there were occasional CI flakes in the proxy test that pulls a git repo and verifies the proxy logs show a connection to github.com (needed to verify that git ops correctly use proxy settings).
My best guess is that the squid logs were just not always flushed by the time they were read for the test assertion, so this updates the tests to explicitly start/stop the squid service and do some retries on reading the logs.
Will have to see if this actually fi...
Thanks to #6811, SDK dependencies are now updated in groups (bulk). This removes the need for ignoring patch releases.
What is the issue?
I created a new module using dagger 0.11.7 on my laptop. When I try to publish it on Daggerverse, it complains that the highest supported go from go mod is 1.22.3
I think this is because the daggerverse is still running 0.11.6
I think we should do one or both of these things to address this:
- Make sure that daggerverse is always running latest version of Dagger because a lot of current module authors are always running latest.
- Handle the case when t...
This has been reported by users and seen occasionally in CI. Most recent occurrence I saw was here https://github.com/dagger/dagger/actions/runs/9551005799/job/26324343803
That passed on many re-runs and also tried running SDK tests again in commits around it without it happening again.
I've been trying to repro what happens in that elixir SDK check failure locally since yesterday but have not replicated it.
- To be clear, I don't think this has anything to do with the elixir SDK, the ...
Buildkit does all sorts of special context.Cause error handling but still sets all the errors to just be context.Canceled, only difference being wrapping them with hidden stack traces from the github.com/pkg/errors package.
To help debug where context canceled errors are coming from, it's useful to see these stack traces so we can get more than "context canceled". To do this we need to log the errors with the formatting directive %+v.
Related to https://github.com/dagger/dagger/i...
What is the issue?
dagger develop creates a LICENSE file. That's not something I want in private projects. (Another instance of contextual vs reusable modules)
Dagger version
dagger v0.11.8 (registry.dagger.io/engine) darwin/arm64
Steps to reproduce
dagger develop
Log output
No response
We needed to get the logs for all Engine pods which match specific labels & were missing this.
This is part of a piece of a more general piece of work to improve our own releasing process.
TL;DR: our releasing process (defined in https://github.com/dagger/dagger/blob/main/RELEASING.md) has steadily become more and more complex over time. Now that we're aiming for faster release cadences (at least once every couple of weeks, and often once a week), this process is starting to incur a lot of overhead. (I estimate I probably spend at least half a day per release). We can take some of t...
We want each dev engine to be used only by the job it is being created. With arc, the name of the runner is the name of the pod and each pod runs a single dedicated job.
Problem
A Dagger SDK can do 2 things:
- Generate client bindings to consume functions and types from other modules
- Build a runtime to provide new functions and types
These two features are tightly coupled: an SDK must implement both or it is considered incomplete. A module is expected to use both, or it is probably "doing it wrong".
But there are cases where I don't actually want both:
- Example 1: I want to run Dagger pipelines from my software, without running my soft...
WIP implementation of private Git support (works, just not with a generic / nice ref yet)
This is rebased on top of #7663, which adds integration tests and fixes some of the VCS logic.
Core changes
- Following @sipsma's work to securely isolate sockets per sessions. We can now automatically and securely load the SSH socket when the
SSH_AUTH_SOCKenv variable is set. This is the auth that will be used to access the private repo. - File / Directory passed as CLI args do not rely ...
Problem
The Dagger API doesn't provide an efficient way to compute a file's digest. Which, in turn, makes it impossible to efficiently compare two files, or check if a file has changed for example. There are workarounds, but they either add complexity, hurt performance, or both.
Solution
Add a function to compute a file's digest. Ideally reusing the underlying buildkit digest.
extend type File {
"""
Return the file's digest.
The format of the digest is n...
This should hopefully improve visibility of new vulnerabilities.
What is the issue?
When using a git repository URL for a directory argument, Dagger seems to assume that the default branch is named main. This is often not the case.
I also cannot use HEAD as ref. You can see in the error message the commit HEAD is pointing to but Dagger does not handle it.
When Dagger is provided a Git URL without ref, it should mimic a git clone of that URL and not guess the default branch.
Dagger version
dagger v0.11.6 (registry.dagger.io/engine)...
Follows up #7701 with a doc update
This publishes two new image variants:
- *-wolfi
- *-wolfi-gpu
We want to take this through the paces - automated & manual tests - and check if it's feasible to consolidate all images into a single one: Wolfi with NVIDIA.
I have also made it clearer in workflow descriptions that this isn't a GPU image variant. While NVIDIA is the dominant GPU vendor today, Intel & AMD are still relevant and in some cases ahead (e.g. Aurora & Frontier supercomputers). A bunch of homelabbers (includin...
Fixes 7703
It will be followed up by #7715 after discussion
What are you trying to do?
I'd love to have binary reproducible builds (motivation: https://reproducible-builds.org/) in dagger.
Why is this important to you?
Beside its nice security properties, I'd also love the fact, that I could use it for stable image pinning and actual change detection in k8s deployments (as image digests would only change if the underlying application does change).
How are you currently working around this?
Directory.withTimestamp helps, but sometime...
What is the issue?
When following the getting started with Dagger using the typescript SDK. You get a file which uses a class with decorators.
I was trying to create a db service. Which needs to mount a host directory.
Then looking at https://github.com/dagger/dagger/tree/main/examples/sdk/nodejs, you find these examples using a very different approach i.e. using connect. This is confusing, not very clear how you would translate what you see in those examples to the class approac...
What is the issue?
seems some issue in dagger engine.
c.Host().Directory() will cause https://github.com/moby/buildkit/issues/748 too.
once I downgrade github.com/dagger/dagger to v0.11.7 (keep dagger.io/dagger v0.11.8)
everything works well.
Dagger version
v0.11.8
Steps to reproduce
No response
Log output
No response
I ran into the following error trying to regenerate the requirements.lock file as described here (under the Python tab). I think --update-all should be --upgrade.
Additionally, it might be worth adding the --quiet flag to the docs in the same vein as #7270.
โฏ uv version
uv 0.2.13
โฏ uv pip compile \
--generate-hashes \
--update-all \
-o requirements.lock \
pyproject.toml sdk/p...
Bumps the engine group with 4 updates: github.com/charmbracelet/bubbletea, github.com/containernetworking/cni, github.com/goproxy/goproxy and github.com/moby/buildkit.
Updates github.com/charmbracelet/bubbletea from 0.26.4 to 0.26.5
Release notes
Sourced from github.com/charmbracelet/bubbletea's releases.
v0.26.5
Fix special...
Bumps the sdk-python group with 3 updates in the /sdk/python directory: docutils, importlib-metadata and protobuf.
Updates docutils from 0.20.1 to 0.21.2
Updates importlib-metadata from 7.1.0 to 7.2.1
Changelog
Sourced from importlib-metadata's changelog.
v7.2.1
Bugfixes
When reading installed files from an egg, use relative_to(walk_up=True) to honor files...
Bumps the sdk-typescript group in /sdk/typescript with 8 updates:
| Package | From | To |
|---|---|---|
| execa | 8.0.1 |
9.3.0 |
| graphql | 16.8.2 |
16.9.0 |
| graphql-request | 6.1.0 |
7.1.0 |
| tar | 7.2.0 |
7.4.0 |
| typescript | 5.4.5 |
5.5.2 |
| [@esl... |
Bumps the sdk-go group in /sdk/go with 1 update: github.com/99designs/gqlgen.
Updates github.com/99designs/gqlgen from 0.17.44 to 0.17.49
Release notes
Sourced from github.com/99designs/gqlgen's releases.
v0.17.49
What's Changed
chore(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 in /_examples by @โdependabot in 99designs/gqlgen#3123
chore(deps-dev): bump vite from 5.2.12 to 5.2.13 in /integration by @โdependabot in 99designs/gqlgen#3126
chor...
Bumps the sdk-java group with 11 updates in the /sdk/java directory:
| Package | From | To |
|---|---|---|
| io.smallrye:smallrye-graphql-client-api | 2.8.3 |
2.8.4 |
| io.smallrye:smallrye-graphql-client-implementation-vertx | 2.8.3 |
2.8.4 |
| jakarta.json:jakarta.json-api | 2.1.2 |
2.1.3 |
| jakarta.json.bind:jakarta.json.bind-api | 3.0.0 |
3.0.1 |
| org.apache.commons:commons-compress... |
Bumps the sdk-typescript group with 15 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @opentelemetry/exporter-trace-otlp-grpc | 0.52.0 |
0.52.1 |
| @opentelemetry/sdk-metrics | 1.25.0 |
1.25.1 |
| @opentelemetry/sdk-node | 0.52.0 |
0.52.1 |
| [execa](https://github.com/sindresorhu... |
Bumps the sdk-python group with 5 updates in the /sdk/python directory:
| Package | From | To |
|---|---|---|
| docutils | 0.20.1 |
0.21.2 |
| importlib-metadata | 7.1.0 |
7.2.1 |
| protobuf | 4.25.3 |
5.27.1 |
| urllib3 | 2.2.1 |
2.2.2 |
| uv | 0.2.11 |
0.2.13 |
U...
Context: I was working on the final PR for passing sockets as args and had a bug that caused the Tunnel in c2h.go to return an error. That was just a bug in the WIP code, but the failure mode I saw was very weird and repros on main: the session close timed out.
After questioning my fundamental sanity for a while, I finally realized that for some reason the service stop callback got called multiple times in this error case, which is bad because it does a select on an exited channel that...
Spun out from this discord discussion: #1253636253358755840 message
It's currently quite difficult to write a healthcheck for the dagger engine itself - how do you know if it's running, and ready to accept connections?
Previously, you used to be able to use the buildctl command to connect manually (but that was removed), or even use a dummy dagger query command (but that was also removed).
We should make it easy to run a ...
[dagger/dagger] Issue opened: #7734 `dagger login` is not mentioned as a way to send traces to cloud
What is the issue?
We've recently introduced dagger login as a simplified way for users to send local traces to cloud. Docs need an update here https://docs.dagger.io/manuals/user/cloud-get-started#connect-from-your-local-development-host to reflect that.
A few more fixes/simplifications for OTel + draining found in the process of working on #7532. With these changes I'm finally able to reliably run our instrumented integration tests without any spans "left behind" (even services).
โ connect 0.2s
โ initialize 13.0s
โ prepare 0.8s
โ ModuleSource.resolveFromCaller: ModuleSource! 0.1s
โ ModuleSource.resolveDirectoryFromCaller(path: ".", viewName: "default"): Directory! 0.0s
โ dagger(
source: โ ModuleSource.resolveDirectoryFromCa...
Based on a request that if a rust binary is spawned as PID 1 without closing stdin on the dagger session it doesn't cleanup properly after itself
We used to prune the local cache after sessions ended, but this got dropped during recent refactoring so now the local cache is only being pruned at engine startup.
This re-adds that gc call on session disconnect.
This is obviously in dire need of integration tests, but setting those up is a decent chunk of work so prioritizing the fix first and will follow-up immediately with that test coverage.
For now, I verified the fix manually with a local test that runs an exec that consumes m...
The Runtime Container documentation (here - Python tab.) has [dagger.tool] instead of [tool.dagger].
Per the discussion [in discord](#1250370138226819152 message) (and my testing) it should be the latter.
There was an issue that created an error when a non-primitive default value was set to a function like
@object()
class Default {
@func()
a(
dir: Directory = dag.directory()
.withNewFile("/foo", "hello world")
): Container {
return dag.container().withMountedDirectory("/dir", dir)
}
}
This commit fixes the issue to ignore the default value registration if it's not a primitive type and let the TypeScript runtime resolve it during the ex...
First commit is cherry-pick of https://github.com/dagger/dagger/commit/6708971d052bad4d9ea3c3f19077e7ed81a43939
Second commit is the standard release notes as generated with instructions already in RELEASING.md.
Note that because this is a separate branch directly off v0.11.8, this PR is merging into that branch rather than main.
- That branch is here: https://github.com/dagger/dagger/tree/release-v0.11.9, currently just at same commit as v0.11.8
- Named it `release-v0.11....
This is the draft implementation to support git tags API, with corresponding tests
It has been mostly taken from
https://github.com/dagger/dagger/pull/6187/commits/260bde5070780b3ce267bde79de3a66c73eca6a6. cc @vito
TODO:
- find a way to exec git with the mounted socket / use the gitdns.git implementation ?
What is the issue?
Dagger accepts secret parameters in the form of env:ENV_VAR. However, this is not broadly the case for all parameters. It is unexpected and inconsistent that non-secrets do not respect this form and require you to pass in environment variables as $ENV_VAR instead. For example,
dagger call -m example \
test \
--version env:MY_VERSION \ # does NOT work as intended
--name $MY_NAME \ # need to use this form instead
--secret env:MY_...
API changes
This PR updates the Function and FunctionArg from our engine API to support defaultPathFromContext
# Function
withArg(
"""
If the argument is a Directory or File type, default to load path from context directory, relative to root directory.
"""
defaultPathFromContext: String = ""
# }
# FunctionArg {
"""
If the argument is a Directory or File type, default to load path from context directory, relative to root directory.
...
This PR was auto-generated.
Have to manually create this for now so it's based on the release-v0.11.9 branch, see https://github.com/dagger/dagger/pull/7745#issuecomment-2187636760
Opening this against the release-v0.11.9 branch for now. We will want to "forward-port" it to main also, will handle that along-side forward-porting https://github.com/dagger/dagger/pull/7745
- tbh I'm not 100% sure how necessary it is to merge this to the
release-v0.11.9branch vs. only doing it to main, but doing it anyways during the first run-through of "publish from non-main branch" out of caution
TODOs (these are only strictly required for the main branch, so may end up just...
WIP updates to instructions on differing instructions when releasing from non-main branch.
Not done, sending out early so I can see it as rendered markdown.
It's honestly kind of challenging to figure out the best way to present this. There's a lot of overlap in the instructions, but also a lot of little divergence points. Will do what I can to get the information here while keeping it comprehensible.
When originally updating this in #7563, we only updated the default CLI option - however, this is confusing, and isn't exactly how that works - my suggested refactor wasn't actually correct.
Because we use GlobalIsSet, this default is never actually the one that's used. So, we can refactor this, and set a global const to define the default gc policy ourselves, outside of buildkit.
This also opens us up to modifying the gc policy in more detail in the future.