Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Container: add withFocus, withoutFocus #5364

Merged
merged 6 commits into from
Jul 12, 2023
Merged

Container: add withFocus, withoutFocus #5364

merged 6 commits into from
Jul 12, 2023

Conversation

vito
Copy link
Contributor

@vito vito commented Jun 23, 2023

fixes #5156

extend type Container {
  """
  Indicate that subsequent commands should be featured more
  prominently in the UI.
  """
  withFocus: Container!

  """
  Indicate that subsequent commands should not be featured
  more prominently in the UI.
  This is the initial state of all containers.
  """
  withoutFocus: Container!
}

You would typically use this to mark the command that accomplishes the primary goal of the pipeline, such as the command that runs your tests. You can also just splice it into a call chain for troubleshooting.

func GoGenerate(
	ctx dagger.Context,
	base *dagger.Container,
	src *dagger.Directory,
) *dagger.Directory {
	return base.
		With(GoCache(ctx)).
		With(Cd("/src", src)).
		WithFocus().
		WithExec([]string{"go", "generate", "./..."}).
		Directory("/src")
}

Depends on vito/progrock#8

Here's how it looks in its current form:

asciicast

@vito vito changed the title add focus: true to Container.WithExec Container: add focus, unfocus Jun 30, 2023
@vito vito force-pushed the focus branch 2 times, most recently from f643fa8 to b3407a8 Compare June 30, 2023 20:09
@vito vito changed the title Container: add focus, unfocus Container: add withFocus, withoutFocus Jul 6, 2023
Focused execs will be featured more prominently in the UI. You would
typically use this flag to mark the command that accomplishes the
primary goal of the pipeline, such as the command that runs your tests.

Signed-off-by: Alex Suraci <alex@dagger.io>
vito added 4 commits July 6, 2023 16:35
Signed-off-by: Alex Suraci <alex@dagger.io>
Signed-off-by: Alex Suraci <alex@dagger.io>
Signed-off-by: Alex Suraci <alex@dagger.io>
Signed-off-by: Alex Suraci <alex@dagger.io>
@vito vito marked this pull request as ready for review July 6, 2023 21:44
@vito vito requested review from shykes and sipsma July 6, 2023 21:44
@vito
Copy link
Contributor Author

vito commented Jul 6, 2023

@sipsma @shykes I think this is ready for consideration now. The DX feels pretty decent after dogfooding for a while.

Summary of changes:

  • Add withFocus and withoutFocus, currently only implemented for Container and only respected by withExec but we could perhaps generalize this to any kind of operation that might show up in the DAG.
    • Unfortunately the implementation is a little hacky (it relies on a [focus] vertex custom name). We're unable to leverage much of Progrock here because we still rely on events coming out of Buildkit for exec logs.
  • dagger do respects focus by default, and you can show everything with --focus=false.
  • dagger run does not respect focus by default - it shows everything, and has a --focus flag.
    • I'm not sure if this is necessary, but the thinking is that dagger run is more low-level so debugging is more useful there.

Still open to other suggestions though. Also open to TUI suggestions. I can keep noodling on that.


// Focused indicates whether subsequent operations will be
// focused, i.e. shown more prominently in the UI.
Focused bool `json:"focused"`
Copy link
Contributor

@sipsma sipsma Jul 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a blocker but it doesn't feel ideal that this would change the ID. In the context of Zenith this matters more since once we support Container/Directory/etc. as input args to entrypoints, the cache will be invalidated just by changing Focused, which is more of a UX concern.

However, there's a few other things like this already (e.g. pipeline labels), so this doesn't really make it any worse. We'll need to come up with some generic way of dealing with all these at some point in the future.

If there's some utterly trivial different approach to this that doesn't involve putting it in the ID, then I'd say go for it right away, but I'm guessing there isn't anything obvious yet, in which case all good for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I'd also like to find a generic alternative to this pattern. Using queries for "meta" operations like this also blew up in my face when I was trying to come up with a proposal for generic query memoization (as an approach to dependency pinning):

https://github.com/dagger/dagger/pull/5420/files#diff-7340b8a6d2c5b52c935f75ec72038d28b8c606323ea41bd29ced4b521eae7761R115-R118

(Quoting in case that link breaks with future pushes:)

  • TODO: We'll need some way to prevent meta-queries like pipeline() and
    memoize() from becoming part of the cache key. If we can't come up with a
    better idea, we could always just reserve the words and drop them from the
    query path during memoization.

I think this is OK for now since it's a drop in the bucket compared to storing pipeline info (which also massively inflate the ID values, as I'm sure you're already aware 😁).

Comment on lines 509 to 515
Indicate that subsequent commands should be featured more
prominently in the UI.
"""
withFocus: Container!

"""
Indicate that subsequent commands should not be featured
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: would it be more technically correct and explicit to say subsequent withExecs instead of commands?

withExecs is probably a very awkward adverb(?), so maybe just subsequent execs?

Just don't want to create ambiguity around the term "commands".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wdyt of "operations"? Right now it's only execs, but we might want to support something like foo.WithFocus().Export(ctx) too (assuming Export does something useful like printing filenames as it exports).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah operations sounds good!

Signed-off-by: Alex Suraci <alex@dagger.io>
@vito vito requested a review from helderco July 11, 2023 22:40
@vito vito merged commit 8885634 into dagger:main Jul 12, 2023
21 checks passed
@vito vito deleted the focus branch July 12, 2023 14:36
vito added a commit to vito/dagger that referenced this pull request Jul 19, 2023
Squashed commit of the following:

commit b7983d7
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jul 18 12:15:28 2023 -0400

    fixup node lint

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 81bbdab
Author: Alex Suraci <alex@dagger.io>
Date:   Sat Jul 1 21:23:42 2023 -0400

    defer release container on err

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 51f5751
Author: Alex Suraci <alex@dagger.io>
Date:   Sat Jul 1 21:23:24 2023 -0400

    add Void type

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 114bff4
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 19:13:12 2023 -0400

    refactor Service.Start

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 2180f04
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 18:18:12 2023 -0400

    handle services with implicit exec

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 499ce97
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 15:40:12 2023 -0400

    docs: fmt, update service api usage

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit bca9a84
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 15:32:49 2023 -0400

    revise API: Service is simple getter

    Previously you had to pass the same set of params to .service as you
    would to .withExec. Now you just call .withExec as before and call
    .service to return it as a Service.

    The previous approach was toilsome in client use because you had to use
    a different struct type with all the same params.

    Technically we don't need to change the API at all anymore, so a later
    might bring the old API back to maintain compatibility for now.

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 3de8bad
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 23 19:01:18 2023 -0400

    move unix-only network install stuff under netinst

    the Dagger CLI and shim depends on network now for some shared consts,
    so we need to keep its dependencies tidy and cross-platform

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 3be689f
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 23 18:24:19 2023 -0400

    bump buildkit fork

    now better-tested

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 3f58521
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 23 15:28:35 2023 -0400

    network related refactor

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 01eb7f8
Author: Alex Suraci <alex@dagger.io>
Date:   Wed Jun 21 14:43:59 2023 -0400

    use llb.WithNetworkConfig instead of secrets hack

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 1cfb25c
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 15:44:13 2023 -0400

    use LLB networks attachable for SearchDomains

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit cafdac0
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 10:05:41 2023 -0400

    git: configure search domains when nesting

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 381e7bf
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 10:02:13 2023 -0400

    docs: python fmt

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 01bfe28
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 09:48:19 2023 -0400

    git: only configure search domains for services

    Otherwise this causes failures with Dockerfile builds that use
    non-bleeding-edge frontends.

    Really should never need these domains without a service anyway, which
    was the original plan.

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit ba78743
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 23:33:25 2023 -0400

    bump buildkit

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit cdf22f7
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 23:16:29 2023 -0400

    docs: fix python syntax

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit b411f81
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 19:28:58 2023 -0400

    propagate search domains to child daggers

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 39cec48
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 18:20:14 2023 -0400

    bump buildkit, remove logs

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 291ed0b
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 18:01:03 2023 -0400

    finish bringing DNS back, with search domains

    TODO cleanup, reword, rebase, add details

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 7ba54d0
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 17:58:28 2023 -0400

    engine: add dnsmasq to engine config

    This is needed so that llb.HTTP and llb.Git can respect custom DNS
    config without relying on /etc/resolv.conf. Technically we're already
    overriding /etc/resolv.conf, but something was causing Go to not attempt
    to reload the config without a sleep(5 seconds).

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit cd28433
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 14:52:10 2023 -0400

    wip: start bringing DNS back

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 7e26a8d
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 13:26:22 2023 -0400

    Revert "remove DNS infra"

    This reverts commit 1f17879.

    Bringing this back, going to try using search domains instead.

    Static host -> IP mapping is too difficult with all the fancy nesting
    strategies we tend to reach for.

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit f3daaef
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 13:23:26 2023 -0400

    wip: didnt actually fix anything

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 72e97ea
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:58:42 2023 -0400

    add hack/with-dev

    like hack/dev, but skips provisioning

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit dd4a192
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:58:24 2023 -0400

    point to buildkit fork with Git/HTTP ExtraHosts

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit d773065
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:57:08 2023 -0400

    hack: swallow git add failure

    not happy with my bind-moounted buildkit override...

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 74b9d33
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:55:55 2023 -0400

    use lowercase for service hostnames

    Some applications seem sensitive to this. Most applications seem to
    automatically lowercase, and some (e.g. ssh) will not match it up to the
    uppercase form in /etc/hosts.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit ddee24b
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 13:02:05 2023 -0400

    remove DNS infra

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 7b6109f
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 11:59:14 2023 -0400

    use net.IP for running service IPs

    easier to align with ExtraHosts, gives a bit of safety

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 2886e97
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 11:56:34 2023 -0400

    bring back non-Git/HTTP related changes

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 0c71523
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 11:47:40 2023 -0400

    use ExtraHosts for Git/HTTP

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 633e143
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 10:31:30 2023 -0400

    Revert "finish swapping out DNS with static host config"

    Trying to bring back Git/HTTP service usage, since Projects uses it, and
    it's nice to have a fully integrated API.

    This reverts commit 9456f34.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit c648629
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 10:29:24 2023 -0400

    resilience for adding local dir as repo

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit c0c0afb
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 10:29:03 2023 -0400

    whitespace

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit b83b443
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:55:40 2023 -0400

    fixup cache sharing mode

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 7768dc3
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:39:32 2023 -0400

    appease linter

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 1f5d9f6
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:38:46 2023 -0400

    appease linter

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 377f3ff
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:36:39 2023 -0400

    use consts for cache sharing modes

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit e780249
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:22:53 2023 -0400

    pass secret envs to service container

    bumps to fork of Buildkit for SecretEnv support.

    associated PR: moby/buildkit#3957

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 85f896e
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Fri Jun 16 16:43:44 2023 -0400

    finish swapping out DNS with static host config

    A few things had to be sacrificed here:

    * HTTP and Git APIs can no longer use services. It doesn't seem possible
      to do this with static hosts. This API was always experimental and
      only used in tests.
    * A lazy: true param has been added to Container.File and
      Container.Directory, which is now used instead of the Git/HTTP APIs to
      test lazy service starting.
    * It is no longer possible to reach services from within a Dockerfile
      build. This was also experimental and it's unlikely that it was ever
      used.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit fcfee59
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Fri Jun 16 11:46:34 2023 -0400

    checkpoint: stop using DNS, doesn't work yet

    Collecting the container IP in this way doesn't work. Containers are
    one-time-use. Need to have the service container report its IP to the
    health-check container instead.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 06fdc1a
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Fri Jun 16 11:45:49 2023 -0400

    fixup

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 5f14ae2
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Thu Jun 15 17:17:39 2023 -0400

    (mostly) update docs example code

    The demos for running `hostname` should probably be removed, as regular
    containers no longer have a hostname.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit ce542c1
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Thu Jun 15 16:04:34 2023 -0400

    run services via gateway interface instead

    There were a few tricky parts to this.

    Problem A: It doesn't seem possible to take an arbitrary Container and
    run it via the Gateway instead. The Container already "bakes in" an LLB
    definition that refers to the _result_ of running the service. The only
    thing you can really do is try to Solve() it.

    Solution A: change the API such that Services are no longer just
    Containers. Instead, you call Container.Service which takes the exact
    same params as Container.WithExec, only it returns a Service instead of
    a Container.

    Problem B: it's harder to generate service hostnames. Previously we
    could just take the digest that WithExec baked in, but now that we're
    not doing that, we have to come up with our own content-addressing
    scheme. The naive thing to try is taking a digest of the Service, akin
    to a ContainerID, ContainerIDs aren't stable.

    Solution B: I implemented a helper to take a stable digest of an
    arbitrary struct. This works by recursing through structs, maps, slices,
    etc. and digesting types, with a special-case for *pb.Definition which
    was the source of unstable hashing as its inner Def field is
    topographically ordered.

    Problem C: bizarre behavior with running the same service across Dagger
    sessions (i.e. parallel test runs), causing each session to start the
    same service + hostname, and some of them to fail when resolving the
    host to an IP.

    Solution C: dedupe services within a session, but not across sessions.
    Maintain a global map of all services, keeping track of their
    starting/running state to handle parallelism, and injecting a "session
    ID" into each Service so that equivalent containers don't share
    hostnames across Dagger sessions.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit e0b1b8e
