#github-feed

1 messages ยท Page 13 of 1

vivid lintelBOT
#

Only displaying CPU pressure time in TUI right now since that's what I'm most interested in, but other CPU usage is plumbed now too. Need to rework metrics display before adding more since it's starting to get to be too long a line.


Fun fact: when initializing our CI module from empty cache and a go codegen step takes a long time (~30s), up to half the time is spent shows up as full CPU pressure (which means every thread in the container is blocked waiting for a CPU to be available...

vivid lintelBOT
#

What are you trying to do?

just wanted to calculate the size of the files in a Container().Directory() with a combination of Directory().Entries() and File().SIze(), but calling Size on every File that is a symlink returns the size of the linked file.
would like to return the actual size on the filesystem of the symlink entry instead.

Why is this important to you?

had an idea to find the largest directories/files embedded in an image, a la the dive utility but simpler

How a...

vivid lintelBOT
#

With https://github.com/dagger/dagger/issues/7951 implemented in https://github.com/dagger/dagger/pull/8427, we have some surprising behavior.

It's possible that the variable isn't set on the container - currently this silently fails - I think we should consider making failure the default.

Even if we don't - we at least explicitly handle the withSecretVariable case - we can't/shouldn't expand secret variables, so we should fail with a nice error message in this case. See this discord ...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Problem

Getting the following error when trying to define a type with the same name a as a module type:

Error: input: module.withSource.initialize resolve: failed to initialize module: failed to add object to module "program-backend": failed to validate type def: object "ProgramBackend" function "Cache" cannot return external type from dependency module "cache"

main module:

package main

type ProgramBackend struct{}

type Cache struct{}

// Returns a conta...
vivid lintelBOT
#

Problem

Can't call dagger call terminal on this pipeline:

import { dag, Container, object, func } from "@dagger.io/dagger";

@object()
class Lala {
  /**
   * Returns a container that echoes whatever string argument is provided
   */
  @func()
  async test(): Promise {
    const s1 = await dag
      .container()
      .from("nginx:latest")
      .withExposedPort(80)
      .asService()
      .withHostname("web1")
      .start();

    return dag.container().f...
vivid lintelBOT
#

What is the issue?

As asked on Discord, the code attached exhibits a weird behaviour depending on how it is invoked.

dagger call build something fails with Error: this.myDirectory.file is not a function
dagger call build env base with-exec --args cat,/x succeeds

Note how the build something is fundamentally doing the same as the second CLI command. It appears as if this.myDirectory magically becomes a...

#

Spent today working on fixing the bottleneck in uncached Go module initialization time, which turns out to be due largely to CPU contention between go list/build processes (go does not de-dupe concurrent builds/module downloads across processes; dedupe only happens after builds/downloads finish and are written to cache).

I went all the way to "daggerizing" go build by turning each individ...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Bumps mermaid from 10.9.2 to 10.9.3.

Commits

85ec96a chore: bump mermaid version to v10.9.3
9301a57 style: prettify src/diagrams/block/blockDB.ts
2bedd0e chore(deps): update katex to 0.16.11
92a07ff chore(deps): update bundled DOMPurify to 3.1.6
See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=1...

vivid lintelBOT
#

What are you trying to do?

I am developing a module for internal systems developed in go.

To interact with such systems from my dagger module, I need to import private go dependencies.

There isn't currently a way to provide credentials to the Go runtime container in a way that the codegen will be able to pull such private dependencies (GOPRIVATE / modified gitconfig)

For a bit more context: https://discord.com/channels/707636530424053791/1298541718374715443

Why is this ...

#

What is the issue?

Dagger container entrypoint issue when engineVersion is missing in the dagger.json (I had found this when I tidied up the remote private daggerverse JSON file based on a much older Dagger version example online)

In my particular case I was pulling a container, with a mounted directory and work dir and then running a simple with_exec(["ls","-ls"]) and that was failing when called with -m (with my "tidied up" dagger.json) but worked OK locally as that still engineVer...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Using dagger v0.13.5, running against main.

$ dagger call -m modules/wolfi container directory --path="." terminal
...
exit 1
โœ” connect 0.3s
โœ” initialize 1.1s
โœ” prepare 0.0s
โœ” wolfi: Wolfi! 0.0s
โœ” Wolfi.container: Container! 3.9s
โœ” Container.directory(path: "."): Directory! 0.0s
โœ” Directory.terminal: Directory! 0.4s
โœ” Directory.digest: String! 0.0s
โœ” Directory.entries: [String!]! 0.0s

Full trace at https://dagger.cloud/jedevc/traces/7a8b4b3206772b06a7dedf64845cb745
``...
vivid lintelBOT
vivid lintelBOT
#

User reported unexpected cache invalidation here: #1299094006592049262 message

Funnily enough, I had today ran into the exact same problem but in the context of our Go SDK's internal codegen exec, so we also need this fix (among others) to improve module initialization speed ๐Ÿ˜„


Before this, when nesting was enabled for an exec we would always scope the cache key with the dagql call digest for that exec.

This is import...

vivid lintelBOT
#

Bitbucket Cloud requires a specific auth format for Git operations using tokens, where the username must be 'x-token-auth'. This fixes token authentication for Bitbucket while maintaining compatibility with other Git providers like GitHub and GitLab, and Azure.

Context for Bitbucket Token Handling

Our implementation for Bitbucket Cloud authentication is based on the Repository Access Tokens Documentation, whi...

vivid lintelBOT
vivid lintelBOT
#

What is the issue?

Before v0.13.6, I was able to run apk update and apk add bash for example within the Dagger Engine image. This is not possible since v0.13.6

Dagger version

dagger v0.13.6 darwin/arm64

Steps to reproduce

docker run -it --entrypoint='' registry.dagger.io/engine:v0.13.5 /bin/sh
apk update

Log output

ERROR: Unable to read database state: No such file or directory
ERROR: Failed to open apk database: No such file or director...
vivid lintelBOT
#
kid

What is the issue?

I have a daggerverse repository that contains multiple modules I want to use from other repositories using dagger -m ...

When I call dagger -m ../daggerverse/ci call , I expected defaultPath to load data from the current repository, but instead, I get the content of my daggerverse repository, which make defaultPath useless here

However, if my ci module call another module that also has a defaultPath="/" argument, then will get the content of the ...

vivid lintelBOT
#

What are you trying to do?

I am creating a simple Dagger function that uses context directory. I am using defaultPath for the directory but when coding the function, I intuitively used default instead of defaultPath. The defaultPath is a special pragma for Directory however, the error I got in the CLI did not indicate this. It was cryptic.

Produce a better error message when the user accidentally uses default instead of defaultPath

Why is this important to you?

It...

vivid lintelBOT
#

They were generated in the root of the repo using the following command:

dagger call -m .github workflows generate export --path .

The new workflows are only configured to run in the context of dagger/dagger repository. These runners will not be available in forks & running the same job with the ubuntu-latest runner doesn't make sense.

The new workflows start with sdk- so that it's easier to group them when looking at metrics. Before this, a special OR filter had to creat...

vivid lintelBOT
#

Bumps the sdk-java group with 12 updates in the /sdk/java directory:

Package From To
io.smallrye:smallrye-graphql-client-api 2.8.4 2.11.0
io.smallrye:smallrye-graphql-client-implementation-vertx 2.8.4 2.11.0
org.apache.commons:commons-lang3 3.14.0 3.17.0
org.apache.commons:commons-compress 1.26.2 1.27.1
org.slf4j:slf4j-api 2.0.13 2.0.16
org.slf4j:slf4j-simple 2.0.13 2.0.16
[org.junit:junit-b...
#

Bumps the sdk-python group in /sdk/python/runtime with 1 update: astral-sh/uv.

Updates astral-sh/uv from 0.4.26 to 0.4.27

Release notes
Sourced from astral-sh/uv's releases.

0.4.27
Release Notes
This release includes support for the [dependency-groups] table as recently standardized in PEP 735. The table allows for declaration of optional dependency groups that are not published as part of the package metadata, unlike [project.optional-dependencies]. Th...

#

Bumps the docs group in /docs with 1 update: sass.

Updates sass from 1.80.3 to 1.80.4

Release notes
Sourced from sass's releases.

Dart Sass 1.80.4
To install Sass 1.80.4, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes

No user-visible changes.

See the full changelog for changes in earlier releases.

Changelog
Sourced from sass's changelog.

1.80.4

No user-visible chan...

vivid lintelBOT
#

What happened? What did you expect to happen?

Hello,

I'm running Dagger in GitLab CI. I'm using it to request certificate to Hashicorp Vault. However Dagger prints the output of the request in plaintext in our GitLab CI, which includes the certificate key. Is there an option to specifically disable the output of a command in Dagger UI, without silencing everything else (with -s)?

Thanks.

vivid lintelBOT
#

This PR adds a custom engine config file for dagger - this doesn't currently replace our existing buildkit engine.toml (that format will still continue to work).

However, our custom engine config should be the preferred way to edit config moving forwards. By detaching ourselves from the upstream buildkit toml config, we can do a few important things that we couldn't easily before:

  • Keep the config clean and relevant to what we do - we don't need config items for multiple oci/containe...
vivid lintelBOT
#

Fixes https://github.com/dagger/dagger/issues/8405.

This takes @wingyplus's original work from https://github.com/dagger/dagger/issues/8405#issuecomment-2375861357, and additionally applies my suggested changes from https://github.com/dagger/dagger/issues/8405#issuecomment-2399572899.

I was thinking of this in the context of #maintainers message, where it would good to have good-quality docs from the start for a new engi...

vivid lintelBOT
#

Bumps the sdk-python group in /modules/ruff/build with 1 update: astral-sh/ruff.

Updates astral-sh/ruff from 0.5.2 to 0.7.1

Release notes
Sourced from astral-sh/ruff's releases.

0.7.1
Release Notes
Preview features

Fix E221 and E222 to flag missing or extra whitespace around == operator (#13890)
Formatter: Alternate quotes for strings inside f-strings in preview (#13860)
Formatter: Join implicit concatenated strings when they fit on a line (#13663)
...

#

Bumps the sdk-go group with 2 updates in the /sdk/go directory: github.com/vektah/gqlparser/v2 and google.golang.org/grpc.

Updates github.com/vektah/gqlparser/v2 from 2.5.17 to 2.5.18

Release notes
Sourced from github.com/vektah/gqlparser/v2's releases.

v2.5.18
What's Changed

[SECURITY PROBLEM] Implement a configuration option to disable the suggestion feature when a GraphQL query fails by @โ€‹tomoikey in vektah/gql...

vivid lintelBOT
#

What is the issue?

running dagger-engine v0.13.6 locally and seeing errors in the log every 3 seconds about failing to read cpu.stat file

Dagger version

dagger v0.13.6 (registry.dagger.io/engine:v0.13.6) linux/amd64

Steps to reproduce

i'm running a function that is pulling in a remote container that takes minutes to pull

Log output

time="2024-10-28T17:24:00Z" level=error msg="failed to sample cgrouperrfailed to read cpu.stat file: open /sys/fs/cgroup/buildkit/d3uv0u8x9c...

vivid lintelBOT
#

Overview

There is a dagger shell feature in development. It already works, but needs more polish before making it stable. This issue tracks my requests for that polish.

Calling dependencies

Let's say I have a dependency called go (local name). And that dependency has a function called build. There should be a simple way to call that function from the shell.

With dagger call With dagger shell
dagger call -m go build go build

`...

vivid lintelBOT
#

Problem

As mentioned by @kjuulh and others, modules are powerful, but they have a steep learning curve. Going "from zero to first module" is major source of friction for adopting Dagger.

Solution

One possible solution: introduce the concept of single-file modules.

Before After
dagger init --sdk=foo creates a dagger.json + a complete boilerplate source directory dagger init --sdk=foo creates a dagger.json+ a single boilerplate source file
...
vivid lintelBOT
#

What are you trying to do?

trying to load private module frm a private git instance

dagger -m 'ssh://git@privgit.com/raghavendramallela/sample-repo.git/dgmodules/node@main' functions -vvvvvvv
โœ” connect 2.5s
  โœ” starting engine 0.0s
  โœ” connecting to engine 0.7s
  โœ” starting session 1.2s
  โœ” subscribing to telemetry 0.6s
    โœ” consuming /v1/traces 0.6s
    โœ” consuming /v1/logs 0.0s
    โœ” consuming /v1/metrics 0.0s
โœ˜ initialize 16.7s
! failed to get configured module: faile...
vivid lintelBOT
#

Suppose the following scenario:

// module foo
func (f *Foo) DoFoo(
	// +optional
	// +default=true
	arg bool,
	// +optional
	arg2 string,
} error {
	// ...
}
// module bar
func (f *Bar) DoBar() error {
	return dag.Foo().DoFoo(dagger.FooDoFooOpts{Arg: false})
}

As described in https://github.com/dagger/dagger/issues/7777#issuecomment-2203387161, this false won't apply, and we'll get the default true value set for arg.

That's because of the ...

vivid lintelBOT
#

What is the issue?

I was originally on 0.12.4 and when I upgraded to dagger 0.13.5 and ran dagger develop --sdk=typescript it made a bunch of changes to my lock file (npm 10.7 default one from node 20.11`)

After those changes, I got the following error when trying to run dagger

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@sindresorhus/merge-streams' imported from /src/dagger/node_modules/execa/lib/io/output-async.js

Looking at the newly generated lock file...

vivid lintelBOT
#

What is the issue?

Was just trying out bun to run dagger, so I removed my package-lock.json file and generated a new bun.lockb file.

When running dagger, I get the following error

7   :     ModuleSource.resolveFromCaller DONE [32.0s]
9   :     ModuleSource.asModule: Module!
9   :     ModuleSource.asModule ERROR [1m4.0s]
9   :     ! failed to create module: select: failed to update codegen and runtime: failed to generate code: failed to call sdk module codegen: select: c...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Bumps the sdk-python group with 1 update in the /sdk/python/runtime directory: astral-sh/uv.

Updates astral-sh/uv from 0.4.26 to 0.4.28

Release notes
Sourced from astral-sh/uv's releases.

0.4.28
Release Notes
Enhancements

Add support for requesting free-threaded builds via +freethreaded (#8645)
Improve trusted publishing error messages (#8633)
Remove unneeded return from Maturin project template (#8604)
Skip Python interpreter discovery for uv export (...

vivid lintelBOT
vivid lintelBOT
#

What are you trying to do?

As mentioned in a [private discord channel](#slash message), it would be good to be able to output JSON structured logs from dagger call/dagger core/etc.

Why is this important to you?

This would be useful for ingesting dagger logs into other tooling, and allow easy post-build filtering, etc.

How are you currently working around this?

User doesn't seem to be right now - I'd ...

#

Today, we don't support dagger shell or .Terminal when using --progress=plain: https://github.com/dagger/dagger/blob/d4d759140e4964437f9468d6537ff7a9fd313837/dagql/idtui/frontend_plain.go#L225-L227

Sometimes this is true - e.g. in many CI environments, the terminal isn't a proper TTY (or doesn't have stdin). But when running with --progress=plain locally, it's totally possible that I'm running this within the context of a full TTY.

We should handle backgrounding the `frontendP...

#

It's possible to have multiple dependencies with the same name in dagger.json:

$ dagger init --name=test --sdk=go
$ dagger install github.com/shykes/gha
$ dagger install github.com/heuritech/gha

The resulting dagger.json:

{
  "name": "test",
  "sdk": "go",
  "dependencies": [
    {
      "name": "gha",
      "source": "github.com/heuritech/gha@strategy",
      "pin": "f0c4da95fb3e7e5351d17dfb1d20362d3ae8b2a2"
    },
    {
      "name": "gha",
   ...
vivid lintelBOT
#

What is the issue?

I'm trying to run dagger develop --sdk=python after the initiation with a name.

Dagger version

dagger v0.13.6 (registry.dagger.io/engine:v0.13.6) darwin/arm64

Steps to reproduce

dagger init --name=blah
dagger develop --sdk=python

Log output

โœ” connect 0.2s
โœ” cache request: mkfile /schema.json 0.0s
โœ” load cache: mkfile /schema.json 0.0s
โœ” cache request: blob://sha256:9121d31121f4c30e725664dd17c07133b4cb49e375a465f39f740736d4e...

vivid lintelBOT
vivid lintelBOT
#

Fixes https://github.com/dagger/dagger/issues/8676.

Refactor typedef resolution to be resolve by reference. The introspection starts from the entrypoint (which is the class named the same as the module) and recursively resolve every references.

Refactor the TS compiler API to be abstract with a AST that handle lookups, typedef resolutions and default value resolution.

Use imports to resolve default value that refers to an exported variable.

Add custom introspection error.

Imp...

vivid lintelBOT
ornate vigilBOT
vivid lintelBOT
#

Originally reported by @helderco in https://github.com/dagger/dagger/pull/8812#issuecomment-2447985322

It's possible to crash the engine (v0.13.6) deep in the telemetry stack:

panic: runtime error: cannot convert slice with length 0 to array or pointer to array with length 16
โ”‚
โ”‚ github.com/dagger/dagger/engine/telemetry.ReexportLogsFromPB({0x287f500, 0xc0b038b3b0}, {0x2873b50, 0xc08ceef800}, 0xc0846a8a80)
โ”‚     /app/engine/telemetry/logs.go:35 +0x9df
โ”‚ github.com/dagger/dagger...
vivid lintelBOT
#

Create a .doc builtin which can be called from any function and prints its documentation to standard output:

  • Function usage
  • Description
  • Required arguments
  • Optional arguments
  • Return type (maybe? if not showing available functions)

This is an elegant alternative to --help:

| With dagger call/dagger core | With dagger shell | F...

vivid lintelBOT
vivid lintelBOT
#

Problem

In dagger call, the user must express the value of each argument as single string value. In order to support object types (Container, Directory, Service etc), the CLI supports a "magic encoding" of these object types as a string. For example:

  • A Container type can be encoded as a remote docker image address, for example index.docker.io/alpine:latest
  • A Directory type can be encoded as either a remote git ref (https://github.com/dagger/dagger#main:docs) or a...
vivid lintelBOT
vivid lintelBOT
#

What are you trying to do?

I have a Dagger module that returns the IP of a remote Dagger engine as a string, and I would like to be able to export the string as an environment variable on the host.

Something like dagger call engine-ip export --env=_EXPERIMENTAL_DAGGER_RUNNER_HOST

Why is this important to you?

I want to use Dagger modules for everything, including setting up my environment (locally and in GHA).

How are you currently working around this?

`if _DAG_HOST=$(...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Bumps the sdk-python group in /sdk/python/runtime with 1 update: astral-sh/uv.

Updates astral-sh/uv from 0.4.28 to 0.4.29

Release notes
Sourced from astral-sh/uv's releases.

0.4.29
Release Notes
Enhancements

Sort errors during display in uv python install (#8684)
Update resolver to use disjointness checks instead of marker equality (#8661)
Add riscv64 to supported Python platform tags (#8660)

Bug fixes

Fix hard and soft float libc detection for manag...

#

Bumps go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.52.0 to 0.56.0.

Release notes
Sourced from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp's releases.

Release v1.31.0/v0.56.0/v0.25.0/v0.11.0/v0.6.0/v0.4.0/v0.3.0
Overview
Added

The Severitier and SeverityVar types are added to go.opentelemetry.io/contrib/processors/minsev allowing dynamic configuration of the severity used by the LogProces...

#

Bumps go.opentelemetry.io/otel from 1.27.0 to 1.31.0.

Changelog
Sourced from go.opentelemetry.io/otel's changelog.

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for the metrics sdk...

#

Bumps go.opentelemetry.io/otel/trace from 1.27.0 to 1.31.0.

Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for the...

#

Bumps the sdk-elixir group in /sdk/elixir with 1 update: credo.

Updates credo from 1.7.8 to 1.7.9

Release notes
Sourced from credo's releases.

v1.7.9
Check it out on Hex: https://hex.pm/packages/credo/1.7.9

Credo.Check.Refactor.ABCSize fixed false positive for pin operator (^)
Credo.Check.Readability.FunctionNames fixed false positive for pow operator (**)
Fixed a bug in Credo.Code.Parameters when couting parameters for functions with guards

Change...

vivid lintelBOT
#

Bumps go.opentelemetry.io/otel/metric from 1.27.0 to 1.31.0.

Changelog
Sourced from go.opentelemetry.io/otel/metric's changelog.

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for t...

#

Bumps the sdk-go group with 3 updates in the /sdk/go directory: github.com/adrg/xdg, github.com/vektah/gqlparser/v2 and google.golang.org/grpc.

Updates github.com/adrg/xdg from 0.5.1 to 0.5.3

Release notes
Sourced from github.com/adrg/xdg's releases.

v0.5.3
Changelog

Updated xdg.SearchRuntimeFile to also look in the operating system's temporary directory for runtime files.
This cover...

#

Bumps go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.27.0 to 1.31.0.

Changelog
Sourced from go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp's changelog.

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types....

#

Bumps go.opentelemetry.io/otel/sdk from 1.27.0 to 1.31.0.

Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType types. These will be used for configuring the exemplar reservoir for the met...

#

Bumps go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc from 1.27.0 to 1.31.0.

Changelog
Sourced from go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc's changelog.

[1.31.0/0.53.0/0.7.0/0.0.10] 2024-10-11
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar package which includes Exemplar, Filter, TraceBasedFilter, AlwaysOnFilter, HistogramReservoir, FixedSizeReservoir, Reservoir, Value and ValueType ty...

#

Bumps the sdk-python group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.

Updates astral-sh/ruff from 0.5.2 to 0.7.2

Release notes
Sourced from astral-sh/ruff's releases.

0.7.2
Release Notes
Preview features

Fix formatting of single with-item with trailing comment (#14005)
[pyupgrade] Add PEP 646 Unpack conversion to * with fix (UP044) (#13988)

Rule changes

Regenerate known_stdlibs.rs with stdlibs 2024.10.25 (#13963)
[flake8-no...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Bumps the sdk-python group in /sdk/python/runtime with 1 update: astral-sh/uv.

Updates astral-sh/uv from 0.4.29 to 0.4.30

Release notes
Sourced from astral-sh/uv's releases.

0.4.30
Release Notes
Enhancements

Add support for .env and custom env files in uv run (#8811)
Add support for --all-packages in uv run, uv sync, and uv export (#8742, #8741, #8739)
Allow use of --frozen with --all-packages in uv sync and uv export (#8760)
Show full error chain on t...

#

What is the issue?

When the engine autoscaled due to increased load, it took approximately 4 to 5 minutes to start jobs because of the size of the caches. During 20 to 30% of these autoscaled job executions, the engine suddenly stopped responding and left the jobs hanging.

When I look to engine logs or k8s logs I can't see any error, issue or event related to this other than screen shot of the engine logs and job logs.

Dagger version

v0.13.7

Steps to reproduce

It is happe...

vivid lintelBOT
#

What is the issue?

Dagger engine occasionally fails pipelines with unresolved module errors when a module has a local dependency within its own repository. This issue tends to arise multiple jobs at the same time not on jobs individually

Dagger version

v0.13.7

Steps to reproduce

Not sure, issue is flaky on engine side

Log output

$ dagger call --token env:DAGGER_GITLAB_TOKEN test --path $MODULE reports --output out/reports
1   : connect
2   :   connecting to...
vivid lintelBOT
#

Major improvements to github.com/dagger/dagger/modules/go, with all required features to build and test Dagger.

New configuration settings:

  • Download and build caches
  • Base container
  • Lldflags
  • Injected values
  • CGO support
  • Race detector
  • DWARF generation
  • Symbol table

New functions:

  • Build: build specified packages and return a directory
  • Binary: build the specified binary and return a file
  • Download: download dependencies to the cache
  • Test: run tests for t...
vivid lintelBOT
#
  • In github.com/dagger/dagger/modules/go, you can now pass "overlays" which can be installed on the base container to modify it. This can be used to install extra packages, attach external services, or any other custom modification.

  • github.com/dagger/dagger/modules/alpine now implements the Overlay interface used by the go module, such that any Alpine (or Wolfi) configuration can be passed as an overlay to the Go container

  • github.com/dagger/dagger takes advantage of this t...

vivid lintelBOT
vivid lintelBOT
#

I noticed a few easy fix issues while perusing engine logs from a test run earlier today. They technically aren't related but combining them into one PR for convenience.


engine: ignore missing cpu.stat/cpu.pressure files

We already ignored missing cgroup files for io.stat/io.pressure but
missed that for cpu files. These files can be missing if the engine
doesn't support cgroups for execs and re...

vivid lintelBOT
#

The 0.9.x docs archive includes "live" code snippets which rely on the API Playground. Once the Playground is decommissioned, those snippets will neither display nor execute in the 0.9.x docs archive.

The solution we have agreed on is to replace the "live" code snippets with static code snippets in the 0.9.x docs archive, so that users browsing the docs archive are not impacted by this change. This PR provides the instructions, scripts and assets needed to reliably rebuild the 0.9 docs ar...

vivid lintelBOT
vivid lintelBOT
#

What are you trying to do?

With the introduction of modules, developers can now reuse pieces of code for building their workflows, either built by them or other developers.

I mostly used my own modules so far, so adding new features or debugging module functionality wasn't particularly difficult.

When it comes to tinkering with third-party modules, especially for someone who isn't very familiar with how modules work, this may be more difficult.

This is how you do it today:

  • ...
vivid lintelBOT
#

Our engine image scans started failing with:

    {
      "Target": "sdk/php/composer.lock",
      "Class": "lang-pkgs",
      "Type": "composer",
      "Vulnerabilities": [
        {
          "VulnerabilityID": "CVE-2024-51736",
          "PkgID": "symfony/process@v7.1.3",
          "PkgName": "symfony/process",
          "PkgIdentifier": {
            "PURL": "pkg:composer/symfony/process@v7.1.3",
            "UID": "b6476f8141579de1"
          },
          "InstalledVers...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Creating an issue in our repo so I have somewhere to link to in our codebase pending creation of an upstream fix PR.

Noticed this while working on https://github.com/dagger/dagger/pull/8871

There's a bug upstream where:

  1. Two or more images are the same when uncompressed, but get referenced with different compression (i.e. gzip vs zstd)
  2. One of the images is lazy, but the other isn't
  3. The image is used as the "source" for a cache volume
    • Possible this happens in some other ...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

[!note]

Currently, dagger shell requires being run in a module, but sometimes all you want is core functions.

Make module loading optional:

  • If thereโ€™s no module in current directory, fallback to just core functions, unless -m is explicitly used
  • Provide a --no-load flag to dagger shell to skip loading a module even if it exists in current directory...
vivid lintelBOT
#

If you happen to have an ID value, the following does not work:

โ‹ˆ .load-directory-from-id "xxxxxx"
Error: response from query: input: loadDirectoryFromID resolve: Query.loadDirectoryFromID: missing required argument: "id"

This however, does work:

โ‹ˆ .load-directory-from-id $(.host | directory sdk)
_type: Directory
digest: sha256:bbe736962d26cc5a1927a08be6893988b42c5654e711f8d410dc63b95dd92093
entries:
    - CONTRIBUTING.md
    - cue
    - dotnet
    - ...
#

In non-interactive mode, the output of a function appears before its progress logs:

โฏ  dagger shell -c 'version'
v0.13.8-241108094143-763643425d30
โœ” connect 0.2s
โœ” loading module 3.4s
โœ” daggerDev: DaggerDev! 15.8s
โœ” DaggerDev.version: String! 0.0s

In interactive mode, the progress output just disappears afterwards:

โฏ  dagger shell -v
Dagger interactive shell. Type ".help" for more information. Press Ctrl+D to exit.
โ‹ˆ version
v0.13.8-241108094143-76364...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Inject Traceparent headers into client when TRACEPARENT env variable is presents.

Before:

โœ” Potato.containerEcho(stringArg: "hello"): Container! 1.2s
  โœ” exec /src/sdk/php/potato/entrypoint.php 1.1s | CPU Pressure (some): 163ยตs | CPU Pressure (full): 148ยตs
โœ” Void.stdout: String! 0.0s
  โœ” cache request: pull docker.io/library/alpine:latest@sha256:beefdbd8a1da6d2915566fde36db9db0b524eb737fc57cd1367effd16dc0d06d 0.0s
  โœ” load cache: exec echo hello 0.0s

After:

...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Just autogenerated stuff here.

FTR, hit lots of things big and small but will split them out to follow ups so this isn't blocked too long:

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

What is the issue?

I am trying to copy a platform-specific binary into a scratch image. Scratch images are platform-agnostic, so I should be able to do something like the following:


func (m *Harbor) BuildImage(ctx context.Context, platform string, pkg string) *dagger.Container {
	bc := m.buildBinary(ctx, platform, pkg)
	img := dag.Container(dagger.ContainerOpts{Platform: dagger.Platform(platform)}).
		From("scratch").
		WithFile("/bin/", bc.Container.File(bc.BinaryPat...
vivid lintelBOT
#

Bumps go.opentelemetry.io/otel/trace from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)
...

#

Bumps go.opentelemetry.io/otel from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)
Add Exemplar...

#

Bumps go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.52.0 to 0.57.0.

Release notes
Sourced from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp's releases.

Release v1.32.0/v0.57.0/v0.26.0/v0.12.0/v0.7.0/v0.5.0/v0.4.0
Overview
Added

Add the WithSource option to the go.opentelemetry.io/contrib/bridges/otelslog log bridge to set the code.* attributes in the log record that includes the source loc...

#

Bumps go.opentelemetry.io/otel/sdk from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)
Add ...

#
#

Bumps go.opentelemetry.io/otel/metric from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/metric's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850...

#
#

Bumps the sdk-python group in /sdk/python/runtime with 1 update: astral-sh/uv.

Updates astral-sh/uv from 0.4.30 to 0.5.1

Release notes
Sourced from astral-sh/uv's releases.

0.5.1
Release Notes
Enhancements

Allow installation of manylinux wheels on riscv64 (#8934)

Bug fixes

Build source distributions at top-level of cache (#8905)
Allow non-registry dependencies in uv pip list --outdated (#8939)
Compute superset of existing and required hashes when hea...

vivid lintelBOT
#

Bumps the sdk-elixir group with 1 update in the /sdk/elixir directory: credo.

Updates credo from 1.7.8 to 1.7.10

Release notes
Sourced from credo's releases.

v1.7.10
Check it out on Hex: https://hex.pm/packages/credo/1.7.10

Maintenance release

v1.7.9
Check it out on Hex: https://hex.pm/packages/credo/1.7.9

Credo.Check.Refactor.ABCSize fixed false positive for pin operator (^)
Credo.Check.Readability.FunctionNames fixed false positive for pow operator...

#

Bumps the sdk-python group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.

Updates astral-sh/ruff from 0.5.2 to 0.7.3

Release notes
Sourced from astral-sh/ruff's releases.

0.7.3
Release Notes
Preview features

Formatter: Disallow single-line implicit concatenated strings (#13928)
[flake8-pyi] Include all Python file types for PYI006 and PYI066 (#14059)
[flake8-simplify] Implement split-of-static-string (SIM905) (#14008)
[refurb] Im...

vivid lintelBOT
vivid lintelBOT
#

Hit this while thinking about improving our changelogs process - the spacing in all these files is quite different, and even when consistent, not really inline with what we do in our markdown docs anywhere else.

Previously, some of the changelogs (specifically typescript) had a very weird spacing layout. We should make all of the changelogs entirely consistent in their spacing, and generally follow the same patterns that we follow every where else in our markdown files.

vivid lintelBOT
#

What is the issue?

A service binding is not reachable after being dropped inside a terminal, when calling dagger with the --interactive mode

Dagger version

0.14.0

Steps to reproduce

From the dagger docs, e.g:

// Start and return an HTTP service
func (m *MyModule) HttpService() *dagger.Service {
	return dag.Container().
		From("python").
		WithWorkdir("/srv").
		WithNewFile("index.html", "Hello, wo...
vivid lintelBOT
#

What is the issue?

A cache volume is not present after being dropped inside a terminal, when calling dagger with the --interactive mode

Dagger version

0.14.0

Steps to reproduce

Using the example from the docs:

// Build an application using cached dependencies
func (m * MyModule) Build(
	// Source code location
	source *dagger.Directory,
) *dagger.Container {
	return dag.Container().
		From("golang:1.21").
		WithDirector...
vivid lintelBOT
vivid lintelBOT
#

Follow-up to https://github.com/dagger/dagger/pull/8682.

The previous fix I tried only handled the basic case of standalone enum values - and didn't handle wrapped types, like optionals and arrays.

So, instead, we move the logic into DecodeInput - which I originally implemented and thought it was a less elegant implementation, so changed it https://github.com/dagger/dagger/pull/8682#issuecomment-2411584300. Welp, turns out it handles those cases a lot better.

vivid lintelBOT
vivid lintelBOT
#

https://github.com/dagger/dagger/pull/8782#discussion_r1828846725 spotted an issue where ignore patterns where not applied when pulling a directory from git.

This PR fixes that issue.

Results now:

dagger call copy-directory-with-exclusions --source=https://github.com/dagger/dagger#main directory --path=/src entries

.changes
.dagger
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
README.md
RELEASING.md
core
dagql
docs
hack
helm
modules
sdk
vivid lintelBOT
#

[!note]

Motivation

Currently, you can start dagger shell with --no-load to skip loading a module if all you want is core functions. However, if it turns out you want to load the module after all, you have to exit the shell and re-run without the flag.

Would be useful to be able to load the module from within the interactive interpreter. Even better if you can load any module, not just the current one.

Spec...

vivid lintelBOT
#

I've seen this error popping up randomly on occasion: https://dagger.cloud/dagger/traces/866688214ddc91ea4a13dbbd6aa40db1?span=2928af623c703d97#2928af623c703d97:L11

	Error Trace:	/app/core/integration/module_test.go:1172
	            				/app/testctx/testctx.go:163
	Error:      	Received unexpected error:
	            	input: container.from.withExec.withExec.withExec.withMountedFile.withWorkdir.withExec.withMountedFile.withWorkdir.withNewFile.withExec.withWorkdir.withNewFile.withEx...
#

What is the issue?

Reported by @Vincent in discord, with a lovely repro.

I've been getting weird errors when creating secrets inside a module's constructor and trying to use them later on.
The actual use case is exchanging OIDC tokens for a token authenticating to a service, which I then need to use later on.
Here is a reproduction example:



### Dagger version

unclear, 11/12/2024

### Steps to reproduce

I have a module that generates and stores a secret on init...
#

While trying to debug a flake I was suspecting a cleanup step might be failing. Problem is all I'm getting is "context deadline exceeded", so if it is a cleanup step, I can't tell which one.

This updates any cleanup errors to be wrapped with the context on what specifically failed.


Will fix https://github.com/dagger/dagger/issues/8934


Draft for now since I want to repro in CI with the extra error wrapping to see if it helps track down the bug

vivid lintelBOT
#

This test started failing out of band in our CI on amd64 hosts.

Justin noticed that the published arm64v8/alpine image had changed from a single manifest to a multiplatform oci index w/ a single platform-specific manifest.

This broke the test because previously in the "single manifest" case the platform we tried to resolve the image with was completely ignored. After switching to the oci index, the platform actually mattered.

We were defaulting the platform to the host's platform whe...

vivid lintelBOT
vivid lintelBOT
#

Currently the dagger shell has a simple prompt which never shows context:

โ‹ˆ

It would be useful, and unsurprising, if the prompt showed additional context. But what information?

Possible options include:

  • current module address (for example github.com/dagger/dagger)
  • current module name (dagger)
  • current module version (main)
  • complete module address + version github.com/dagger/dagger@main)
  • current object type (Dagger, DaggerSdkPython, `Contai...
vivid lintelBOT
#

I saw the race detector go off in a test run where it appeared to be saying that the Go SDK CLI session code was still finishing an io.Copy to the LogOutput for the test after the test was done.

That io.Copy was running in an unsynchronized goroutine, so this seems entirely plausible in the case where it is still reading some buffered data from the stderr pipe after the child process exited.

This updates the SDK client's Close method to wait for that io.Copy to finish before returning...

vivid lintelBOT
#

What is the issue?

I'm just new for Dagger and brew install it, trying out to run the example code and then i hit this error, about latest engine version, i can't change the version but if i only use dagger init its will add a dagger.json file success with version 0.14.0 of the engine, but with SDK of python its not working.

Dagger version

v0.14.0

Steps to reproduce

dagger init --sdk=python --source=./dagger

Log output

โœ˜ ModuleSource.asModule(engineVersion: "lates...

vivid lintelBOT
#

The workflow runs a good mix of jobs, including jobs that:

  • take more than 20 minutes to run
  • finish in a few minutes and cache well
  • don't cache at all
  • require a handful of vCPUs
  • require 32 vCPUs
  • put a lot of disk I/O pressure

Tests were performed on a temporary repo since new workflows cannot run until they exist on the main branch. More details in the PR.

This change is an alternative to:


![Screenshot 2024-11-13...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Cheers to @shykes for finding this one :clinking_glasses:

โฏ dagger core container rootfs digest
goroutine 5186939 [running]:
runtime/debug.Stack()
        /usr/lib/go/src/runtime/debug/stack.go:26 +0x5e
github.com/dagger/dagger/dagql.(*Server).resolvePath.func1()
        /app/dagql/server.go:697 +0x77
panic({0x20e3240?, 0x3af1f80?})
        /usr/lib/go/src/runtime/panic.go:785 +0x132
github.com/dagger/dagger/core.(*Directory).Digest(0xc04f4426c0, {0x28a5830, 0xc04c3f50e0})
	...
vivid lintelBOT
#

While debugging an unrelated PR I realized that our terminal tests were not working as expected and that the Directory.terminal feature just didn't work at all:


tests: fix terminal tests not asserting as expected

Our terminal tests were not actually working how we thought they were.
Many of them were not waiting for prompts and instead just matching on
strings right away, which ended up including ...

vivid lintelBOT
vivid lintelBOT
#

What is the issue?

I was following the quickstart guide to experiment with Dagger in a large monolith repo. The problem was that Dagger is ignoring .gitignore and .dockerignore files for init process and transfers all files in the repository (including node_modules etc) into the Dagger context. This turned out to be extremely slow (~16min using the typescript SDK, ~6 min using the go SDK`). While everything worked at the end, the experience was not great and it was unclear what w...

vivid lintelBOT
#

Problem

I have the following pipeline:

func (m *Test) Test() *dagger.Container {
	return dag.Container().From("alpine").
		WithExec([]string{"sleep", "5"})
}

If I run that multiple times, I'll get a cached output as expected. Now, the moment that I add another exec after the last one, for some reason, the second to last exec gets re-executed and not computed from the cache.

i.e:

// Returns a container that echoes whatever string argument is pro...
vivid lintelBOT
#

What is the issue?

dagger call test obviously works, but this can be annoying when you need to be playing around in engine guts. go test should build and run on macOS so you can run against a built dev engine.

Dagger version

main

Steps to reproduce

go test ./dagql/idtui, or any other package with tests, really.

Log output

# github.com/dagger/dagger/engine/sources/gitdns
engine/sources/gitdns/source_unix.go:41:20: undefined: syscall.Unshare
engine/sources/g...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Seems to definitely be an issue with names that match the regexp [a-z]+[0-9]+

Repro:

$ dagger version
dagger v0.14.0 (registry.dagger.io/engine:v0.14.0) linux/amd64
$ dagger init --sdk=python --name=project2
$ dagger call container-echo --string-arg=hello stdout
โœ” connect 0.3s
โœ˜ loading module 1.8s
! failed to serve module: input: module.withSource.initialize resolve: failed to initialize module: failed to cal
l module "project2" to get functions: call constructor: process...
#

with new reserved keywords, including verbose, passing -vvv on the command line will give:

error: parse selections: parse field "specific": init arg "verbose" value as dagql.DynamicOptional (Boolean) using dagql.DynamicOptional: cannot create Boolean from int64

this changes the dagger call test boolean variable for verbose test output (passed to go test) to be called "testVerbose" instead to avoid this collision.

vivid lintelBOT
vivid lintelBOT
#

Problem

In the shell, .container | with-exec requires comma-separated arguments:

.container |
with-exec echo,hello,world |
stdout

But it should be instead:

.container |
with-exec echo hello world |
stdout

Solution

Change the syntax of with-exec to support the more natural with-exec echo hello world.

This is possible to do cleanly, because with-exec has a single required argument, and it's an array. In that case, the shel...

vivid lintelBOT
#

What is the issue?

Why we need this:

Dagger is awesome, but sometimes the docs can be tricky. This can cause real problems for developers:

  • Wasted time and frustration: Incomplete or unclear docs lead to developers spending hours searching for answers, slowing down their progress and causing frustration.
  • Increased errors: Misunderstandings due to poor docs can lead to errors in pipeline setup and configuration, causing builds to fail and wasting even more time.
  • ...
vivid lintelBOT
#

Currently impurity is static at the schema level: if a field is marked impure, it will never be cached, and IDs coming out of it will be
tainted.

This quickly improved insufficient: we want some APIs to determine whether they're pure at runtime, based on their inputs.

For example, we want this call:

cacheVolume(key: "foo")

to return a namespaced volume, expanding implicitly to:

cacheVolume(key: "foo", namespace: "modID").

With this change, we can just have `cacheVol...

vivid lintelBOT
#

Bumps the sdk-python group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.

Updates python from 032c526 to 2a6386a

Updates astral-sh/uv from 0.4.30 to 0.5.2

Release notes
Sourced from astral-sh/uv's releases.

0.5.2
Release Notes
Enhancements

Hide --no-system from uv pip tree CLI (#9040)
Allow configuration of Python and PyPy install mirrors in uv.toml (#8695)
Allow passing Python download mirrors to uv python install...

#

Bumps the sdk-java group in /sdk/java with 1 update: org.codehaus.mojo:versions-maven-plugin.

Updates org.codehaus.mojo:versions-maven-plugin from 2.17.1 to 2.18.0

Release notes
Sourced from org.codehaus.mojo:versions-maven-plugin's releases.

2.18.0
โ— NOTICE
Due to Doxia 2.x stack maven-site-plugin 3.20+ is required.
https://cwiki.apache.org/confluence/display/MAVEN/Towards+Doxia+2.0.0+Stack
Changes
๐Ÿš€ New features and improvements

Upgrade to Doxia...

vivid lintelBOT
#

Bumps the sdk-python group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.

Updates astral-sh/ruff from 0.5.2 to 0.7.4

Release notes
Sourced from astral-sh/ruff's releases.

0.7.4
Release Notes
Preview features

[flake8-datetimez] Detect usages of datetime.max/datetime.min (DTZ901) (#14288)
[flake8-logging] Implement root-logger-calls (LOG015) (#14302)
[flake8-no-pep420] Detect empty implicit namespace packages (INP001) (#14236)
[fla...

#
#

Bumps the docs group in /docs with 1 update: sass.

Updates sass from 1.80.6 to 1.81.0

Release notes
Sourced from sass's releases.

Dart Sass 1.81.0
To install Sass 1.81.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes

Fix a few cases where deprecation warnings weren't being emitted for global built-in functions whose names overlap with CSS calculations.

Add support fo...

vivid lintelBOT
#

Bumps cross-spawn from 7.0.3 to 7.0.5.

Changelog
Sourced from cross-spawn's changelog.

7.0.5 (2024-11-07)
Bug Fixes

fix escaping bug introduced by backtracking (640d391)

7.0.4 (2024-11-07)
Bug Fixes

disable regexp backtracking (#160) (5ff3a07)

Commits

0852683 chore(release): 7.0.5
640d391 fix: fix escaping bug introduced by backtracking
bff0c87 chore: remove codecov
a7c6abc chore: replace travis with github workflows
9b9246e chore(re...

vivid lintelBOT
#

What are you trying to do?

Today, Dagger enforces "some" validation rules on function parameters. For example, there is a way to define enums and enforce that a parameter passed to a function is a valid enum.

However, there are way more cases where validating input values would make sense and better support built into the SDKs would make module code more concise and easier to read.

Some examples:

  • version number
  • enums that are hard to represent as enums right now (eg. a limi...
#

What are you trying to do?

I'm writing some tests that require the IP addresses of Services. Unfortunately I can't use hostnames as it's for a bespoke load balancing configuration that requires IP addresses.

If using testcontainers-go this is a simple call on a container which provides you with the IP address. Following this idea would be incredibly useful as it avoids the need to either manually manage the lifecycle of a Service or bind containers to it to obtain this information ...

vivid lintelBOT
#

What is the issue?

Originally reported by @sagikazarmark [in discord](#daggernauts message).

It seems like a module importing a parent directory .. uses it's parents' dagger.json exclude rules when loading it's own source - so if the parent excludes the child, then the load will fail.

Dagger version

dagger v0.13.4 - dagger v0.14.0

Steps to reproduce

$ git clone git@github.com:sagikazarmark/daggerve...
vivid lintelBOT
vivid lintelBOT
#

Problem

When using dagger shell, local changes are not picked up.

  • When developing a module, changes to the local module are ignored after initial load.
  • When opening a local directory, changes to the directory are ignored after the first load.

To use the shell in the local devloop, once has to exit and re-run the shell, which is a pain.

Solution

Make it easy and intuitive to reload local modules and directories, without breaking the overall Dagger experience - someh...

vivid lintelBOT
#

Problem

One benefit of dagger shell is that it could potentially match the convenience of bash scripts. ๐Ÿ‘ One drawback is that it could potentially match the portability of bash scripts ๐Ÿ‘Ž

Since the shell interprets scripts in the CLI, it gets its own sandbox, separate from module runtimes. This is an opportunity to design the sandbox for the ideal balance of portability and convenience.

Solution

We are still searching for the ideal balance of portability and conveni...

vivid lintelBOT
#

Some users have been encountering issues when trying out out Git credential helpers in CI

I am moving the conversation to its own issue @pspurlock, and cleaning up the other (everything was screenshotted)

After discussing with @nipuna-perera, they do manage to make it work ; It seems to be a configuration issue / patterns to use, which shall become a standard.

Next step on my end:

  • [ ] Working repro for GitHub / GitLab / BitBucket
#

Overview

In the context of the shell, it's no longer necessary to auto-print objects. Instead, there should be a .print and perhaps also a .json builtin, that you can easily add to the pipeline. By default, a pipeline that succeeds should simply print nothing.

Examples

No print when returning an object:

โ‹ˆ .http https://dagger.io
โ‹ˆ

To learn more, .doc:

โ‹ˆ .http https://dagger.io | .doc
File

DESCRIPTION

A file.

REFERENCE

https://docs.dag...
vivid lintelBOT
#

This is the first time bumping since adding the replace pinning to module go.mods, and it took a bit of a rework to deal with go.work.

In particular, any modules that rely on go.work need to additionally have a replace rule installed to go.work, otherwise you'll get an error as soon as you bump one module's individual replace rules.

So now the go.mod and go.work replacing happens by running go mod edit and go work edit in PostCommands, which also avoids the issue of `modfile.Parse...

vivid lintelBOT
#

Problem

As of 0.14.0, exporting to the local filesystem is broken:

  1. export to a path without . or / characters: silent fail. The directory is not created.
โ‹ˆ .directory | export mydir
โ‹ˆ
  1. export to any path with . or / characters: error.
โ‹ˆ .directory | export mydir/foo
declare: invalid name "mydir/foo"
โ‹ˆ .directory | export /foo
declare: invalid name "/foo"

โ‹ˆ .directory | export ./foo
declare: invalid name "....

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

We introduced an alternative workflow which splits the big test suites into smaller ones that have appropriately-sized CI runners. Context:

Now that we have been running both workflows in parallel for 4 months and have a long-term understanding of their behaviour, we are going to stop running the less reliable workflow and save on infra costs. For more details on the two worfklows see this original ...

vivid lintelBOT
#

They have been failing days in a row since they require at least 2x the CPU resources that are made available by default. We could bump the timeout, but that will only result in higher infra costs and not provide much value - we already know about the limitations & current behaviour.

We are also only keeping pipelines for a subset of SDKs. The goal is to have decent coverage, not be exhaustive.

Also run the workflow twice so that we test the caching efficiency.

vivid lintelBOT
#

Context

The shell introduces a new concept of builtins (.help, .login etc). Builtins can be contextually in a pipeline (for example .container | from alpine | .doc) which makes them very useful.

Problem

The relationship between shell builtins and core API is unclear: some builtins map directly to core API calls, others don't.

This creates the risk of a "shadow API". We should clarify the relationship that we want.

Solution

A solution is still being discussed. ...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

This is something that has come up quite a bit recently, mostly in the context of https://github.com/dagger/dagger/pull/8800#issuecomment-2479499749, but also around https://github.com/dagger/dagger/issues/8766#issuecomment-2474813161.

Even when we have a way to configure engine settings, there are a collection of user configurations that would make sense to apply per client-session, without requiring a whole engine reload. For example:

  • Registry settings - today these are all only in ...
vivid lintelBOT
vivid lintelBOT
#

See #8800 - we now have a new way of doing configuration.

These defaults from this file should instead be part of our code - and shouldn't be encoded in a default file (which makes making changes to it more difficult).

Currently, our default configuration includes:

  • debug = true (which is the default in the code already)
  • trace = false (also the default)
  • insecure-entitlements = ["security.insecure"]
    • This is the tricky one - we should move this to be the default. It shou...
vivid lintelBOT
#

Example:

Best guess is that we are triggering the qemu emulator code paths, which are not super reliable; would not be surprised if it's choking on the compilation of the go std lib since that's probably extra...

vivid lintelBOT
#

this is just a poc to try out gotestsum with CI. The benefits includes a little clearer output (more work needs to be done there) and that we can archive results in a json file, which we can then ingest in a tests dashboard to look at the trends over the executions.

happy to discuss if folks have opinions/concerns regarding this. I am just evaluating how this can improve debugging of CI and finding flakes.

#

What is the issue?

in CI, new exec memory telemetry code frequently logs that it's unable to sample

time="2024-11-19T20:14:22Z" level=error msg="failed to sample cgrouperrfailed to read memory.current file: open /sys/fs/cgroup/buildkit/7d9frfh304vd9w5qowkhfo01o/memory.current: no such file or directory" span="dagger call files" spanID=acb2ecacc69e0a0b traceID=c542a64c690b08dde82a78e17f46c025

[example](https://v3.dagger.cloud/dagger/traces/c542a64c690b08dde82a78e17f46c025?...

vivid lintelBOT
#

Fixes https://github.com/dagger/dagger/issues/8554

While running some tests locally for the (unrelated) filesync PR I accidentally stumbled on a set of tests to run that coincidentally repro'd the flake in #8554 pretty consistently locally:

./hack/with-dev go test -v -run='TestModule/TestDaggerTerminal|TestModule/TestDaggerUp' -count=10 -parallel=8 ./core/integration/

I would hit the flake where the on_failure test hung after 3-4 counts pretty consistently. The set of tests...

#

Follow-up of #python message

The Python SDK now relies on the ghcr.io/astral-sh/uv container image:

with the migration to uv (for python sdk) there is a new container image used (ghcr.io/astral-sh/uv). Now in enterprise environments that is not allowed, like in my case and you need to set container registry mirror. The problem with that is that our mirror requires credentials and I can not change than. I also can...

vivid lintelBOT
#

What is the issue?

I've been experimenting with gpu-enabled Dagger engine on Fly.io: https://github.com/gerhard/daggerverse/pull/4 in order to get an easy access to a physical GPU usable with Dagger.

I ran some examples to re-evaluate the ability for Dagger to use a GPU, and it seems to be all broken...

Dagger version

dagger v0.14.0 (registry.dagger.io/engine:v0.14.0) darwin/arm64

Steps to reproduce

Using a remote dagger engine (`export _EXPERIMENTAL_DAGGER_RUNNER_HOST=tcp...

vivid lintelBOT
#

as a follow up of https://github.com/dagger/dagger/pull/8724#discussion_r1848219633, we want to possibly revisit later the key used for namespacing the cache volume.

originally the idea was to use module digest, but that would mean if change the module source, the new cache volume will be created, so as part of https://github.com/dagger/dagger/pull/8724 we are creating cache volume based on modName + modPath

This may bring up its own set of challenges, so keeping this issue to tra...

vivid lintelBOT
#

Motivation

.doc is used for some things and .help for others. We can simplify by expanding the scope of .help and replacing .doc with .help.

What about .deps?

Weโ€™ve already merged .functions into .doc for an object type. We could also merge .deps into .help for a module.

Bikeshedding

Letโ€™s take the opportunity to bikeshed improvements to what .help looks like for:

  • A module (or main object)
  • An object type
  • Any other type
  • A function
  • A ...
vivid lintelBOT
#

You can currently set any module as the current default one, even if itโ€™s different from the module in the current local directory:

dagger-dev โ‹ˆ .load wolfi | .use
wolfi โ‹ˆ container | ...

@shykes has mentioned a few times heโ€™d like to be able to โ€œset the contextโ€ to any type, not just a module. For example:

dagger-dev โ‹ˆ sdk | python | .use
dagger-dev โ–ถ PythonSdk โ‹ˆ test

Notice the prompt change, showing the current context with โ–ถ โ‹ˆ.

Could be a different...

#

Follow-up to:

Been discussing with @shykes on [Discord](#1296732593282224148 message), trying to figure out a consistent way to:

  • load any module
  • use a moduleโ€™s dependency
  • set constructor arguments in all cases
  • set a loaded module as the default โ€œnamespaceโ€

[!NOTE]
Not sure what to put here yet since the discussion is ...

vivid lintelBOT
#

With https://github.com/dagger/dagger/pull/8800 about to merge, we can substantially improve our engine configuration docs.

All engine configuration for engine.json and engine.toml are moved into engine.mdx. This is no longer split up across multiple pages which are harder to navigate. As part of this:

  • custom-registry.mdx is removed and merged into this now.
  • The custom-runner.mdx page is reworked to only include information about starting an engine.
  • custom-ca.mdx and...
vivid lintelBOT
#
vivid lintelBOT
#

Start implementing a ruby sdk.

[!Warning]
This is work in progress

Ruby SDK

A generated ruby client can be found in /sdk/ruby. The code generation is working, and a Go runtime is provided.

To generate a new module using ruby:

$ dagger init --sdk=ruby testruby
$ cd testruby
$ dagger run -q ruby main.rb hello-world Dagger
hello Dagger

ToDo:

  • complete .dagger/sdk_ruby to be able to test/publish/bump (see next about Gem)
  • moar tests
  • telemetry
    ...
vivid lintelBOT
#

What happened? What did you expect to happen?

For context, I'm one of those devs, and i think there are many of us out there, that almost never uses interactive repls or shells outside of my highly-customized zsh and the occaisonal webgui database query frontend.

I see the argument that folks are gonna write wrapper scripts for call regardless of SDK programmability, but is the idea here to build a featureful enough dagger shell that folks will be writing and committing dagger shel...

vivid lintelBOT
vivid lintelBOT
#

Decouple provisioning from the TS SDK to dynamically load it depending of the context of execution.

  • If used as a library: provision from env then from binary (install if it doesn't exist).
  • If used as a module: provision from env only.

This is a requirement to support Deno since it has difficulties with syscalls.
It's also interesting to make the dependency remote (but that will come later indeed).

I also refactored a bit the overall architecture of the directories to make it clea...

#

In dagger shell, calling a function with an argument that is an integer, causes a panic with "unsupported argument of kind float64".

Example:

โ‹ˆ .container | with-exposed-port 80

In v0.14.0 this results in the following output:

                                   panic: unsupported argument of kind float64

                                                                              goroutine 109 [running]:
                                         ...
vivid lintelBOT
#

Follow-up to #8442 for better backwards compatibility.

We'll still break anyone relying on .Error() to contain Stdout/Stderr, but at least now they can check the Stdout/Stderr fields on the error, which is more explicit anyway.

Included some prior attempts at preserving even the Error() behavior, but I think it's much too brittle to rely on, so I reverted it and added the alternative (less backwards-compatible) approach on top.

vivid lintelBOT
vivid lintelBOT
#

Overview

This is a proposal for a complete navigation model in dagger shell. It defines:

  • Filesystem navigation
  • Module loading
  • Command execution

And the relationship between those features.

Filesystem navigation

The dagger shell presents a virtual filesystem for the user to navigate.

Addressing

  • An address in the virtual filesystem has two components: a context and a path.

The dagger shell has a working directory which indicates its location in a ...

vivid lintelBOT
vivid lintelBOT
#

Some various little things found while investigating TTY magic in the progress output. Original discussion [in discord](#maintainers message).

It seems like we'll also need a bubbletea fix, as noticed by @vito:

https://github.com/charmbracelet/bubbletea/blob/4ad07926d7ff00bc21a05b2536d82a7cc629225e/tea.go#L738-L740 it does this unconditionally vs. https://github.com/charmbracelet/bubbletea/blob/4ad07926d7ff00bc21a05b...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Bumps the sdk-elixir group in /sdk/elixir with 1 update: ex_doc.

Updates ex_doc from 0.34.2 to 0.35.1

Changelog
Sourced from ex_doc's changelog.

v0.35.1 (2024-11-21)

Bug fixes

Make sure symlinks are copied from assets directory
Discard private functions documented by EDoc

v0.35.0 (2024-11-19)

Enhancements

Store proglang in searchdata.js
Allow searching for atoms inside backticks
Add support for nominal types from Erlang/OTP 28
Support a ne...

vivid lintelBOT
#

Bumps the sdk-python group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.

Updates python from 032c526 to 2a6386a

Updates astral-sh/uv from 0.4.30 to 0.5.4

Release notes
Sourced from astral-sh/uv's releases.

0.5.4
Release Notes
Enhancements

Accept either singular or plural values for CLI requirements (#9196)
Add --all-groups to uv sync, uv run, uv export, and uv tree (#8892)
Add a progress bar to uv tree --outdated ...

#

Bumps the sdk-python group in /sdk/python with 1 update: hatchling.

Updates hatchling from 1.25.0 to 1.26.3

Release notes
Sourced from hatchling's releases.

Hatchling v1.26.3
Fixed:

Support an old import path that is still used by some consumers like Hatch

Hatchling v1.26.2
Fixed:

Back-populate string license fields (License-Expression) for core metadata versions prior to 2.4
Remove the License-Expression and License-Files core metadata from version 2....

#

Bumps the sdk-python group in /modules/ruff/build with 1 update: astral-sh/ruff.

Updates astral-sh/ruff from 0.7.4 to 0.8.0

Release notes
Sourced from astral-sh/ruff's releases.

0.8.0
Release Notes
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
See also, the "Remapped rules" section which may result in disabled rules.

Default to Python 3.9
Ruff now defaults to Python 3.9 instead of 3.8 if no exp...

vivid lintelBOT
#

Previously, calling dagger install with no name would bizarrely insert it into the beginning of the dagger.json dependencies field. Then calling dagger develop would fix it.

This was an absurd little pet-peeve, so took some time to fix it - it will be nice when we can clean up ModuleSource.resolveFromCaller, since trying to understand that for this bug was by far the trickiest bit to actually understand and track.

This is what was happening:

  • We call updateDeps to update o...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#
Error: input: goreleaser failed to set call inputs: failed to load contextual arg "source": failed to load contextual directory "/": failed to get dir instance: failed to get blob descriptor: failed to solve blobsource: failed to load ref for blob snapshot: missing descriptor handlers for lazy blobs [sha256:391afdd16053cec967706502836ef1516804a1f0e7550d824c9b08b61eac13b9]

Currently in a broken state. @sipsma let me know what information will help to debug this

vivid lintelBOT
#

This PR originates from a follow-up of: https://github.com/dagger/dagger/pull/8805/commits/e86d0d4c88981532bd0840ebd809e7b2d18fc2dd

The same issue exist for the SSH ref:

In order for a function to be granted selective access to a socket, the socket needs to appear in the dagql Call. Previously the socket was just set on a field in the returned struct, now it is in the returned dagql.Instance and thus passes to function clients through args.


In order to implement that,
vivid lintelBOT
vivid lintelBOT
#

What is the issue?

The CLI continues to run after the Engine stops running. This is particularly problematic when the Engine exits / gets killed and the CLI continues to run.

Furthermore, pressing q once does not quit the CLI. In other words, the CLI is not able to terminate gracefully when it's not connected to the Engine.

Dagger version

dagger v0.14.0 (registry.dagger.io/engine:v0.14.0) darwin/amd64

Steps to reproduce

  1. Run dagger call docs lint
  2. Wait for...
vivid lintelBOT
#

[!WARNING]

Opening to track, and to show current progress. This is not ready for general use yet!

TODO:

  • [x] Determine "code completion context" at cursor
  • [x] Autocomplete flags from context
  • [ ] Autocomplete args of certain types from context (e.g. dagger.File/dagger.Directory)
    • This probably requires some way of parsing flags during auto-completion :cry:
  • [x] Autocomplete command names from context
  • [ ] Support partial parse trees
    • Probably requires modify...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Fixes breakage on main in telemetry tests ๐Ÿ™

Tests failed because now we use the OTel detectors (via #9054), but we haven't actually been using the appropriate version of semconv for the version of OTel we're using, which OTel whines about, even though they're both semantically v1.x.x. This whole thing is pretty annoying for a package that's meant to just be a bunch of canonical names for common attributes. But, that's life.

vivid lintelBOT
#

When loading a module by local path, the load may succeed or fail depending on the current workdir - specifically, dependending on whether the current workdir is inside our outside the target module's context.

Example:

#!/usr/bin/env dagger shell

.load github.com/dagger/dagger |
dev |
with-directory /tmp/src $(
    .git https://github.com/dagger/dagger |
    commit c58e58e70af3b3cab15154878253b707283b2740 |
    tree
) |
# First call from inside the context: will su...
vivid lintelBOT
#

Closes https://github.com/dagger/dagger/issues/8967

Took a first swing at allowing $schema in the parsed config, and writing it back if it exists.

It does not write a value by default, nor does it actually enforce that the json file abides by the schema (technically the URI could point to a completely random schema, or not resolve in the first place).

Primarily for the benefit of local development, because IDEs can help with descriptions and autocompletion if a $schema property is ...

vivid lintelBOT
#

Resolves @marcosnils' comment here: https://github.com/dagger/dagger/issues/8967#issuecomment-2505105814

Apparently, we're only publishing a single version of the schema currently which I assume will cause issues given that we should set the same version as engineVersion has.

To resolve this, we generate versioned schemas. Note: we treat the "next" version as the generated schema to keep regenerating on main - once we release a version, then this increases, freezing that schema, a...

vivid lintelBOT
#

https://github.com/dagger/dagger/blob/6a237d77d1277951d41f307b2505eee44a110747/docs/current_docs/integrations/nerdctl.mdx?plain=1#L15

The line above seems to imply that dagger can be used with rootless containers.

However, https://github.com/dagger/dagger/blob/main/core/docs/d7yxc-operator_manual.md#can-i-run-the-dagger-engine-as-a-rootless-container states very explicitely that the Engine cannot be ran rootless.

Would it be useful to clarify that point on the nerdctl page ? Or did...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

What happened? What did you expect to happen?

Hi all

I'm trying to run my Dagger pipeline in a GitLab CI and I get an error while connecting to the Dagger engine.

Here my .gitlab-ci.yml file (almost the same than https://docs.dagger.io/integrations/gitlab/#examples)

.docker:
  image: docker:latest
  services:
    - docker:${DOCKER_VERSION}-dind
  variables:
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_...
vivid lintelBOT
vivid lintelBOT
#

Problem

Dagger can write files to the host filesystem, but the export logic is very crude, and requires careful handholding by the user. As a result, Dagger is awkward to use for export-heavy tasks such as code generation.

Limitations of the export logic:

  1. A path argument is always required (more work for the user)
  2. It can only add files by default, not remove them
  3. When setting wipe: true, it can easily remove too much. In combination with the mandatory path, it is a ...
vivid lintelBOT
#

Bumps the sdk-go group in /sdk/go with 1 update: github.com/vektah/gqlparser/v2.

Updates github.com/vektah/gqlparser/v2 from 2.5.19 to 2.5.20

Release notes
Sourced from github.com/vektah/gqlparser/v2's releases.

v2.5.20
What's Changed

Update to Go 1.22 as one before current Go by @โ€‹StevenACoffman in vektah/gqlparser#334
Bump the actions-deps group across 1 directory with 2 updates by @โ€‹dependabot in vektah/gqlparser#333

Full Changelog: https://git...

#

Bumps go.opentelemetry.io/otel/sdk/metric from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/sdk/metric's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK...

#

Bumps go.opentelemetry.io/otel from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)
Add Exemplar...

#
#
#

Bumps go.opentelemetry.io/otel/sdk from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)
Add ...

#

Bumps the sdk-python group in /sdk/python/runtime with 1 update: astral-sh/uv.

Updates astral-sh/uv from 0.5.4 to 0.5.5

Release notes
Sourced from astral-sh/uv's releases.

0.5.5
Release Notes
Enhancements

Add aliases for build backend requests (#9294)
Avoid displaying empty paths (#9312)
Allow constraints in uv tool upgrade (#9375)
Remove conflict between --no-sync and --frozen in uv run (#9400)
Respect dependency sources in overrides and constraints (...

#

Bumps the sdk-python group in /modules/ruff/build with 1 update: astral-sh/ruff.

Updates astral-sh/ruff from 0.8.0 to 0.8.1

Release notes
Sourced from astral-sh/ruff's releases.

0.8.1
Release Notes
Preview features

Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions (#14625)
Formatter: Consider quotes inside format-specs when choosing the quotes for an f-string (#14493)
Formatter: Do not consider f-strings with escaped...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Fixes https://github.com/dagger/dagger/issues/9091

CI was recently broken due to a change on GitLab's end, when parsing a ref.

In order to isolate the root of the repo to the subdir, we rely on Go's logic:

  1. Statically analyze the ref
  2. If no match, query the git provider with ref?go-get=1

It turns out that GitLab recently introduced a change that normalizes refs with ../, when querying refs such as gitlab.com/foo/bar/baz/../..?go-get=1, it now becomes: `gitlab.com/foo/...

vivid lintelBOT
#

What is the issue?

Recently we upgraded to 0.14.0, we are getting failure for one of docker build

failed to resolve dockerfile: unknown API capability exec.validexitcode

the same docker file worked with 0.13.0 engine

upon discsussing on discord it's found that if dockerfile contains #syntax directive it's seems to fail with new engine 0.14.0

thread here - https://discord.com/channels/707636530424053791/1313151840082202686

Dagger version

dagger v0.14.0

Steps...

vivid lintelBOT
#

What is the issue?

It's been a long while since I have used the terminal feature, but I know it did work for sure around the v0.10. There's a chance a bug was introduced a while back and I can't give a good timeline of when something may have changed, sorry.

The terminal feature is not working on the windows binary and I think it's easy to replicate with just a simple container from and terminal chained command.

I noticed something odd, after trying to debug some adhoc stuff I ...

vivid lintelBOT
#

Closes https://github.com/dagger/dagger/issues/9035

Todo

  • [x] Command execution lookup
  • [x] Dynamic module loading through .doc
  • [x] Document a module, separately from its main object
  • [x] Migrate core API builtins to .stdlib
  • [x] Command disambiguation with .deps and .stdlib
  • [ ] Replace printing object fields with showing list of available functions
  • [ ] More tests
  • [ ] Introduce the โ€œcontext workdirโ€ and resolve paths relative to it
  • [ ] Filesystem navigat...
vivid lintelBOT
vivid lintelBOT
#

What is the issue?

https://docs.dagger.io/api/enumerations is not working as expected on the Go SDK?

Did not confirm for other SDKs

Dagger version

dagger v0.14.0 (registry.dagger.io/engine:v0.14.0) windows/amd64

Steps to reproduce

type Language = string

const (
	// CSharp is the C# language
	CSharp Language = "cs"
	// Cpp is the C++ language
	Cpp Language = "cpp"
	// Go is the Go language
	Go Language = "go"
	// Python is the Python language
	Python Langu...
vivid lintelBOT
ornate vigilBOT
#

Thank you for updating the documentation. While Dagger 0.14.0 allows me to access private remote modules via HTTPS on my local machine, I still cannot access the same module from a GitLab CI pipeline. Thus, it would be helpful if we could also add some examples for private modules on the โ€œhttps://docs.dagger.io/integrations/ciโ€ site.

For context: I have a private module on our self-hosted GitLab instance. While I can access the module from...

vivid lintelBOT
ornate vigilBOT
vivid lintelBOT
#

Similar in theme to #9036, but this time to fix this very annoying segfault flake: https://github.com/dagger/dagger/actions/runs/12163689482/job/33923486378

cc -std=gnu99 -static -s -Wall -Werror -O3 -o dumb-init dumb-init.c
Stderr:
cc: internal compiler error: Segmentation fault signal terminated program cc1
Please submit a full bug report, with preprocessed source (by using -freport-bug).
See  for instructions.
make: *** [Makefile:11: build] Error 4

If we guess that thi...

vivid lintelBOT
vivid lintelBOT
#

What are you trying to do?

I would like a way to express an explicit dependency in the DAG between two containers without necessarily passing an artifact between them. Today, containers can depend on services (WithServiceBinding) and they can depend on other containers with artifacts (create a file in container 1, then WithFile("/tmp/foo.txt", c1.File("/tmp/foo.txt"))) -- it'd be nice to not require the file.

Why is this important to you?

I have an integration test setup where...

vivid lintelBOT
#

for profiling and fast dev loops, it's often useful to run tests on your host machine aimed at a ./hack/dev-built engine.

./hack/dev go test -count=1 -v -run TestModule/TestLots ./core/integration

on MacOS, many tests won't run locally because we often upload a local dagger CLI binary as part of the test. this PR teaches dev-export to copy the engine container's linux binary to ./bin/dagger-linux, then wires that path out through mage/engine.go so it can be consumed by ./co...

vivid lintelBOT
#

Fixes #7388

This PR adds a direct File() API to create files without going through Directory().WithNewFile(). This simplifies the API and improves user experience based on multiple user requests.

Example usage:

myFile := dag.File("file.json", "{}")

Previously:

myFile := dag.Directory().WithNewFile("file.json", "{}").File("file.json")

Related issues:

  • #3028
  • #3884

Link to Devin run: https://preview.devin.ai/devin/ac6de3e6bf454a7fa256cc8b18960cca

vivid lintelBOT
vivid lintelBOT
#

[!NOTE]

This is a proposal! Thoughts wanted :thinking:

We might consider this a breaking change, so should probably put it behind our module compat if we choose to take it.

This is fairly useful, and matches the output of tar xvf - it makes it a lot easier to inspect and traverse a filesystem using this.

This came up while working with a filesystem, and wanting to filter out the results of Glob to only the directories, or to only the leaf-level files.

vivid lintelBOT
#

fix: rename newFile to file to avoid Go SDK naming conflicts

This PR renames the newFile method to file in the Directory API to resolve naming conflicts in the Go SDK's code generation. This change simplifies the File() API implementation and maintains consistency across SDK implementations.

Changes:

  • Renamed newFile to file in dagql.Func call
  • Updated corresponding implementation method name from getFile to file

Link to Devin run: https://preview.devin.ai/devin/6f16e7bf2aaa4...

vivid lintelBOT
#

What I did

dagger shell -c 'FUNC=$(.container | from alpine | with-exec echo,foo | stdout); .doc $FUNC'

What I expected

Error: no function "foo" in type "Query"

What happens

Error: no function "DSH:eyJjYWxscyI6W3sib2JqZWN0IjoiUXVlcnkiLCJuYW1lIjoiY29udGFpbmVyIiwiYXJndW1lbnRzIjp7fSwicmV0dXJuT2JqZWN0IjoiQ29udGFpbmVyIn0seyJvYmplY3QiOiJDb250YWluZXIiLCJuYW1lIjoiZnJvbSIsImFyZ3VtZW50cyI6eyJhZGRyZXNzIjoiYWxwaW5lIn0sInJldHVybk9iamVjdCI6IkNvbnRhaW5...
vivid lintelBOT
vivid lintelBOT
#

You canโ€™t create a module that conflicts with a core type:

โฏ dagger init --sdk=go container
Initialized module container in container
โฏ dagger functions -m container
Error: get module name: input: failed to get schema: failed to get schema for module "container": type "Container" is already defined by module "daggercore"

But a module doesnโ€™t just create an object named after the moduleโ€™s name, it also creates a constructor field under Query with the same name.

However, f...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

What are you trying to do?

It would be nice to have a core function to get a tarball from a directory or a file

Methods api examples :
Directory.AsTarball()
File.AsTarball()

And eventually, the reverse functions, to get a directory from a tarball.

Why is this important to you?

We use a lot tarballs in our ci/cd pipelines and that make a lot of the same boilerplate to get what we need.

How are you currently working around this?

I use a basic alpine container, mount t...

vivid lintelBOT
vivid lintelBOT
#

Overview

When alpinelinux.org is down, building dagger fails. This may also affect other dagger modules that use alpine in the same way we do.

What I did

dagger call -m github.com/dagger/dagger dev

What I expected

A successful build of the latest dagger engine

What happened

Intermittently I get:

[...]
โ”‚ โœ” alpine(branch: "3.20.2", packages: ["build-base", "go", "git"]): Alpine! 0.2s
โ”‚ โˆ… .container: Container! 0.2s
โ”‚ ! failed to get alpine...
vivid lintelBOT
#

(this is tested on #9097, not main)

When I call a module, I can pass mandatory arguments (positional args) but not optional arguments.

What I did

(includes bootstrap from stable dagger to load the right version of dagger)

dagger call -m github.com/helderco/dagger@helder/dev-4805-shell-navigation-model \
 dev with-exec dagger,shell,-c,'github.com/dagger/dagger/modules/go --version=1.23.0 https://github.com/dagger/dagger | .doc'

What I expected

The module is...

vivid lintelBOT
vivid lintelBOT
#

Documentation: Add authentication and best practices for GitHub and GitLab integrations

This PR adds authentication patterns and best practices for working with private repositories in GitHub Actions and GitLab CI. The changes are focused on providing clear guidance while preserving existing documentation structure.

Changes

  • Add authentication sections with links to Git Credential Helpers guide
  • Add best practices for working with private repositories
  • Preserve existing examples an...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Follow-up to #9130.

There's a few issues in the merged PR:

  • Committed a built binary
  • Hardcoded string in too many places
  • Overly complex logic
  • Unnecessary logs
  • Manual string comparisons instead of strconv.ParseBool
  • No tests

I've fixed all these, and simplified the code. I've also renamed the variable to _EXPERIMENTAL_DAGGER_LEAVE_OLD_ENGINE, since I think this is more inline with other variables that we use in dagger. But happy to leave it as is.

vivid lintelBOT
#

Bumps go.opentelemetry.io/otel/trace from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850)
...

#

Bumps the sdk-go group with 3 updates in the /sdk/go directory: github.com/vektah/gqlparser/v2, golang.org/x/sync and google.golang.org/grpc.

Updates github.com/vektah/gqlparser/v2 from 2.5.19 to 2.5.20

Release notes
Sourced from github.com/vektah/gqlparser/v2's releases.

v2.5.20
What's Changed

Update to Go 1.22 as one before current Go by @โ€‹StevenACoffman in vektah/gqlparser#334
...

#

Bumps go.opentelemetry.io/proto/otlp from 1.3.1 to 1.4.0.

Release notes
Sourced from go.opentelemetry.io/proto/otlp's releases.

Release v1.4.0
Release of the v1.4.0 version of the OTLP, including updated Profiles signal.
What's Changed

Bump google.golang.org/protobuf from 1.34.1 to 1.34.2 in /otlp by @โ€‹dependabot in open-telemetry/opentelemetry-proto-go#179
Bump google.golang.org/protobuf from 1.34.1 to 1.34.2 in /slim/otlp by @โ€‹d...

#

Bumps the sdk-python group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.

Updates python from 2a6386a to 2b00791

Updates astral-sh/uv from 0.5.4 to 0.5.7

Release notes
Sourced from astral-sh/uv's releases.

0.5.7
Release Notes
Enhancements

Ignore dynamic version in source dist (#9549)
Improve build frontend error handling (#9611)
Un-hide uv build --no-build-logs option (#9642)
Flag version mismatch between sdist and...

#

Bumps go.opentelemetry.io/otel/metric from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/metric's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK. (#5850...

#
#

Bumps go.opentelemetry.io/otel/sdk/metric from 1.27.0 to 1.32.0.

Changelog
Sourced from go.opentelemetry.io/otel/sdk/metric's changelog.

[1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08
Added

Add go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter, which can be used to disable exemplar recording. (#5850)
Add go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter, which can be used to configure the exemplar filter used by the metrics SDK...

#

Bumps the sdk-python group in /modules/ruff/build with 1 update: astral-sh/ruff.

Updates astral-sh/ruff from 0.8.1 to 0.8.2

Release notes
Sourced from astral-sh/ruff's releases.

0.8.2
Release Notes
Preview features

[airflow] Avoid deprecated values (AIR302) (#14582)
[airflow] Extend removed names for AIR302 (#14734)
[ruff] Extend unnecessary-regular-expression to non-literal strings (RUF055) (#14679)
[ruff] Implement used-dummy-variable (RUF052) (#14...

vivid lintelBOT
#

This PR updates the remote-modules documentation with:

  • Add CI credentials section with examples for GitLab, GitHub, and BitBucket
  • Update table formatting for better readability
  • Add specific token username requirements to best practices
  • Add GitLab CI_JOB_TOKEN limitations section

The changes are focused on improving the documentation around CI authentication patterns and token username requirements, making it clearer how to properly authenticate in CI environments.

Fixes #8989

Link...

vivid lintelBOT
#

Add an argument to container.withExec in the core API, to read stdin from a file. stdin can provide raw contents for stdin, but there is no equivalent to redirectStdout and redirectStderr. This becomes a more painful gap when used from the dagger shell.

In terms of graphql schema:

type Container {
  // ...
  withExec(
    // ...
    stdinFile: String

Note: stdin and stdinFile cannot both be set.

vivid lintelBOT
#

Add a function to Directory in the core API, that modifies the directory by filtering its contents.

extend type Directory {
  filter(include: [String!], exclude: [String!]): Directory!
}

This is a convenience function. Today the same result can be achieved with:

func myFilter(
  dir *dagger.Directory,
  // +optional
  include []string,
  // +optional
  exclude []string,
) *dagger.Directory {
  return dag.Directory().WithDirectory("/", dir, dagge...
#

What I did

dagger call -m github.com/dagger/dagger@v0.14.0 cli binary --platform=current

What I expected

A successful of Dagger CLI.

What happened

Full trace at https://dagger.cloud/dagger/traces/8bf78c79223324391e4db8521538b58e

Error: failed to serve module: input: moduleSource.asModule resolve: failed to create module: select: failed to update module dependencies: failed to initialize dependency modules: failed to initialize dependency module: select: faile...
#

Add a filter function to the Directory type that provides a convenience wrapper around the existing filtering functionality in WithDirectory. The function allows filtering directory contents by include and exclude patterns.

This adds a new GraphQL function that makes it easier to filter directory contents without having to use the more verbose WithDirectory method. The implementation maintains consistent behavior with the existing filtering mechanism.

Example usage:

query Fil...
vivid lintelBOT
vivid lintelBOT
#

See original discussion in https://github.com/dagger/dagger/pull/8839#issuecomment-2519944200.

The work for pinging dependencies in #8587 didn't also apply to external SDKs. We should make the single sdk field into a ModuleConfigDependency, so that it can have both a source and a pin.

However, it probably doesn't make sense to also have the name field - we could just have it be a dangling field, or could maybe update name to be omitempty in this case if we like.

vivid lintelBOT
#

What are you trying to do?

according the guide to use podman you should symlink podman to docker.

it would be much better to allow to configure the "runtime" via config and/or environment variable. something like DAGGER_RUNTIME=/usr/bin/docker or DAGGER_RUNTIME=/usr/bin/podman

(btw the issue template is quite uncool for keyboard first persons if you have to jump between the three blocks "what are you trying to do", "why is this i...

vivid lintelBOT
#

What is the issue?

The docs section on argument is missing a section on File arguments. https://docs.dagger.io/api/arguments/

It would be great to include both local files and remote files (via git repo (i.e. dagger call my-function --file-url https://github.com/jpadams/azure-for-dagger#main:main.go))

We also often get requests for people trying to pass files over HTTP(s) so if its possible to show an example using dag.HTTP that would be great too!

vivid lintelBOT
#

Some instructions and example to use an Nvidia GPU.

Some notes:

  • I called the page "Using a GPU" because I thought we could make this guide evolve when we support more than Nvidia, without necessarily changing the link.
  • It's a draft, it might contain some typos but contains all the past examples
  • Not sure about the location in the menu, that was my best guess, @vikram-dagger feel free to change it as you see fit
  • @vikram-dagger feel free to edit this page in place if there is an...
vivid lintelBOT
vivid lintelBOT
#
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Some of the recent changes to telemetry span handling resulted in most metrics not showing up in the TUI (other than those for services).

This fixes the display by tracking+displaying metrics based on their associated Call ID digest, which avoids the relative complication of all the various spans we create in different parts of the engine and associated logic on which are actually rendered in the TUI.

vivid lintelBOT
ornate vigilBOT
vivid lintelBOT
vivid lintelBOT
#

What is the issue?

A Dagger build that worked successfully in version 0.14.0 fails in version 0.15.0 when using Container.asService() for a PostgreSQL image. The container fails to start, with the error: "root" execution of the PostgreSQL server is not permitted.

Dagger version

dagger v0.15.0 (registry.dagger.io/engine:v0.15.0) darwin/arm64

Steps to reproduce

Build file:

package main

import (
	"context"
	"dagger/ciso/internal/dagger"
)

type Ciso struct{}

...
vivid lintelBOT
#

What is the issue?

Dagger was in latest on our CI and I realized today that the CIs no longer pass while they passed 2 days ago.

The only variable different between these 2 days is the release of v0.15.0.

So I immediately installed the latter. And indeed it crashes locally too.

So I fixed in v0.14.0 on our CI for the moment.

I did not expect that a minor version could break everything and I hope that it is me who did something wrong.

There are no commands related to...

vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

Bumps go.opentelemetry.io/otel/trace from 1.27.0 to 1.33.0.

Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.

[1.33.0/0.55.0/0.9.0/0.0.12] 2024-12-12
Added

Add Reset method to SpanRecorder in go.opentelemetry.io/otel/sdk/trace/tracetest. (#5994)
Add EnabledInstrument interface in go.opentelemetry.io/otel/sdk/metric/internal/x.
This is an experimental interface that is implemented by synchronous instruments provided by g...

#

Bumps the sdk-go group with 2 updates in the /sdk/go directory: github.com/99designs/gqlgen and google.golang.org/grpc.

Updates github.com/99designs/gqlgen from 0.17.57 to 0.17.60

Release notes
Sourced from github.com/99designs/gqlgen's releases.

v0.17.60
What's Changed

People who use gqlgen as a library get errors following #2598 by @โ€‹StevenACoffman in 99designs/gqlgen#3431
Follow up to compliant Int work by @โ€‹ph...

vivid lintelBOT
#

Problem

It has been raised by a user in Discord (https://discord.com/channels/707636530424053791/1316771968762253312) that WithMountedCache seems to be honoring the engine's default user:group permissions. This causes issues as it breaks the pipeline portability depending on how the the engine is provisioned

Solution

How about if we enforce root:root for all WithCacheVolume calls unless the Owner field is set in the call?

Steps to reproduce

  1. run the eng...
vivid lintelBOT
vivid lintelBOT
#

What is the issue?

I have a sample go application (https://github.com/levlaz/snippetbox) that installs mariadb (https://daggerverse.dev/mod/github.com/levlaz/daggerverse/mariadb@cea1668da940b45864116049bd20087855c8c787) from the daggerverse and mounts it as a service binding.

THe mariadb module is targeting 0.11.6 and the snippetbox module is targeting 0.13.16

This is no longer working in 0.15 with the following error:

โ”‚ โœ” .withEnvVariable(name: "CACHEBUSTER", value: "2...
vivid lintelBOT
vivid lintelBOT
vivid lintelBOT
#

What is the issue?

In the explanation of Services the grace period of Services is mentioned, but with no introduction of what that is, nor of what it does. I would like to have documented:

  • What does it mean that Services have grace period?
  • What is the effect of the grace period?
  • How can we avoid the effects of grace period ? From current documentation about Redis, it seems that the grace period can be wroked around.
  • Provide a clear ex...
vivid lintelBOT
vivid lintelBOT
#

Happened across an instance of incorrectly returning nil when err was set while working on stuff. This fixes that and enables the nilerr linter for catching these things, which revealed another occurence.

As far as I can tell these haven't been actively hurting us most likely (the error cases are extremely unlikely to happen) but worth preventing these spooky typos from happening again going forward.

#

Noticed some ops on Directory/File were unlazying results when it wasn't really necessary to.

I'm pretty sure there are cases where this will for sure hurt parallelism quite a bit, but want to see a full CI run to get an idea on whether there's much of a practical impact right now for us.

If there is, we should consider doing this. If not, I'll probably just close and leave for now since it's technically a breaking change and subtle enough that we'd need to carefully think through the...

vivid lintelBOT
#

What I did

dagger shell -c 'github.com/dagger/dagger/modules/wolfi | container --packages=rsync,openssh'

What I expected

Successful build of a wolfi container with rsync and openssh installed

What happened

Error: input: wolfi.container failed to create package container: failed to get packages: solving "[rsync" constraint: could not find package that provides [rsync in indexes

Here is the trace: https://v3.dagger.cloud/dagger/traces/657...

vivid lintelBOT
#

What I did

  1. Open interactive dagger shell:

dagger shell

  1. Type a long command without typing enter:

container | from alpine | terminal

  1. Place the cursor at the end of the first word container

  2. Type alt+delete or your equivalent key binding for deleting the word to the left

What I expected

The first word container is deleted. The current line is now โ‹ˆ | from alpine | terminal

What happened

The entire line is deleted. The current line is...

#

What I did

  1. Open dagger shell (version 0.15.1)

  2. .use github.com/shykes/x@fb20ed398e3451dbff9001196354e6aefcfc8bac

What I expected

An interactive shell with the state set to github.com/shykes/x@fb20ed398e3451dbff9001196354e6aefcfc8bac

What happened

Error: failed to serve module: input: module.withSource.initialize module name and SDK must be set

ornate vigilBOT
#

Hey ๐Ÿ‘‹

You're right we currently don't support this use-case -- There are several ways to fix this issue ; one is for the container to forward the git credential request to our buildkit implementation that forwards it to the host ; the issue is that your edge case is also valid for other private modules for all the other languages

This proposal https://github.com/dagger/dagger/issues/9007 could be one way -- nonetheless, I'll try to come up with an intermediary hack on the meantime ๐Ÿ˜‡

vivid lintelBOT
#

After banging my head for a while, figured out a good approach to the module loading improvements (that were in turn enabled by the filesync improvements) which should both fix the excessive cache invalidation and clean up a decent chunk of the core API.

One of the requirements is support for content-based digests in dagql caching (previously it only existed in buildkit). This will enable us to give ModuleSource types (local, git) customized digests that are independent of details irrele...

ornate vigilBOT
vivid lintelBOT
#

What is the issue?

I want to use interactive mode (dagger -i ...) to debug issues. But the services always get dropped. If they could remain up, it would be really helpful.

Dagger version

dagger v0.15.1 (registry.dagger.io/engine:v0.15.1) darwin/arm64

Steps to reproduce

// interactive shell looses the service dependency currently (0.15.1)
func (m *Treasury) ExperimentWithService(
	ctx context.Context,
) (string, error) {

	service := dag.Container().
		From("...
vivid lintelBOT
#

What is the issue?

Dagger silently fails to run any pipeline if the return type doesn't contain a native string or integer field.

type Notes struct {
}

type ReturnData1 struct {
	Container []*dagger.Container
}

// Dagger will always ignore running this
func (m *Notes) ContainerEcho1(stringArg string) *ReturnData1 {
	container := dag.Container().From("alpine:latest").
		WithEnvVariable("CACHE_BUST", time.Now().String()).
		WithExec([]string{"echo", stringArg})
	ret...
vivid lintelBOT
#

Dagger natively supports nesting (dagger in dagger). At the moment this is an opt-in feature (Container.withExec(experimentalPrivilegedNesting: true). This is as a precaution while we finalized the feature and made sure it's properly sandboxed.

Are we now able to say "mission accomplished" and turn it on by default? If not, what's the path to getting there?

vivid lintelBOT
vivid lintelBOT
#

Overview

There seems to be a built-in protection to avoid printing string arguments that are too long. But this is not practical when using modules that involve passing long shell commands as arguments. Specifically, when using daggy, which involves a LLM running dagger shell commands, and tracing is the only practical way to know what commands the LLM is running, this really hurts the experience.

I don't know what the best sol...

vivid lintelBOT
#

Bumps the sdk-python group in /sdk/python/runtime with 1 update: astral-sh/uv.

Updates astral-sh/uv from 0.5.7 to 0.5.9

Release notes
Sourced from astral-sh/uv's releases.

0.5.9
Release Notes
Enhancements

Fork version selection based on requires-python requirements (#9827)
Patch sysconfig data at install time (#9857)
Remove -isysroot when patching sysconfig (#9860)

Configuration

Introduce a --fork-strategy preference mode (#9868)
Add support for UV_O...

#
#
#
#

Bumps the sdk-python group in /sdk/python with 1 update: hatchling.

Updates hatchling from 1.26.3 to 1.27.0

Release notes
Sourced from hatchling's releases.

Hatchling v1.27.0
Added:

Update the default version of core metadata to 2.4

Commits

cbf6598 Update macOS runners (#1855)
3a1392d Update pypa/gh-action-pypi-publish action
9f743d7 Update virtualenv (#1849)
72d5727 release Hatchling v1.27.0
1867a90 Update the default version of core metadata to 2....

#

Bumps go.opentelemetry.io/otel/trace from 1.27.0 to 1.33.0.

Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.

[1.33.0/0.55.0/0.9.0/0.0.12] 2024-12-12
Added

Add Reset method to SpanRecorder in go.opentelemetry.io/otel/sdk/trace/tracetest. (#5994)
Add EnabledInstrument interface in go.opentelemetry.io/otel/sdk/metric/internal/x.
This is an experimental interface that is implemented by synchronous instruments provided by g...

#
#

Bumps go.opentelemetry.io/proto/otlp from 1.3.1 to 1.4.0.

Release notes
Sourced from go.opentelemetry.io/proto/otlp's releases.

Release v1.4.0
Release of the v1.4.0 version of the OTLP, including updated Profiles signal.
What's Changed

Bump google.golang.org/protobuf from 1.34.1 to 1.34.2 in /otlp by @โ€‹dependabot in open-telemetry/opentelemetry-proto-go#179
Bump google.golang.org/protobuf from 1.34.1 to 1.34.2 in /slim/otlp by @โ€‹d...

#
vivid lintelBOT
#

Bumps the sdk-python group in /modules/ruff/build with 1 update: astral-sh/ruff.

Updates astral-sh/ruff from 0.8.2 to 0.8.3

Release notes
Sourced from astral-sh/ruff's releases.

0.8.3
Release Notes
Preview features

Fix fstring formatting removing overlong implicit concatenated string in expression part (#14811)
[airflow] Add fix to remove deprecated keyword arguments (AIR302) (#14887)
[airflow]: Extend rule to include deprecated names for Airflow 3.0...

vivid lintelBOT
vivid lintelBOT
#

Similar to how we have a CHANGELOG.md which describes all of the changes, we should start writing a migration guide - when we release breaking changes, we should add entries to describe everything that users may want to know about upgrading.

This should include:

  • For API facing changes, codeblock diffs, with examples for each SDK
  • For SDK facing changes, codeblock diffs, with examples for the affected SDKs
  • For CLI facing changes, a before-and-after

In the first version of thi...

vivid lintelBOT
#

What is the issue?

TestTelemetry sometimes fails because of retryable "moby.filesync.v1.FileSync/DiffCopy X.Xs"

Dagger version

dagger v0.15.1

Steps to reproduce

dagger call test specific --run="TestTelemetry/TestGolden"

Log output

            testctx.go:182: assertion failed:
                --- expected
                +++ actual
                @@ -5,4 +5,6 @@
                 โ”‚ โœ” connecting to engine X.Xs
                 โ”‚ โœ” starting session X.Xs
    ...
vivid lintelBOT
#

โœจ Deno support steps

  • [x] Add Deno runtime container inside TS runtime
  • [x] Add deno.json generation
  • [ ] Run unit tests with Deno โš ๏ธ
  • [ ] Run integration tests with Deno โš ๏ธ
  • [ ] Run Dagger tests inside Deno container โš ๏ธ

:warning: Merge blockers

There are 2 problems that currently block the merge of that PR:

  1. Deno doesn't support local dependency installation, meaning that we need to add all the SDK dependencie...
vivid lintelBOT
#

This is pretty useful - I think maybe the directories option is new? Otherwise, I feel like I would have caught it before when doing all this. https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#directories

Anyways, this will let us bump the sdk/go and the top-level directory go.mods together, so we won't need to do horrendous dependency resolution ourselves hopefully (like in https://github.com/dagger/dagger/p...

vivid lintelBOT