tilt-dev / tilt-dev/tilt

Connect dependencies of projects to `docker_build` ignore/only (possible integration with Nx Monorepo)

Open
#6,502 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
10.1k
Forks
413
Avg merge
1d 10h
Merged PRs (30d)
6

Description

Describe the Feature You Want

Hey! I have a question.
Has anyone here tried Nx + PNPM workspaces + making sub packages + using those packages in your NodeJS app + tilt?

Nx gives you ways to manage your monorepo by building out a dependency graph, caching nodes, using that cache during builds, and exposes nice tooling for accessing this stuff (e.g. nx watch , nx build, nx run).
PNPM gives you a way to make relate packages across your repo (e.g. package.json + the workspace:* syntax).
We make packages and reuse them in our NodeJS projects, and we would like to be k8s native during local dev, and, naturally, that led us to Tilt.

Tilt's docker_build seems to be great at noticing the builds (tilt seems to be watching the Context window for Docker), but my shared package files exist in different places in the monorepo. This makes me have to push the monorepo root as context, which means i rebuild when any file changes.
I can try to control it with only or ignore but now i have to list the exact subpackages in the repo that it cares about. Ideally, tilt would already know.

(Possible Feature Request here)
Luckily, nx does know, and it would be great if i could pipe my project and its dependent subpackages automatically to tilt's ignore or only fields so it only rebuilds when it should, instead of whenever literally anything in the repo changes.
Has anyone faced this? How did you solve it? Is my feature request possible?

Current Behavior

Tilt has only/ignore which works, but users must manually manage dependencies rather than being automatic.

Why Do You Want This?

I would like to reduce the complexity of the Tiltfile management process for teams.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by examining Tilt's docker_build handling of the only and ignore fields, then compare that with the Nx dependency graph and PNPM workspace structure described here. Done would mean a clearly defined way to derive the relevant dependent packages automatically and verify that unrelated repository changes do not trigger rebuilds.

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs
Domain
build-system, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.