Author: Helder Correia <174525+helderco@users.noreply.github.com>
Date:   Tue Jul 18 12:47:21 2023 +0000

    Fix coroutines not showing in Python reference docs (dagger#5477)

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

commit d9249d6
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jul 17 23:40:12 2023 -0400

    inline tui: show run duration at the end (dagger#5476)

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 53e57d5
Author: Erik Sipsma <erik@dagger.io>
Date:   Mon Jul 17 14:47:23 2023 -0700

    core: attempt to deflake container image load compat test. (dagger#5473)

    Saw a single failure in CI after merging:
    https://github.com/dagger/dagger/actions/runs/5563667789/jobs/10162760954

    Never saw it prior to that and couldn't repro locally, so this is just a
    best guess. Ran the test in a loop for a while after this change and saw
    no failures.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit c7a440a
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jul 17 14:30:52 2023 -0400

    stabilize container hostnames against SessionID (dagger#5474)

    * Add test for local dir import cache reuse.

    Signed-off-by: Erik Sipsma <erik@sipsma.dev>

    * stabilize container hostnames against SessionID

    SessionID is important to keep on host directories, because otherwise
    the Buildkit solver's vertex is keyed only on a local client's path,
    whose contents may differ when clients are running in containers with
    different content mounted to the same path. This primarily affects
    setups with a long-running external engine.

    To prevent the SessionID from busting caches everywhere, hostnames are
    now calculated by taking a stable hash of the *pb.Definition, which is a
    pretty invasive process:

    First it loops over the inner Ops and removes the relevant ephemeral
    metadata from SourceOps. This results in a new Op with a different
    digest, so it keeps track of the old and new digests along the way.

    Next it loops over the old => new digest mapping and converts any
    occurrences of the old digest to the new digest, both in the
    definition's OpMetadata and in each inner Op's inputs. Any Ops whose
    inputs had to be modified will result in yet another old => new digest
    mapping, so this process repeats until everything stabilizes.

    Finally, the inner Ops are sorted lexicographically because otherwise
    they are in topological order, meaning two root Ops may change places
    without changing semantics, but in this case we need everything to be
    deterministic.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * fix up recursion/looping order

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * use llbsolver.Load + source policy for stable digests

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * be more selective with repo content that we pull in

    otherwise the git add * call can fail, if there are .gitignored files or
    other weird content in your local dir (e.g. bind-mounted repos for
    shimming into go.mod replace rules)

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * Revert "use llbsolver.Load + source policy for stable digests"

    works great, but breaks the Darwin build. :(

    This reverts commit 7c20b08.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * extract llbsolver.Load from Buildkit

    goals: a) replace my hairy yolo'd implementation with a bona-fide one
    from upstream, and b) gain memoization along the way.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    ---------

    Signed-off-by: Erik Sipsma <erik@sipsma.dev>
    Signed-off-by: Alex Suraci <alex@dagger.io>
    Co-authored-by: Erik Sipsma <erik@sipsma.dev>

commit 7d2d263
Author: Erik Sipsma <erik@dagger.io>
Date:   Mon Jul 17 07:40:40 2023 -0700

    core: Add test for local imports across sessions (dagger#5471)

    We need to make sure that separate clients/sessions that happen to be
    loading the same path (whether they are on the same host or not) load
    independently rather than hitting the same cache just because the paths
    happen to be the same.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit e9d557a
Author: Erik Sipsma <erik@dagger.io>
Date:   Sat Jul 15 11:39:14 2023 -0700

    core: support optionally setting explicit mediatypes (dagger#5467)

    * core: support optionally setting explicit mediatypes

    We previously made a change to default to using oci mediatypes, which
    helped compatibility with certain compression types that are only
    supported with oci types.

    However, older registries (specifically a user reported Artifactory
    versions from pre-2020) don't have OCI support.

    This change fixes that by leaving OCI as the default but enabling users
    to specify docker mediatypes to be used instead as a fallback.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

    * Specify default value for mediatypes in gql schema.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

    ---------

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit 13aea3d
Author: Gerhard Lazu <gerhard@users.noreply.github.com>
Date:   Sat Jul 15 10:14:52 2023 +0100

    Improve releasing during 0.6.3 (dagger#5408)

    * Improve releasing during 0.6.3

    Use changie.dev for all release notes. See the PR for more info.

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    * Bump our internal tooling to the just released Dagger Go SDK v0.7.3

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    ---------

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

commit 9cd69d0
Author: Erik Sipsma <erik@dagger.io>
Date:   Fri Jul 14 18:08:40 2023 -0700

    core: add include/exclude name to host dir copy name (dagger#5469)

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit f34f974
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 20:31:06 2023 +0100

    build(deps-dev): bump @typescript-eslint/parser in /sdk/nodejs (dagger#5465)

    Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.60.1 to 5.62.0.
    - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
    - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
    - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.62.0/packages/parser)

    Signed-off-by: dependabot[bot] <support@github.com>

commit a57fcd1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:56:47 2023 +0100

    build(deps): bump github.com/google/go-containerregistry (dagger#5460)

    Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.14.0 to 0.15.2.
    - [Release notes](https://github.com/google/go-containerregistry/releases)
    - [Changelog](https://github.com/google/go-containerregistry/blob/main/.goreleaser.yml)
    - [Commits](google/go-containerregistry@v0.14.0...v0.15.2)

    Signed-off-by: dependabot[bot] <support@github.com>

commit ff60a90
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:38:58 2023 +0100

    build(deps): bump golang.org/x/tools from 0.10.0 to 0.11.0 in /sdk/go (dagger#5456)

    * build(deps): bump golang.org/x/tools from 0.10.0 to 0.11.0 in /sdk/go

    Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.10.0 to 0.11.0.
    - [Release notes](https://github.com/golang/tools/releases)
    - [Commits](golang/tools@v0.10.0...v0.11.0)

    ---
    updated-dependencies:
    - dependency-name: golang.org/x/tools
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Run go mod tidy

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Gerhard Lazu <gerhard@dagger.io>

commit c023f07
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:20:00 2023 +0100

    build(deps-dev): bump @typescript-eslint/eslint-plugin in /sdk/nodejs (dagger#5461)

    Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.60.1 to 5.62.0.
    - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
    - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
    - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.62.0/packages/eslint-plugin)

    Signed-off-by: dependabot[bot] <support@github.com>

commit 960a138
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:17:02 2023 +0100

    build(deps): bump github.com/iancoleman/strcase from 0.2.0 to 0.3.0 in /sdk/go (dagger#5455)

    * build(deps): bump github.com/iancoleman/strcase in /sdk/go

    Bumps [github.com/iancoleman/strcase](https://github.com/iancoleman/strcase) from 0.2.0 to 0.3.0.
    - [Commits](iancoleman/strcase@v0.2.0...v0.3.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/iancoleman/strcase
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Run go mod tidy

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Gerhard Lazu <gerhard@dagger.io>

commit 4596de6
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:07:50 2023 +0100

    build(deps): bump golang.org/x/mod in /internal/mage (dagger#5466)

    Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.11.0 to 0.12.0.
    - [Commits](golang/mod@v0.11.0...v0.12.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit afa15a0
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:06:27 2023 +0100

    build(deps-dev): bump eslint from 8.44.0 to 8.45.0 in /sdk/nodejs (dagger#5464)

    Bumps [eslint](https://github.com/eslint/eslint) from 8.44.0 to 8.45.0.
    - [Release notes](https://github.com/eslint/eslint/releases)
    - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
    - [Commits](eslint/eslint@v8.44.0...v8.45.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit 1e7aa6d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 18:58:19 2023 +0100

    build(deps): bump github.com/go-git/go-git/v5 from 5.5.2 to 5.7.0 (dagger#5459)

    Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.5.2 to 5.7.0.
    - [Release notes](https://github.com/go-git/go-git/releases)
    - [Commits](go-git/go-git@v5.5.2...v5.7.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit bdf0a37
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 18:57:39 2023 +0100

    build(deps): bump golang.org/x/text from 0.10.0 to 0.11.0 (dagger#5458)

    Bumps [golang.org/x/text](https://github.com/golang/text) from 0.10.0 to 0.11.0.
    - [Release notes](https://github.com/golang/text/releases)
    - [Commits](golang/text@v0.10.0...v0.11.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit fb25a52
Author: Nabeel Sulieman <nabsul@outlook.com>
Date:   Fri Jul 14 09:14:21 2023 -0700

    Start working on a code generation tool (dagger#5422)

    Fix parse errors

    Check in some intermediate stuff

    Re-order fields, add readme, etc.

    Document source of introspection query

    Signed-off-by: Nabeel Sulieman <nabsul@users.noreply.github.com>

commit f301d85
Author: Gerhard Lazu <gerhard@users.noreply.github.com>
Date:   Fri Jul 14 17:13:01 2023 +0100

    Configure dependabot to ignore npm dep updates in sdk/rust (dagger#5454)

    Dependabot opened 12 npm dep bumps in sdk/rust in the last 4 days. These
    are super low value contributions that we want to avoid seeing alongside
    the other, genuinely valuable PRs (each dep bump gets its own PR, which
    means a lot of noise & no signal).

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

commit 22b436c
Author: Gerhard Lazu <gerhard@users.noreply.github.com>
Date:   Fri Jul 14 17:11:00 2023 +0100

    Fix VERSION variable for CLI install instructions (dagger#5453)

    This changed to DAGGER_VERSION ~1 year ago. It was correctly updated in
    most places, except in this doc.

    Also updated the version to LATEST-1.

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

commit 169c790
Author: Thanabodee Charoenpiriyakij <wingyminus@gmail.com>
Date:   Fri Jul 14 23:10:05 2023 +0700

    sdk(elixir): fix crash on any functions that requires ID (dagger#5413)

    Any id functions returns `{:ok, id}`, which we didn't handle it. This fixes it.

    Fixes dagger#5412

    Signed-off-by: Thanabodee Charoenpiriyakij <wingyminus@gmail.com>

commit 34f76de
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 17:07:59 2023 +0100

    build(deps): bump google.golang.org/grpc (dagger#5411)

    Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.51.0 to 1.53.0.
    - [Release notes](https://github.com/grpc/grpc-go/releases)
    - [Commits](grpc/grpc-go@v1.51.0...v1.53.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit d1c6160
Author: Kasper Juul Hermansen <contact@kjuulh.io>
Date:   Fri Jul 14 17:58:15 2023 +0200

    chore(rust-sdk): bump v0.6.2 (dagger#5405)

    * chore(rust-sdk): bump 0.6.2

    Signed-off-by: kjuulh <contact@kjuulh.io>

commit 4842448
Author: Erik Sipsma <erik@dagger.io>
Date:   Fri Jul 14 08:21:49 2023 -0700

    Fix corner case where WithDirectory included wrong contents. (dagger#5448)

commit 7369279
Author: Helder Correia <174525+helderco@users.noreply.github.com>
Date:   Thu Jul 13 17:50:03 2023 +0000

    Fix drift between SDKs in chainable utils feature (dagger#5447)

    * Fix drift between SDKs in chainable utils feature

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

    * Update test fixture

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

    ---------

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

commit 8885634
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Tue Jul 11 22:30:47 2023 -0400

    Container: add `withFocus`, `withoutFocus` (dagger#5364)

    * add focus: true to Container.WithExec

    Focused execs will be featured more prominently in the UI. You would
    typically use this flag to mark the command that accomplishes the
    primary goal of the pipeline, such as the command that runs your tests.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * switch to Container { focus, unfocus }

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * bump progrock for panic fix

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * cli: focus in do by default, but not run

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * rename to withFocus, withoutFocus

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * withFocus/withoutFocus: more generic doc

    Signed-off-by: Alex Suraci <alex@dagger.io>

    ---------

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit bd94e23
Author: Helder Correia <174525+helderco@users.noreply.github.com>
Date:   Tue Jul 11 18:25:24 2023 +0000

    Fix .mjs docs lint and format (dagger#5435)

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

commit c44009e
Author: Solomon Hykes <shykes@users.noreply.github.com>
Date:   Tue Jul 11 10:15:14 2023 -0700

    Cookbook: integrating with a docker engine (dagger#5421)

    Cookbook: integrating with a Docker engine

    Signed-off-by: Solomon Hykes <solomon@dagger.io>
    Signed-off-by: Helder Correia <helder@dagger.io>

Signed-off-by: Alex Suraci <alex@dagger.io>
vito added a commit to vito/dagger that referenced this pull request Jul 19, 2023
Squashed commit of the following:

commit b7983d7
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jul 18 12:15:28 2023 -0400

    fixup node lint

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 81bbdab
Author: Alex Suraci <alex@dagger.io>
Date:   Sat Jul 1 21:23:42 2023 -0400

    defer release container on err

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 51f5751
Author: Alex Suraci <alex@dagger.io>
Date:   Sat Jul 1 21:23:24 2023 -0400

    add Void type

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 114bff4
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 19:13:12 2023 -0400

    refactor Service.Start

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 2180f04
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 18:18:12 2023 -0400

    handle services with implicit exec

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 499ce97
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 15:40:12 2023 -0400

    docs: fmt, update service api usage

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit bca9a84
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 30 15:32:49 2023 -0400

    revise API: Service is simple getter

    Previously you had to pass the same set of params to .service as you
    would to .withExec. Now you just call .withExec as before and call
    .service to return it as a Service.

    The previous approach was toilsome in client use because you had to use
    a different struct type with all the same params.

    Technically we don't need to change the API at all anymore, so a later
    might bring the old API back to maintain compatibility for now.

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 3de8bad
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 23 19:01:18 2023 -0400

    move unix-only network install stuff under netinst

    the Dagger CLI and shim depends on network now for some shared consts,
    so we need to keep its dependencies tidy and cross-platform

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 3be689f
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 23 18:24:19 2023 -0400

    bump buildkit fork

    now better-tested

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 3f58521
Author: Alex Suraci <alex@dagger.io>
Date:   Fri Jun 23 15:28:35 2023 -0400

    network related refactor

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 01eb7f8
Author: Alex Suraci <alex@dagger.io>
Date:   Wed Jun 21 14:43:59 2023 -0400

    use llb.WithNetworkConfig instead of secrets hack

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 1cfb25c
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 15:44:13 2023 -0400

    use LLB networks attachable for SearchDomains

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit cafdac0
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 10:05:41 2023 -0400

    git: configure search domains when nesting

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 381e7bf
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 10:02:13 2023 -0400

    docs: python fmt

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 01bfe28
Author: Alex Suraci <alex@dagger.io>
Date:   Tue Jun 20 09:48:19 2023 -0400

    git: only configure search domains for services

    Otherwise this causes failures with Dockerfile builds that use
    non-bleeding-edge frontends.

    Really should never need these domains without a service anyway, which
    was the original plan.

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit ba78743
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 23:33:25 2023 -0400

    bump buildkit

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit cdf22f7
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 23:16:29 2023 -0400

    docs: fix python syntax

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit b411f81
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 19:28:58 2023 -0400

    propagate search domains to child daggers

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 39cec48
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 18:20:14 2023 -0400

    bump buildkit, remove logs

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 291ed0b
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 18:01:03 2023 -0400

    finish bringing DNS back, with search domains

    TODO cleanup, reword, rebase, add details

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 7ba54d0
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 17:58:28 2023 -0400

    engine: add dnsmasq to engine config

    This is needed so that llb.HTTP and llb.Git can respect custom DNS
    config without relying on /etc/resolv.conf. Technically we're already
    overriding /etc/resolv.conf, but something was causing Go to not attempt
    to reload the config without a sleep(5 seconds).

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit cd28433
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 14:52:10 2023 -0400

    wip: start bringing DNS back

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 7e26a8d
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 13:26:22 2023 -0400

    Revert "remove DNS infra"

    This reverts commit 1f17879.

    Bringing this back, going to try using search domains instead.

    Static host -> IP mapping is too difficult with all the fancy nesting
    strategies we tend to reach for.

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit f3daaef
Author: Alex Suraci <alex@dagger.io>
Date:   Mon Jun 19 13:23:26 2023 -0400

    wip: didnt actually fix anything

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 72e97ea
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:58:42 2023 -0400

    add hack/with-dev

    like hack/dev, but skips provisioning

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit dd4a192
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:58:24 2023 -0400

    point to buildkit fork with Git/HTTP ExtraHosts

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit d773065
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:57:08 2023 -0400

    hack: swallow git add failure

    not happy with my bind-moounted buildkit override...

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 74b9d33
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jun 19 10:55:55 2023 -0400

    use lowercase for service hostnames

    Some applications seem sensitive to this. Most applications seem to
    automatically lowercase, and some (e.g. ssh) will not match it up to the
    uppercase form in /etc/hosts.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit ddee24b
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 13:02:05 2023 -0400

    remove DNS infra

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 7b6109f
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 11:59:14 2023 -0400

    use net.IP for running service IPs

    easier to align with ExtraHosts, gives a bit of safety

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 2886e97
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 11:56:34 2023 -0400

    bring back non-Git/HTTP related changes

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 0c71523
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 11:47:40 2023 -0400

    use ExtraHosts for Git/HTTP

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 633e143
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 10:31:30 2023 -0400

    Revert "finish swapping out DNS with static host config"

    Trying to bring back Git/HTTP service usage, since Projects uses it, and
    it's nice to have a fully integrated API.

    This reverts commit 9456f34.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit c648629
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 10:29:24 2023 -0400

    resilience for adding local dir as repo

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit c0c0afb
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sun Jun 18 10:29:03 2023 -0400

    whitespace

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit b83b443
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:55:40 2023 -0400

    fixup cache sharing mode

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 7768dc3
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:39:32 2023 -0400

    appease linter

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 1f5d9f6
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:38:46 2023 -0400

    appease linter

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 377f3ff
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:36:39 2023 -0400

    use consts for cache sharing modes

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit e780249
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Sat Jun 17 22:22:53 2023 -0400

    pass secret envs to service container

    bumps to fork of Buildkit for SecretEnv support.

    associated PR: moby/buildkit#3957

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 85f896e
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Fri Jun 16 16:43:44 2023 -0400

    finish swapping out DNS with static host config

    A few things had to be sacrificed here:

    * HTTP and Git APIs can no longer use services. It doesn't seem possible
      to do this with static hosts. This API was always experimental and
      only used in tests.
    * A lazy: true param has been added to Container.File and
      Container.Directory, which is now used instead of the Git/HTTP APIs to
      test lazy service starting.
    * It is no longer possible to reach services from within a Dockerfile
      build. This was also experimental and it's unlikely that it was ever
      used.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit fcfee59
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Fri Jun 16 11:46:34 2023 -0400

    checkpoint: stop using DNS, doesn't work yet

    Collecting the container IP in this way doesn't work. Containers are
    one-time-use. Need to have the service container report its IP to the
    health-check container instead.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 06fdc1a
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Fri Jun 16 11:45:49 2023 -0400

    fixup

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit 5f14ae2
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Thu Jun 15 17:17:39 2023 -0400

    (mostly) update docs example code

    The demos for running `hostname` should probably be removed, as regular
    containers no longer have a hostname.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit ce542c1
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Thu Jun 15 16:04:34 2023 -0400

    run services via gateway interface instead

    There were a few tricky parts to this.

    Problem A: It doesn't seem possible to take an arbitrary Container and
    run it via the Gateway instead. The Container already "bakes in" an LLB
    definition that refers to the _result_ of running the service. The only
    thing you can really do is try to Solve() it.

    Solution A: change the API such that Services are no longer just
    Containers. Instead, you call Container.Service which takes the exact
    same params as Container.WithExec, only it returns a Service instead of
    a Container.

    Problem B: it's harder to generate service hostnames. Previously we
    could just take the digest that WithExec baked in, but now that we're
    not doing that, we have to come up with our own content-addressing
    scheme. The naive thing to try is taking a digest of the Service, akin
    to a ContainerID, ContainerIDs aren't stable.

    Solution B: I implemented a helper to take a stable digest of an
    arbitrary struct. This works by recursing through structs, maps, slices,
    etc. and digesting types, with a special-case for *pb.Definition which
    was the source of unstable hashing as its inner Def field is
    topographically ordered.

    Problem C: bizarre behavior with running the same service across Dagger
    sessions (i.e. parallel test runs), causing each session to start the
    same service + hostname, and some of them to fail when resolving the
    host to an IP.

    Solution C: dedupe services within a session, but not across sessions.
    Maintain a global map of all services, keeping track of their
    starting/running state to handle parallelism, and injecting a "session
    ID" into each Service so that equivalent containers don't share
    hostnames across Dagger sessions.

    Signed-off-by: Alex Suraci <suraci.alex@gmail.com>

commit e0b1b8e
Author: Helder Correia <174525+helderco@users.noreply.github.com>
Date:   Tue Jul 18 12:47:21 2023 +0000

    Fix coroutines not showing in Python reference docs (dagger#5477)

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

commit d9249d6
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jul 17 23:40:12 2023 -0400

    inline tui: show run duration at the end (dagger#5476)

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit 53e57d5
Author: Erik Sipsma <erik@dagger.io>
Date:   Mon Jul 17 14:47:23 2023 -0700

    core: attempt to deflake container image load compat test. (dagger#5473)

    Saw a single failure in CI after merging:
    https://github.com/dagger/dagger/actions/runs/5563667789/jobs/10162760954

    Never saw it prior to that and couldn't repro locally, so this is just a
    best guess. Ran the test in a loop for a while after this change and saw
    no failures.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit c7a440a
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Mon Jul 17 14:30:52 2023 -0400

    stabilize container hostnames against SessionID (dagger#5474)

    * Add test for local dir import cache reuse.

    Signed-off-by: Erik Sipsma <erik@sipsma.dev>

    * stabilize container hostnames against SessionID

    SessionID is important to keep on host directories, because otherwise
    the Buildkit solver's vertex is keyed only on a local client's path,
    whose contents may differ when clients are running in containers with
    different content mounted to the same path. This primarily affects
    setups with a long-running external engine.

    To prevent the SessionID from busting caches everywhere, hostnames are
    now calculated by taking a stable hash of the *pb.Definition, which is a
    pretty invasive process:

    First it loops over the inner Ops and removes the relevant ephemeral
    metadata from SourceOps. This results in a new Op with a different
    digest, so it keeps track of the old and new digests along the way.

    Next it loops over the old => new digest mapping and converts any
    occurrences of the old digest to the new digest, both in the
    definition's OpMetadata and in each inner Op's inputs. Any Ops whose
    inputs had to be modified will result in yet another old => new digest
    mapping, so this process repeats until everything stabilizes.

    Finally, the inner Ops are sorted lexicographically because otherwise
    they are in topological order, meaning two root Ops may change places
    without changing semantics, but in this case we need everything to be
    deterministic.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * fix up recursion/looping order

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * use llbsolver.Load + source policy for stable digests

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * be more selective with repo content that we pull in

    otherwise the git add * call can fail, if there are .gitignored files or
    other weird content in your local dir (e.g. bind-mounted repos for
    shimming into go.mod replace rules)

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * Revert "use llbsolver.Load + source policy for stable digests"

    works great, but breaks the Darwin build. :(

    This reverts commit 7c20b08.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * extract llbsolver.Load from Buildkit

    goals: a) replace my hairy yolo'd implementation with a bona-fide one
    from upstream, and b) gain memoization along the way.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    ---------

    Signed-off-by: Erik Sipsma <erik@sipsma.dev>
    Signed-off-by: Alex Suraci <alex@dagger.io>
    Co-authored-by: Erik Sipsma <erik@sipsma.dev>

commit 7d2d263
Author: Erik Sipsma <erik@dagger.io>
Date:   Mon Jul 17 07:40:40 2023 -0700

    core: Add test for local imports across sessions (dagger#5471)

    We need to make sure that separate clients/sessions that happen to be
    loading the same path (whether they are on the same host or not) load
    independently rather than hitting the same cache just because the paths
    happen to be the same.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit e9d557a
Author: Erik Sipsma <erik@dagger.io>
Date:   Sat Jul 15 11:39:14 2023 -0700

    core: support optionally setting explicit mediatypes (dagger#5467)

    * core: support optionally setting explicit mediatypes

    We previously made a change to default to using oci mediatypes, which
    helped compatibility with certain compression types that are only
    supported with oci types.

    However, older registries (specifically a user reported Artifactory
    versions from pre-2020) don't have OCI support.

    This change fixes that by leaving OCI as the default but enabling users
    to specify docker mediatypes to be used instead as a fallback.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

    * Specify default value for mediatypes in gql schema.

    Signed-off-by: Erik Sipsma <erik@dagger.io>

    ---------

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit 13aea3d
Author: Gerhard Lazu <gerhard@users.noreply.github.com>
Date:   Sat Jul 15 10:14:52 2023 +0100

    Improve releasing during 0.6.3 (dagger#5408)

    * Improve releasing during 0.6.3

    Use changie.dev for all release notes. See the PR for more info.

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    * Bump our internal tooling to the just released Dagger Go SDK v0.7.3

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    ---------

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

commit 9cd69d0
Author: Erik Sipsma <erik@dagger.io>
Date:   Fri Jul 14 18:08:40 2023 -0700

    core: add include/exclude name to host dir copy name (dagger#5469)

    Signed-off-by: Erik Sipsma <erik@dagger.io>

commit f34f974
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 20:31:06 2023 +0100

    build(deps-dev): bump @typescript-eslint/parser in /sdk/nodejs (dagger#5465)

    Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.60.1 to 5.62.0.
    - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
    - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
    - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.62.0/packages/parser)

    Signed-off-by: dependabot[bot] <support@github.com>

commit a57fcd1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:56:47 2023 +0100

    build(deps): bump github.com/google/go-containerregistry (dagger#5460)

    Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.14.0 to 0.15.2.
    - [Release notes](https://github.com/google/go-containerregistry/releases)
    - [Changelog](https://github.com/google/go-containerregistry/blob/main/.goreleaser.yml)
    - [Commits](google/go-containerregistry@v0.14.0...v0.15.2)

    Signed-off-by: dependabot[bot] <support@github.com>

commit ff60a90
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:38:58 2023 +0100

    build(deps): bump golang.org/x/tools from 0.10.0 to 0.11.0 in /sdk/go (dagger#5456)

    * build(deps): bump golang.org/x/tools from 0.10.0 to 0.11.0 in /sdk/go

    Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.10.0 to 0.11.0.
    - [Release notes](https://github.com/golang/tools/releases)
    - [Commits](golang/tools@v0.10.0...v0.11.0)

    ---
    updated-dependencies:
    - dependency-name: golang.org/x/tools
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Run go mod tidy

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Gerhard Lazu <gerhard@dagger.io>

commit c023f07
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:20:00 2023 +0100

    build(deps-dev): bump @typescript-eslint/eslint-plugin in /sdk/nodejs (dagger#5461)

    Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.60.1 to 5.62.0.
    - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
    - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
    - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.62.0/packages/eslint-plugin)

    Signed-off-by: dependabot[bot] <support@github.com>

commit 960a138
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:17:02 2023 +0100

    build(deps): bump github.com/iancoleman/strcase from 0.2.0 to 0.3.0 in /sdk/go (dagger#5455)

    * build(deps): bump github.com/iancoleman/strcase in /sdk/go

    Bumps [github.com/iancoleman/strcase](https://github.com/iancoleman/strcase) from 0.2.0 to 0.3.0.
    - [Commits](iancoleman/strcase@v0.2.0...v0.3.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/iancoleman/strcase
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * Run go mod tidy

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Gerhard Lazu <gerhard@dagger.io>

commit 4596de6
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:07:50 2023 +0100

    build(deps): bump golang.org/x/mod in /internal/mage (dagger#5466)

    Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.11.0 to 0.12.0.
    - [Commits](golang/mod@v0.11.0...v0.12.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit afa15a0
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 19:06:27 2023 +0100

    build(deps-dev): bump eslint from 8.44.0 to 8.45.0 in /sdk/nodejs (dagger#5464)

    Bumps [eslint](https://github.com/eslint/eslint) from 8.44.0 to 8.45.0.
    - [Release notes](https://github.com/eslint/eslint/releases)
    - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
    - [Commits](eslint/eslint@v8.44.0...v8.45.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit 1e7aa6d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 18:58:19 2023 +0100

    build(deps): bump github.com/go-git/go-git/v5 from 5.5.2 to 5.7.0 (dagger#5459)

    Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.5.2 to 5.7.0.
    - [Release notes](https://github.com/go-git/go-git/releases)
    - [Commits](go-git/go-git@v5.5.2...v5.7.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit bdf0a37
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 18:57:39 2023 +0100

    build(deps): bump golang.org/x/text from 0.10.0 to 0.11.0 (dagger#5458)

    Bumps [golang.org/x/text](https://github.com/golang/text) from 0.10.0 to 0.11.0.
    - [Release notes](https://github.com/golang/text/releases)
    - [Commits](golang/text@v0.10.0...v0.11.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit fb25a52
Author: Nabeel Sulieman <nabsul@outlook.com>
Date:   Fri Jul 14 09:14:21 2023 -0700

    Start working on a code generation tool (dagger#5422)

    Fix parse errors

    Check in some intermediate stuff

    Re-order fields, add readme, etc.

    Document source of introspection query

    Signed-off-by: Nabeel Sulieman <nabsul@users.noreply.github.com>

commit f301d85
Author: Gerhard Lazu <gerhard@users.noreply.github.com>
Date:   Fri Jul 14 17:13:01 2023 +0100

    Configure dependabot to ignore npm dep updates in sdk/rust (dagger#5454)

    Dependabot opened 12 npm dep bumps in sdk/rust in the last 4 days. These
    are super low value contributions that we want to avoid seeing alongside
    the other, genuinely valuable PRs (each dep bump gets its own PR, which
    means a lot of noise & no signal).

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

commit 22b436c
Author: Gerhard Lazu <gerhard@users.noreply.github.com>
Date:   Fri Jul 14 17:11:00 2023 +0100

    Fix VERSION variable for CLI install instructions (dagger#5453)

    This changed to DAGGER_VERSION ~1 year ago. It was correctly updated in
    most places, except in this doc.

    Also updated the version to LATEST-1.

    Signed-off-by: Gerhard Lazu <gerhard@dagger.io>

commit 169c790
Author: Thanabodee Charoenpiriyakij <wingyminus@gmail.com>
Date:   Fri Jul 14 23:10:05 2023 +0700

    sdk(elixir): fix crash on any functions that requires ID (dagger#5413)

    Any id functions returns `{:ok, id}`, which we didn't handle it. This fixes it.

    Fixes dagger#5412

    Signed-off-by: Thanabodee Charoenpiriyakij <wingyminus@gmail.com>

commit 34f76de
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jul 14 17:07:59 2023 +0100

    build(deps): bump google.golang.org/grpc (dagger#5411)

    Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.51.0 to 1.53.0.
    - [Release notes](https://github.com/grpc/grpc-go/releases)
    - [Commits](grpc/grpc-go@v1.51.0...v1.53.0)

    Signed-off-by: dependabot[bot] <support@github.com>

commit d1c6160
Author: Kasper Juul Hermansen <contact@kjuulh.io>
Date:   Fri Jul 14 17:58:15 2023 +0200

    chore(rust-sdk): bump v0.6.2 (dagger#5405)

    * chore(rust-sdk): bump 0.6.2

    Signed-off-by: kjuulh <contact@kjuulh.io>

commit 4842448
Author: Erik Sipsma <erik@dagger.io>
Date:   Fri Jul 14 08:21:49 2023 -0700

    Fix corner case where WithDirectory included wrong contents. (dagger#5448)

commit 7369279
Author: Helder Correia <174525+helderco@users.noreply.github.com>
Date:   Thu Jul 13 17:50:03 2023 +0000

    Fix drift between SDKs in chainable utils feature (dagger#5447)

    * Fix drift between SDKs in chainable utils feature

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

    * Update test fixture

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

    ---------

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

commit 8885634
Author: Alex Suraci <suraci.alex@gmail.com>
Date:   Tue Jul 11 22:30:47 2023 -0400

    Container: add `withFocus`, `withoutFocus` (dagger#5364)

    * add focus: true to Container.WithExec

    Focused execs will be featured more prominently in the UI. You would
    typically use this flag to mark the command that accomplishes the
    primary goal of the pipeline, such as the command that runs your tests.

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * switch to Container { focus, unfocus }

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * bump progrock for panic fix

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * cli: focus in do by default, but not run

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * rename to withFocus, withoutFocus

    Signed-off-by: Alex Suraci <alex@dagger.io>

    * withFocus/withoutFocus: more generic doc

    Signed-off-by: Alex Suraci <alex@dagger.io>

    ---------

    Signed-off-by: Alex Suraci <alex@dagger.io>

commit bd94e23
Author: Helder Correia <174525+helderco@users.noreply.github.com>
Date:   Tue Jul 11 18:25:24 2023 +0000

    Fix .mjs docs lint and format (dagger#5435)

    Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>

commit c44009e
Author: Solomon Hykes <shykes@users.noreply.github.com>
Date:   Tue Jul 11 10:15:14 2023 -0700

    Cookbook: integrating with a docker engine (dagger#5421)

    Cookbook: integrating with a Docker engine

    Signed-off-by: Solomon Hykes <solomon@dagger.io>
    Signed-off-by: Helder Correia <helder@dagger.io>

Signed-off-by: Alex Suraci <alex@dagger.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TUI: hide container stdout by default
2 participants