Turborepo 1.2

Friday, April 8th, 2022
Jared Palmer
Name
Jared Palmer
X
@jaredpalmer
Becca Z.
Name
Becca Z.
X
@becca__z
Gaspar Garcia
Name
Gaspar Garcia
X
@gaspargarcia_
Greg Soltis
Name
Greg Soltis
X
@gsoltis

1월 말 Turborepo v1.1을 출시한 이후, 놀라운 채택률과 커뮤니티 성장을 보였습니다:

Turborepo v1.2는 사용성, 관찰 가능성 및 보안을 더욱 개선했으며 다음 기능을 제공합니다:

npm install turbo@latest를 실행하여 오늘 업데이트하세요. turbo run을 처음 실행하면 @turbo/codemod를 사용하여 v1.2에 대한 자동 마이그레이션을 실행하는 방법에 대한 지침이 표시됩니다.

New Task Filtering API

가장 많이 요청된 기능 중 하나인 --filter 플래그를 통한 표현력 있는 작업 필터링 기능을 출시하게 되어 기쁩니다. --filter 플래그는 현재 --scope, --include-dependencies, --since, --no-deps 플래그의 조합보다 훨씬 강력한 후속 기능입니다.

--filter를 사용하면 이름, 폴더 또는 git commit ref 이후 변경 여부를 기준으로 모노레포에서 일치하는 패키지의 하위 집합으로만 명령 실행을 제한하도록 turbo에 지시할 수 있습니다.

새로운 --filter 명령으로 수행할 수 있는 작업의 몇 가지 예를 살펴보세요:

여러 필터를 함께 사용하여 더욱 세분화된 필터링을 할 수 있으며, 위 패턴의 각 부분 {}, [], ^, ...를 결합하여 더 복잡한 동작을 표현할 수 있습니다.

예를 들어, 로컬 패키지를 종속성으로 사용하는 ./apps/web 디렉터리에 앱이 있고, Turborepo 파이프라인에서 test가 위상적으로 ^build에 의존하는 경우 다음을 실행하면:

Terminal
turbo run test --filter={./apps/web}[HEAD^1]^...

turbo에게 종속성이 빌드되었는지 확인하고 앱이 HEAD^1 이후 변경된 경우 ./apps/web에 위치한 앱 자체를 제외한 모든 로컬 종속성에서 test 스크립트를 실행하도록 지시합니다.

자세한 내용과 예제는 새로운 필터링 문서를 참조하세요.

Debug and Automate with --dry-run

이제 turbo run 명령에 --dry-run 또는 --dry-run=json을 추가하여 실제로 명령을 실행하지 않고도 turbo run의 영향을 확인할 수 있습니다. 이는 사람이 읽을 수 있는 형식 또는 JSON 출력으로 결과를 제공합니다.

Dry run은 두 가지 상황에서 매우 유용합니다:

Turborepo Dry Run

이를 통해 turbo가 수행하는 작업에 대한 가시성을 개선하고 디버깅 속도를 높이며 동적 CI/CD 시스템에서 turbo를 더 쉽게 활용할 수 있기를 바랍니다.

Improved Internal Scheduler and Graph

turbo run을 사용할 때 모든 package.json 작업은 Turborepo pipeline에 정의된 추론된 관계를 기반으로 종속성을 매핑하기 위해 내부 그래프에 추가됩니다. 이 작업 그래프를 통해 Turborepo는 증분 동시 작업 실행을 효율적으로 스케줄링하고 나중에 사용할 작업 출력을 캐시할 수 있습니다.

내부 작업 스케줄러와 결과 그래프 구조에 주요 개선 사항을 적용하여 성능과 개발자 경험을 개선했습니다. 예를 들어, 많은 경우 더 이상 --include-dependencies를 사용할 필요가 없습니다. 대신 작업 진입점을 지정한 후 새롭고 개선된 그래프가 자동으로 이 그래프 해결을 처리합니다.

Cache Outputs Integrity and Signature Verification

이제 Turborepo를 구성하여 Remote Cache에 업로드하기 전에 비밀 키를 사용하여 HMAC-SHA256으로 원격 캐시 출력에 서명할 수 있습니다. Turborepo가 서명된 캐시 아티팩트를 다운로드하면 이제 아티팩트의 무결성과 진위성을 확인합니다. 확인에 실패한 아티팩트는 무시되고 폐기되며 Turborepo에서 캐시 미스로 처리됩니다.

이 기능을 활성화하려면 turbo.json 구성 파일의 remoteCache 옵션을 signature: true로 설정하세요. 그런 다음 TURBO_REMOTE_CACHE_SIGNATURE_KEY 환경 변수를 선언하여 비밀 키를 지정하세요.

Turborepo logo
./turbo.json
{
  "$schema": "[https://turborepo.com/schema.json](https://turborepo.com/schema.json)",
  "remoteCache": {
    // 서명 확인이 활성화되었는지 여부를 나타냅니다.
    "signature": true
  }
}

Other bug fixes and improvements

We're hiring!

Vercel의 Turborepo 팀이 채용 중입니다! 올해 이미 5명의 핵심 팀원이 있으며 더 많은 인원을 채용하고자 합니다. 특히 풀타임 Senior Build Systems Engineers를 찾고 있습니다.

What's next?

원활한 점진적 채택/마이그레이션과 CI/CD 속도 향상과 함께 Turborepo의 일상적인 사용성, 보안 및 관찰 가능성을 개선하는 데 중점을 두고 있습니다. 새로운 --filter 플래그, 서명된 아티팩트 및 dry run은 이러한 목표를 향한 중요한 단계입니다.

다음으로는 향상된 로컬 개발 경험, 코드베이스 자동화 및 전반적인 CLI 성능에 중점을 둘 것입니다.

Thank you, contributors

Turborepo는 95명 이상의 개별 개발자와 핵심 팀의 결합된 작업의 결과입니다.

이 릴리스는 다음의 기여로 제공되었습니다: @gsoltis09, @jaredpalmer, @gaspar09, @shuding, @rajatkulkarni95, @VanTanev, @Kikobeats, @tknickman, @thebanjomatic, @chelkyl, @elado, @finn-orsini, @becca, @weyert, @ekosz