From 6de12a2101661d3ea085094a180b0ade05a67519 Mon Sep 17 00:00:00 2001 From: OJ Kwon Date: Fri, 8 Jul 2022 13:18:00 -0700 Subject: [PATCH] build(cargo): features for the schema version --- .github/workflows/cargo.yml | 10 ++++++++-- crates/binding_core_node/Cargo.toml | 3 +++ crates/binding_core_wasm/Cargo.toml | 1 + crates/swc/Cargo.toml | 4 ++++ crates/swc_cli/Cargo.toml | 1 + crates/swc_common/Cargo.toml | 2 ++ crates/swc_common/src/plugin.rs | 5 +++++ crates/swc_plugin/Cargo.toml | 1 + crates/swc_plugin_runner/Cargo.toml | 5 ++++- 9 files changed, 29 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cargo.yml b/.github/workflows/cargo.yml index 9c4497106314..b80e5ec6a491 100644 --- a/.github/workflows/cargo.yml +++ b/.github/workflows/cargo.yml @@ -115,7 +115,7 @@ jobs: - crate: swc os: ubuntu-latest check: | - cargo hack check --feature-powerset --no-dev-deps --exclude-features debug --exclude-features plugin + cargo hack check --feature-powerset --no-dev-deps --exclude-features debug --exclude-features plugin --exclude-features plugin-transform-schema-v1 - crate: swc os: windows-latest - crate: swc_atoms @@ -136,7 +136,7 @@ jobs: - crate: swc_common os: ubuntu-latest check: | - cargo hack check --feature-powerset --no-dev-deps + cargo hack check --feature-powerset --no-dev-deps --exclude-features plugin-transform-schema-vtest - crate: swc_common os: windows-latest - crate: swc_config @@ -398,9 +398,15 @@ jobs: swc-exec-cache-${{ matrix.settings.crate }}-${{ runner.os }} - name: Run cargo test + if: matrix.settings.crate != 'swc_plugin_runner' run: | cargo test --color always -p ${{ matrix.settings.crate }} + - name: Run cargo test (plugin) + if: matrix.settings.crate == 'swc_plugin_runner' + run: | + cargo test --color always -p swc_plugin_runner --features plugin-transform-schema-v1 + - name: Run cargo test (all features) if: matrix.settings.crate == 'swc_ecma_parser' || matrix.settings.crate == 'swc_ecma_loader' || matrix.settings.crate == 'swc_ecma_transforms' run: | diff --git a/crates/binding_core_node/Cargo.toml b/crates/binding_core_node/Cargo.toml index 8bc89402fbda..fcaa556cc64c 100644 --- a/crates/binding_core_node/Cargo.toml +++ b/crates/binding_core_node/Cargo.toml @@ -16,7 +16,10 @@ crate-type = ["cdylib"] default = ["swc_v1", "plugin"] plugin = [ "swc/plugin", + "swc/plugin-transform-schema-v1", + "swc_common/plugin-transform-schema-v1", "swc_plugin_runner/default", + "swc_plugin_runner/plugin-transform-schema-v1", "wasmer/default", "wasmer-wasi/default", ] diff --git a/crates/binding_core_wasm/Cargo.toml b/crates/binding_core_wasm/Cargo.toml index 539de8b4463f..887fa780fc0b 100644 --- a/crates/binding_core_wasm/Cargo.toml +++ b/crates/binding_core_wasm/Cargo.toml @@ -20,6 +20,7 @@ swc_v2 = [] plugin = [ "swc/plugin", "swc_plugin_runner/memory_cache", + "swc_plugin_runner/plugin-transform-schema-v1", "wasmer", "wasmer-wasi", "wasmer/js-default", diff --git a/crates/swc/Cargo.toml b/crates/swc/Cargo.toml index 48c6c90392f3..16fa47c8bb6f 100644 --- a/crates/swc/Cargo.toml +++ b/crates/swc/Cargo.toml @@ -22,6 +22,10 @@ default = ["es3"] es3 = [] node = ["napi", "napi-derive"] plugin = ["swc_plugin_runner", "swc_plugin_proxy/plugin-rt"] +plugin-transform-schema-v1 = [ + "swc_common/plugin-transform-schema-v1", + "swc_plugin_runner/plugin-transform-schema-v1" +] [dependencies] ahash = "0.7.4" diff --git a/crates/swc_cli/Cargo.toml b/crates/swc_cli/Cargo.toml index 1b5c424d3be3..27f13f1a0eb3 100644 --- a/crates/swc_cli/Cargo.toml +++ b/crates/swc_cli/Cargo.toml @@ -18,6 +18,7 @@ default = [] plugin = [ "swc/plugin", "swc_plugin_runner/filesystem_cache", + "swc_plugin_runner/plugin-transform-schema-v1", "wasmer/default", "wasmer-wasi/default", ] diff --git a/crates/swc_common/Cargo.toml b/crates/swc_common/Cargo.toml index 152bc75f2c37..29fc29fab5d7 100644 --- a/crates/swc_common/Cargo.toml +++ b/crates/swc_common/Cargo.toml @@ -26,6 +26,8 @@ plugin-mode = ["plugin-base"] plugin-rt = ["plugin-base"] rkyv-impl = ["rkyv", "bytecheck"] tty-emitter = ["atty", "termcolor"] +plugin-transform-schema-v1 = [] +plugin-transform-schema-vtest = [] [dependencies] ahash = "0.7.4" diff --git a/crates/swc_common/src/plugin.rs b/crates/swc_common/src/plugin.rs index 26d71fff3494..ff8720c98e3d 100644 --- a/crates/swc_common/src/plugin.rs +++ b/crates/swc_common/src/plugin.rs @@ -27,8 +27,13 @@ use crate::{syntax_pos::Mark, SyntaxContext}; * * - When removing, or changing existing properties in the AST struct: TBD */ +#[cfg(feature = "plugin-transform-schema-v1")] pub const PLUGIN_TRANSFORM_AST_SCHEMA_VERSION: u32 = 1; +// Reserved for the testing purpose. +#[cfg(feature = "plugin-transform-schema-vtest")] +pub const PLUGIN_TRANSFORM_AST_SCHEMA_VERSION: u32 = u32::MAX - 1; + #[derive(Debug, Clone, PartialEq, Eq)] #[non_exhaustive] #[cfg_attr( diff --git a/crates/swc_plugin/Cargo.toml b/crates/swc_plugin/Cargo.toml index e6fb561e38de..1e00454ffe0f 100644 --- a/crates/swc_plugin/Cargo.toml +++ b/crates/swc_plugin/Cargo.toml @@ -22,6 +22,7 @@ quote = ["swc_ecma_quote"] swc_atoms = { version = "0.2.0", path = "../swc_atoms" } swc_common = { version = "0.23.0", path = "../swc_common", features = [ "plugin-mode", + "plugin-transform-schema-v1" ] } swc_ecma_quote = { version = "0.25.0", path = "../swc_ecma_quote", optional = true } swc_ecmascript = { version = "0.179.0", path = "../swc_ecmascript", features = ["utils", "visit", "rkyv-impl"] } diff --git a/crates/swc_plugin_runner/Cargo.toml b/crates/swc_plugin_runner/Cargo.toml index c815556a5370..f8551e29057f 100644 --- a/crates/swc_plugin_runner/Cargo.toml +++ b/crates/swc_plugin_runner/Cargo.toml @@ -19,6 +19,9 @@ filesystem_cache = ["wasmer-cache"] # Supports a cache allow to store wasm module in-memory. This avoids recompilation # to the same module in a single procress lifecycle. memory_cache = [] +plugin-transform-schema-v1 = [ + "swc_common/plugin-transform-schema-v1" +] [dependencies] anyhow = "1.0.42" @@ -28,7 +31,7 @@ serde = { version = "1.0.126", features = ["derive"] } serde_json = "1.0.64" swc_common = { version = "0.23.0", path = "../swc_common", features = [ "plugin-rt", - "concurrent", + "concurrent" ] } swc_ecma_ast = { version = "0.84.0", path = "../swc_ecma_ast", features = [ "rkyv-impl",