Skip to content

Releases: vercel/turbo

v1.0.28

14 Jan 02:25
Compare
Choose a tag to compare

What's changed?

  • Updated next-env.d.ts in create-turbo so that there isn't a cache miss on the first run due to altered source

Full Changelog: v1.0.27...v1.0.28

v1.0.27

14 Jan 01:10
Compare
Choose a tag to compare

What's changed?

  • Patched bug causing turbo to hang on errors #557

Full Changelog: v1.0.26...v1.0.27

v1.0.26

12 Jan 17:09
Compare
Choose a tag to compare

What's Changed

  • fix a typo in hashable env pairs array name by @hemache in #547

New Contributors

Full Changelog: v1.0.25...v1.0.26

v1.0.25

10 Jan 19:37
Compare
Choose a tag to compare

What's new?

Environment variable dependencies and hashing

When you use turbo with tools which inline environment variables at build time (e.g. Next.js or Create React App), it is important you tell turbo about it. Otherwise, you could ship a cached artifact with the wrong environment variables!

With this release, you can now change a task hash by doing any of the following:

  • (new) Including environment variables in a dependsOn in your pipeline definition prefixed by a $ will impact the cache fingerprint on a per-task or per-package-task basis.
  • (new) Including environment variables in globalDependencies list prefixed by a $ will impact the cache fingerprint of all tasks.
  • Including files or globs of files in globalDependencies will impact the cache fingerprint of all tasks.
  • (new) The value of any environment variable that includes THASH in its name will impact the cache fingerprint of all tasks.

Example Configuration

{
  "turbo": {
    "pipeline": {
      "build": {
        "dependsOn": {
          "^build"
          // env vars will impact hashes of all "build" tasks
          "$SOME_ENV_VAR"
        },
        "outputs": ["dist/**"]
      },
      "web#build": { // override settings for the "build" task for the "web" app
        "dependsOn": [
          "^build",
           // env vars that will impact the hash of "build" task for only "web" app
           "$STRIPE_SECRET_KEY",
           "$NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
           "$NEXT_PUBLIC_ANALYTICS_ID",
        ],
        "outputs": [".next/**"],
      },
      "docs#build": { // override settings for the "build" task for the "docs" app
        "dependsOn": [
          "^build",
           // env vars that will impact the hash of "build" task for only "web" app
           "$STRIPE_SECRET_KEY",
           "$NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
           "$NEXT_PUBLIC_ANALYTICS_ID",
        ],
        "outputs": [".next/**"],
      }
    },
    "baseBranch": "origin/main",
    "globalDependencies": [
      "$GITHUB_TOKEN"// env var that will impact the hashes of all tasks,
      "tsconfig.json" // file contents will impact the hashes of all tasks,
      ".env.*" // glob file contents will impact the hashes of all tasks,
    ],
  }
}

Bugfixes

  • Correctly show pnpx command in create-turbo
  • Treat symlink directory as directory in globalDependencies
  • Fix cpu overloading during long running tasks
  • Better error message when workspaces are not defined

Commits

New Contributors

Full Changelog: v1.0.24...v1.0.25

v1.0.25-canary.1

10 Jan 19:33
Compare
Choose a tag to compare
v1.0.25-canary.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.0.24...v1.0.25-canary.1

v1.0.25-canary.0

07 Jan 23:07
Compare
Choose a tag to compare
v1.0.25-canary.0 Pre-release
Pre-release

What's New?

Hashing Environment Variables

When you use turbo with tools which inline environment variables at build time (e.g. Next.js or Create React App), it is important you tell turbo about it. Otherwise, you could ship a cached artifact with the wrong environment variables!

With this PR, you can now change a task hash by doing any of the following:

  • Including environment variables in a dependsOn in your pipeline definition prefixed by a $ will impact the cache fingerprint on a per-task or per-package-task basis.
  • Including environment variables in globalDependencies list prefixed by a $ will impact the cache fingerprint of all tasks.
  • Including files or globs of files in globalDependencies will impact the cache fingerprint of all tasks.
  • The value of any environment variable that includes THASH in its name will impact the cache fingerprint of all tasks.

Example Configuration

{
  "turbo": {
    "pipeline": {
      "build": {
        "dependsOn": {
          "^build"
          // env vars will impact hashes of all "build" tasks
          "$SOME_ENV_VAR"
        },
        "outputs": ["dist/**"]
      },
      "web#build": { // override settings for the "build" task for the "web" app
        "dependsOn": [
          "^build",
           // env vars that will impact the hash of "build" task for only "web" app
           "$STRIPE_SECRET_KEY",
           "$NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
           "$NEXT_PUBLIC_ANALYTICS_ID",
        ],
        "outputs": [".next/**"],
      },
      "docs#build": { // override settings for the "build" task for the "docs" app
        "dependsOn": [
          "^build",
           // env vars that will impact the hash of "build" task for only "web" app
           "$STRIPE_SECRET_KEY",
           "$NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
           "$NEXT_PUBLIC_ANALYTICS_ID",
        ],
        "outputs": [".next/**"],
      }
    },
    "baseBranch": "origin/main",
    "globalDependencies": [
      "$GITHUB_TOKEN"// env var that will impact the hashes of all tasks,
      "tsconfig.json" // file contents will impact the hashes of all tasks,
      ".env.*" // glob file contents will impact the hashes of all tasks,
    ],
  }
}

Commits

New Contributors

Full Changelog: v1.0.24...v1.0.25-canary.0

v1.0.24

31 Dec 14:14
Compare
Choose a tag to compare

What's Changed?

  • Added pnpm starter to create-turbo
  • Fixed yarn lockfile parsing on Windows machines. In the past, windows machines would not resolve yarn deps like linux and mac, but just hash the contents of the file. This has been fixed and removed.
  • Fixed log output streaming so that both stderr and stdout now correctly print output regardless of which one goes first. This was causing rollup and storybook watch commands to hang

Commits

New Contributors

Full Changelog: v1.0.23...v1.0.24

v1.0.24-canary.2

29 Dec 23:30
Compare
Choose a tag to compare
v1.0.24-canary.2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.0.23...v1.0.24-canary.2

v1.0.24-canary.1

29 Dec 22:58
Compare
Choose a tag to compare
v1.0.24-canary.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.0.23...v1.0.24-canary.1

v1.0.24-canary.0

29 Dec 22:54
Compare
Choose a tag to compare
v1.0.24-canary.0 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.0.23...v1.0.24-canary.0