From 13e3b18f2794023d226d520530e415b158b16dc5 Mon Sep 17 00:00:00 2001 From: OJ Kwon <1210596+kwonoj@users.noreply.github.com> Date: Fri, 30 Sep 2022 12:59:32 -0700 Subject: [PATCH] build(next/swc): consolidate swc_core dependency version (#41043) This PR utilizes cargo's new feature from latest release (1.64.0), inheriting dependency from a workspace. In short, top-level workspace cargo manifest can specify a version of dependency to use, then actual packages uses it without re-declaring version per each via workspace = true. This will help to dedupe different versions of packages, also potentially avoid conflicts if forgot to bump up specific versions. In this pr only touches swc_core, which is a base dependency we use in several place. One another benefit for this is bump up PR can be lot more simplified, only need to update single Cargo.toml when we bump up. Note rust-toolchain has updated to use nightly version after 1.64.0 to enable this. ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have a helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have a helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md) --- .github/workflows/build_test_deploy.yml | 2 +- .github/workflows/pull_request_stats.yml | 4 ++-- packages/next-swc/Cargo.toml | 7 ++++++- packages/next-swc/crates/core/Cargo.toml | 4 ++-- packages/next-swc/crates/emotion/Cargo.toml | 4 ++-- packages/next-swc/crates/modularize_imports/Cargo.toml | 4 ++-- packages/next-swc/crates/napi/Cargo.toml | 2 +- packages/next-swc/crates/styled_components/Cargo.toml | 4 ++-- packages/next-swc/crates/styled_jsx/Cargo.toml | 4 ++-- packages/next-swc/crates/wasm/Cargo.toml | 2 +- packages/next-swc/rust-toolchain | 2 +- 11 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index fe271984e8a60..463631fdb2dd3 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -9,7 +9,7 @@ name: Build, test, and deploy env: NAPI_CLI_VERSION: 2.7.0 TURBO_VERSION: 1.3.2-canary.1 - RUST_TOOLCHAIN: nightly-2022-09-14 + RUST_TOOLCHAIN: nightly-2022-09-23 PNPM_VERSION: 7.2.1 jobs: diff --git a/.github/workflows/pull_request_stats.yml b/.github/workflows/pull_request_stats.yml index 6a5abdc204367..68bdabfa7c2f4 100644 --- a/.github/workflows/pull_request_stats.yml +++ b/.github/workflows/pull_request_stats.yml @@ -7,7 +7,7 @@ name: Generate Pull Request Stats env: NAPI_CLI_VERSION: 2.7.0 TURBO_VERSION: 1.3.2-canary.1 - RUST_TOOLCHAIN: nightly-2022-02-23 + RUST_TOOLCHAIN: nightly-2022-09-23 PNPM_VERSION: 7.2.1 jobs: @@ -39,7 +39,7 @@ jobs: if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }} with: profile: minimal - toolchain: nightly-2021-11-15 + toolchain: nightly-2022-09-23 - name: Cache cargo registry uses: actions/cache@v1 diff --git a/packages/next-swc/Cargo.toml b/packages/next-swc/Cargo.toml index cb4bbc59e70f7..bb1e586534961 100644 --- a/packages/next-swc/Cargo.toml +++ b/packages/next-swc/Cargo.toml @@ -14,4 +14,9 @@ opt-level = 2 debug-assertions = false [profile.release] -lto = true \ No newline at end of file +lto = true + +# Declare dependencies used across workspace packages requires single version bump. +# ref: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace +[workspace.dependencies] +swc_core = "0.28.10" \ No newline at end of file diff --git a/packages/next-swc/crates/core/Cargo.toml b/packages/next-swc/crates/core/Cargo.toml index aaaa440845a26..d845689ab1181 100644 --- a/packages/next-swc/crates/core/Cargo.toml +++ b/packages/next-swc/crates/core/Cargo.toml @@ -28,7 +28,7 @@ styled_jsx = {path="../styled_jsx"} modularize_imports = {path="../modularize_imports"} tracing = { version = "0.1.32", features = ["release_max_level_info"] } -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "common_concurrent", "ecma_ast", "ecma_visit", @@ -48,6 +48,6 @@ swc_core = { version = "0.28.10", features = [ ] } [dev-dependencies] -swc_core = { version = "0.28.10", features = ["testing_transform"] } +swc_core = { workspace = true, features = ["testing_transform"] } testing = "0.31.3" walkdir = "2.3.2" diff --git a/packages/next-swc/crates/emotion/Cargo.toml b/packages/next-swc/crates/emotion/Cargo.toml index b93bb03732832..e38e294046ff8 100644 --- a/packages/next-swc/crates/emotion/Cargo.toml +++ b/packages/next-swc/crates/emotion/Cargo.toml @@ -19,9 +19,9 @@ regex = "1.5" serde = "1" sourcemap = "6.0.1" tracing = { version = "0.1.32", features = ["release_max_level_info"] } -swc_core = { version = "0.28.10", features = ["common", "ecma_ast","ecma_codegen", "ecma_utils", "ecma_visit", "trace_macro"] } +swc_core = { workspace = true, features = ["common", "ecma_ast","ecma_codegen", "ecma_utils", "ecma_visit", "trace_macro"] } [dev-dependencies] -swc_core = { version = "0.28.10", features = ["testing_transform", "ecma_transforms_react"] } +swc_core = { workspace = true, features = ["testing_transform", "ecma_transforms_react"] } testing = "0.31.3" serde_json = "1" diff --git a/packages/next-swc/crates/modularize_imports/Cargo.toml b/packages/next-swc/crates/modularize_imports/Cargo.toml index 633f96d9f216e..6e8ccb0eee7d4 100644 --- a/packages/next-swc/crates/modularize_imports/Cargo.toml +++ b/packages/next-swc/crates/modularize_imports/Cargo.toml @@ -15,8 +15,8 @@ handlebars = "4.2.1" once_cell = "1.13.0" regex = "1.5" serde = "1" -swc_core = { version = "0.28.10", features = ["cached", "ecma_ast", "ecma_visit"] } +swc_core = { workspace = true, features = ["cached", "ecma_ast", "ecma_visit"] } [dev-dependencies] -swc_core = { version = "0.28.10", features = ["testing_transform"] } +swc_core = { workspace = true, features = ["testing_transform"] } testing = "0.31.3" diff --git a/packages/next-swc/crates/napi/Cargo.toml b/packages/next-swc/crates/napi/Cargo.toml index 4b11a3fedd6a1..0b1720963d00e 100644 --- a/packages/next-swc/crates/napi/Cargo.toml +++ b/packages/next-swc/crates/napi/Cargo.toml @@ -30,7 +30,7 @@ next-swc = {version = "0.0.0", path = "../core"} once_cell = "1.13.0" serde = "1" serde_json = "1" -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "allocator_node", "base_concurrent", # concurrent? "common_concurrent", diff --git a/packages/next-swc/crates/styled_components/Cargo.toml b/packages/next-swc/crates/styled_components/Cargo.toml index 7ea1f338b40dd..ecf85e5dfa11d 100644 --- a/packages/next-swc/crates/styled_components/Cargo.toml +++ b/packages/next-swc/crates/styled_components/Cargo.toml @@ -16,7 +16,7 @@ once_cell = "1.13.0" regex = {version = "1.5.4", features = ["std", "perf"], default-features = false} serde = {version = "1.0.130", features = ["derive"]} tracing = "0.1.32" -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "common", "ecma_ast", "ecma_utils", @@ -26,7 +26,7 @@ swc_core = { version = "0.28.10", features = [ [dev-dependencies] serde_json = "1" testing = "0.31.3" -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "ecma_parser", "ecma_transforms", "testing_transform" diff --git a/packages/next-swc/crates/styled_jsx/Cargo.toml b/packages/next-swc/crates/styled_jsx/Cargo.toml index 5a258af5d8bb7..4f2c9fbdf334d 100644 --- a/packages/next-swc/crates/styled_jsx/Cargo.toml +++ b/packages/next-swc/crates/styled_jsx/Cargo.toml @@ -13,7 +13,7 @@ version = "0.20.0" easy-error = "1.0.0" tracing = "0.1.32" -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "common", "css_ast", "css_codegen", @@ -28,6 +28,6 @@ swc_core = { version = "0.28.10", features = [ [dev-dependencies] testing = "0.31.3" -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "testing_transform" ] } diff --git a/packages/next-swc/crates/wasm/Cargo.toml b/packages/next-swc/crates/wasm/Cargo.toml index 1f9439650180a..3ac12afbc8711 100644 --- a/packages/next-swc/crates/wasm/Cargo.toml +++ b/packages/next-swc/crates/wasm/Cargo.toml @@ -32,7 +32,7 @@ getrandom = { version = "0.2.5", optional = true, default-features = false } js-sys = "0.3.59" serde-wasm-bindgen = "0.4.3" -swc_core = { version = "0.28.10", features = [ +swc_core = { workspace = true, features = [ "common_concurrent", "binding_macro_wasm", "ecma_codegen", diff --git a/packages/next-swc/rust-toolchain b/packages/next-swc/rust-toolchain index fdd6c8279e690..0f65080bf5f88 100644 --- a/packages/next-swc/rust-toolchain +++ b/packages/next-swc/rust-toolchain @@ -1 +1 @@ -nightly-2022-09-14 +nightly-2022-09-23