Skip to content

no way to express build dependencies in Tilt #3048

@nicks

Description

@nicks

Currently, Tilt has resource_deps for expressing runtime initialization dependencies (e.g., "You need to start up the database before the frontend").

But Tilt has no way to express other types of dependencies, including:

  1. A common pattern is to have a local_resource that generates files, and then a docker_build that syncs those files to a container. (e.g., generating API documentation in tilt.build, compiling Go static binaries). This workflow has a bunch of rough edges (logs aren't grouped like you would expect them, redundant builds, etc)

  2. Another common pattern is to have a local_resource that solely exists to kick off another build (e.g., the "touch Tiltfile" script described in support manually triggering tiltfile executions #2957, or the "measure deployment" script described in https://docs.tilt.dev/example_static_html.html). These scripts are prone to race conditions and infinite loop problems (local that generates yaml causes infinite loop #1930)

People often try to do this with resource_deps, and are confused about why it doesn't work. See also discussion on this PR: #2837 (comment)

I don't know what the solution is to this problem, or even if (1) or (2) are the same problem. This issue is just to have a place to point people who ask about this while we think about what to do about it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions