turbo icon indicating copy to clipboard operation
turbo copied to clipboard

Turborepo Cache issue with .gitignore'd files

Open bryansoftdev opened this issue 2 years ago • 2 comments

Verify canary release

  • [X] I verified that the issue exists in the latest Turborepo canary release.

Link to code that reproduces this issue

https://github.com/bryansoftdev/turbo-gitignore-issue

What package manager are you using / does the bug impact?

pnpm

What operating system are you using?

Mac

Which canary version will you have in your reproduction?

1.13.0

Describe the Bug

  "pipeline": {
    "build": {
      "dependsOn": ["build-config-file"],
      "inputs": ["$TURBO_DEFAULT$", "config.json"]
    },
    "build-config-file": {
      "cache": false
    }
  },

When executing the build task that depends on the build-config-file task, the build task incorrectly receives a cache hit, even though the build-config-file task has dynamically generated a new and different config.json. This results in the build task using an outdated configuration, ignoring the changes made by the build-config-file task.

The issue appears to be caused by Turbo's inability to cache changes in .gitignore files.

Expected Behavior

The expected behavior is that the dependent task gets a cache miss whenever the upstream task generates a new config.json, even if this file is listed in .gitignore.

To Reproduce

  1. pnpm install
  2. pnpm exec turbo build
    • config.json is first created by build-config-file
  3. rm ./apps/app-1/config.json
    • simulate the repo's initial state
  4. pnpm exec turbo build
    • config.json recreated and has different file contents
    • turbo repo shows first config.json's contents even though config.json is listed in inputs & has changed. this should be a cache miss.

Additional context

For now, I removed build-config-file from my build task dependencies, so that I can run the tasks individually & the caching is working as expected.

pnpm exec turbo build-config-file
pnpm exec turbo build

bryansoftdev avatar Mar 22 '24 20:03 bryansoftdev

Hi! Thanks for the report. We're having a look at this now and will report back.

Thanks!

arlyon avatar Apr 02 '24 15:04 arlyon

@bryansoftdev are you seeing the following for the cache hit on build?

cache hit (outputs already on disk)

Also, will your build task have outputs?

tknickman avatar Apr 02 '24 15:04 tknickman

Closing as we haven't heard back. If this is still an issue please re-open!

tknickman avatar Nov 08 '24 02:11 tknickman