diff --git a/.github/workflows/cloud.yml b/.github/workflows/cloud.yml index c31898aef5..f89759d78a 100644 --- a/.github/workflows/cloud.yml +++ b/.github/workflows/cloud.yml @@ -71,7 +71,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt diff --git a/.github/workflows/drivers-tests.yml b/.github/workflows/drivers-tests.yml index 6cacade498..1a329a94a9 100644 --- a/.github/workflows/drivers-tests.yml +++ b/.github/workflows/drivers-tests.yml @@ -104,7 +104,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index adab7c68d2..a7fd8342b7 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -55,7 +55,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 7c401c171d..6dc6cdd39a 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -32,7 +32,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3c3d0e70a3..478970c906 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -22,7 +22,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -95,7 +95,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -185,7 +185,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -260,7 +260,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -483,7 +483,7 @@ jobs: build-args: WITH_AVX2=1 postfix: "" tag: "latest" - - os: self-hosted + - os: ubuntu-24.04-arm target: aarch64-unknown-linux-gnu platforms: linux/arm64 build-args: WITH_AVX2=0 diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index ecb81eecc0..bfe45fa6b1 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -54,8 +54,11 @@ jobs: # Current docker version + next LTS node-version: [20.x, 22.x] python-version: [3.11] + transpile-worker-threads: [false, true] fail-fast: false + env: + CUBEJS_TRANSPILATION_WORKER_THREADS: ${{ matrix.transpile-worker-threads }} steps: - id: get-tag-out run: echo "$OUT" @@ -69,7 +72,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -149,7 +152,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -212,7 +215,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -334,7 +337,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -411,7 +414,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -638,7 +641,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt diff --git a/.github/workflows/rust-cubesql.yml b/.github/workflows/rust-cubesql.yml index 74741e466a..c0308adfe3 100644 --- a/.github/workflows/rust-cubesql.yml +++ b/.github/workflows/rust-cubesql.yml @@ -32,7 +32,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt, clippy @@ -138,7 +138,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -244,7 +244,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt @@ -327,7 +327,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2024-07-15 + toolchain: 1.84.1 # override: true # this is by default on rustflags: "" components: rustfmt diff --git a/.github/workflows/rust-cubestore-master.yml b/.github/workflows/rust-cubestore-master.yml index eb72e456f3..2421d9496a 100644 --- a/.github/workflows/rust-cubestore-master.yml +++ b/.github/workflows/rust-cubestore-master.yml @@ -84,12 +84,12 @@ jobs: - x86_64-unknown-linux-gnu - aarch64-unknown-linux-gnu include: - - os: ubuntu-20.04 + - os: ubuntu-24.04 target: x86_64-unknown-linux-gnu platforms: linux/amd64 build-args: WITH_AVX2=1 postfix: "" - - os: self-hosted + - os: ubuntu-24.04-arm target: aarch64-unknown-linux-gnu platforms: linux/arm64 build-args: WITH_AVX2=0 diff --git a/.github/workflows/rust-cubestore.yml b/.github/workflows/rust-cubestore.yml index 05f443a705..44f929e8a4 100644 --- a/.github/workflows/rust-cubestore.yml +++ b/.github/workflows/rust-cubestore.yml @@ -81,11 +81,11 @@ jobs: fail-fast: false matrix: include: - - os: ubuntu-20.04 + - os: ubuntu-24.04 target: x86_64-unknown-linux-gnu platforms: linux/amd64 build-args: WITH_AVX2=1 - - os: self-hosted + - os: ubuntu-24.04-arm target: aarch64-unknown-linux-gnu platforms: linux/arm64 build-args: WITH_AVX2=0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 869a1968d4..0f360ec0f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,153 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.14](https://github.com/cube-js/cube/compare/v1.2.13...v1.2.14) (2025-02-28) + +### Features + +- **server-core:** add fastReloadEnabled option to CompilerApi ([#9289](https://github.com/cube-js/cube/issues/9289)) ([122a3a3](https://github.com/cube-js/cube/commit/122a3a30e526f122d2bf2c0661f2b32fa070e824)) + +## [1.2.13](https://github.com/cube-js/cube/compare/v1.2.12...v1.2.13) (2025-02-26) + +### Bug Fixes + +- **cubesql:** Split `__user` WHERE predicate into separate filter node ([#8812](https://github.com/cube-js/cube/issues/8812)) ([83baf7b](https://github.com/cube-js/cube/commit/83baf7bf5f83108fd6c3dd134a8739968e781f92)) + +## [1.2.12](https://github.com/cube-js/cube/compare/v1.2.11...v1.2.12) (2025-02-26) + +### Bug Fixes + +- **api-gateway:** data scope check ([#9264](https://github.com/cube-js/cube/issues/9264)) ([75095e1](https://github.com/cube-js/cube/commit/75095e1f86839a3f459d1050226b319d3ed2410f)) +- **cubesql:** Generate typed null literals ([#9238](https://github.com/cube-js/cube/issues/9238)) ([1dfa10d](https://github.com/cube-js/cube/commit/1dfa10d7128841f24c5d94cd1c5bdd2c742ff9de)) +- **cubesql:** Match CubeScan timestamp literal types to member types ([#9275](https://github.com/cube-js/cube/issues/9275)) ([4a4e82b](https://github.com/cube-js/cube/commit/4a4e82ba602fc024a262a22ac65e3fcb7a4bba5c)) +- **native:** Jinja - pass kwargs correctly into Python ([#9276](https://github.com/cube-js/cube/issues/9276)) ([9d1c3f8](https://github.com/cube-js/cube/commit/9d1c3f8cfef5fd9383ee5fa69e79328b5c739231)) +- **server-core:** Handle empty query in getSqlGenerator ([#9270](https://github.com/cube-js/cube/issues/9270)) ([350a438](https://github.com/cube-js/cube/commit/350a438d33d19ce77f33feb4f30910e3087d36e6)) + +## [1.2.11](https://github.com/cube-js/cube/compare/v1.2.10...v1.2.11) (2025-02-25) + +### Bug Fixes + +- **cubesql:** Break cost symmetry for (non)-push-to-Cube WrappedSelect ([#9155](https://github.com/cube-js/cube/issues/9155)) ([2c0e443](https://github.com/cube-js/cube/commit/2c0e443dc18379490e35a3d83b3888f66e12ade0)) +- **cubesql:** Generate proper projection wrapper for duplicated members in CubeScanNode ([#9233](https://github.com/cube-js/cube/issues/9233)) ([aba6430](https://github.com/cube-js/cube/commit/aba643082acc440cf5b3fe9828c2c38ac1a833c9)) + +## [1.2.10](https://github.com/cube-js/cube/compare/v1.2.9...v1.2.10) (2025-02-24) + +### Bug Fixes + +- **redshift-driver:** Fix empty tableColumnTypes for external (Spectrum) tables ([#9251](https://github.com/cube-js/cube/issues/9251)) ([fa318a1](https://github.com/cube-js/cube/commit/fa318a144ed6ef484e2ac101cd71ab6ab6ca7abf)) +- **schema-compiler:** Fix sql generation for rolling_window queries with multiple time dimensions ([#9124](https://github.com/cube-js/cube/issues/9124)) ([52a664e](https://github.com/cube-js/cube/commit/52a664e4d0643d78464f75cc48c4a1f686455ebe)) + +### Features + +- **cubejs-server-core:** support proxy in http agent transport ([#9263](https://github.com/cube-js/cube/issues/9263)) ([89c74ce](https://github.com/cube-js/cube/commit/89c74cec2be96f63f51990b5eec59096749e967b)) + +## [1.2.9](https://github.com/cube-js/cube/compare/v1.2.8...v1.2.9) (2025-02-21) + +### Bug Fixes + +- **schema-compiler:** Fix allowNonStrictDateRangeMatch pre-agg match for dateRange queries without granularities ([#9258](https://github.com/cube-js/cube/issues/9258)) ([00fe682](https://github.com/cube-js/cube/commit/00fe6825418e7ad6681b0856fee11175dfcc649e)) + +## [1.2.8](https://github.com/cube-js/cube/compare/v1.2.7...v1.2.8) (2025-02-21) + +### Bug Fixes + +- **backend-native:** Handle closed channel on Rust side ([#9242](https://github.com/cube-js/cube/issues/9242)) ([1203291](https://github.com/cube-js/cube/commit/120329146046f2bffc0b8ff252dcee1cc285d1ef)) + +### Features + +- **cubeclient:** Add `short_title` to dimensions and measures ([#9256](https://github.com/cube-js/cube/issues/9256)) ([584b3dc](https://github.com/cube-js/cube/commit/584b3dcefedb7c01b849e7f18a59445bd3542b7e)) + +## [1.2.7](https://github.com/cube-js/cube/compare/v1.2.6...v1.2.7) (2025-02-20) + +### Bug Fixes + +- **schema-compiler:** hierarchies to respect prefix value ([#9239](https://github.com/cube-js/cube/issues/9239)) ([19d1b33](https://github.com/cube-js/cube/commit/19d1b33b7df6a98198aadfa25e290fd33b89ad33)) + +### Reverts + +- **schema-compiler:** Revert breaking changes in models transpilation ([#9240](https://github.com/cube-js/cube/issues/9240)) ([28bca42](https://github.com/cube-js/cube/commit/28bca42a1bb92fff5895ddfe4946601c0ebc2746)) + +## [1.2.6](https://github.com/cube-js/cube/compare/v1.2.5...v1.2.6) (2025-02-18) + +### Bug Fixes + +- **api-gateway:** Fix CompareDateRange queries native transformations ([#9232](https://github.com/cube-js/cube/issues/9232)) ([9c6153d](https://github.com/cube-js/cube/commit/9c6153d1e958e42162acb5af5964e9792a7f0433)) +- **schema-compiler:** Correct models transpilation in native in multitenant environments ([#9234](https://github.com/cube-js/cube/issues/9234)) ([84f90c0](https://github.com/cube-js/cube/commit/84f90c07ee3827e6f3652dd6c9fab0993ecc8150)) + +### Features + +- **schema-compiler:** Boost models transpilation 10-13x times (using SWC instead of Babel) ([#9225](https://github.com/cube-js/cube/issues/9225)) ([2dd9a4a](https://github.com/cube-js/cube/commit/2dd9a4a5ba0f178e304befc476609fc30ada8975)) + +### Performance Improvements + +- **cubesql:** Avoid allocations in MetaContext methods ([#9228](https://github.com/cube-js/cube/issues/9228)) ([ba753d0](https://github.com/cube-js/cube/commit/ba753d0d43927b50d5cf8faf5f09de3e53bec3db)) + +## [1.2.5](https://github.com/cube-js/cube/compare/v1.2.4...v1.2.5) (2025-02-13) + +### Bug Fixes + +- **cubesql:** Fix SELECT DISTINCT on pushdown ([#9144](https://github.com/cube-js/cube/issues/9144)) ([6483f66](https://github.com/cube-js/cube/commit/6483f66c826ad9a638af8770850219d923b3e7d9)) + +### Features + +- Upgrade rust to 1.84.1 (stable) ([#9222](https://github.com/cube-js/cube/issues/9222)) ([cfc95b5](https://github.com/cube-js/cube/commit/cfc95b5e5601166d2a0aa388a211d4be66630cd8)) + +## [1.2.4](https://github.com/cube-js/cube/compare/v1.2.3...v1.2.4) (2025-02-11) + +### Bug Fixes + +- **cubejs-playground:** update query builder ([#9201](https://github.com/cube-js/cube/issues/9201)) ([f8e523b](https://github.com/cube-js/cube/commit/f8e523bbf815b2fb3fb8eb036d04cc3bf4db206d)) + +### Features + +- **cubesql:** Add projection flattening rule ([#9165](https://github.com/cube-js/cube/issues/9165)) ([8cfb253](https://github.com/cube-js/cube/commit/8cfb2530264b856bf128d391829b18566d8dc057)) +- **cubesql:** Allow providing API type when getting load request meta ([#9202](https://github.com/cube-js/cube/issues/9202)) ([ae5d977](https://github.com/cube-js/cube/commit/ae5d9770a1c00326c446e7ec40bd3f13ca0ce8f4)) +- **server-core:** Introduce CUBEJS_REFRESH_WORKER_CONCURRENCY env and update default concurrency settings for drivers ([#9168](https://github.com/cube-js/cube/issues/9168)) ([7ef6282](https://github.com/cube-js/cube/commit/7ef628273905d47996b108862a52dde89b9525e3)) + +## [1.2.3](https://github.com/cube-js/cube/compare/v1.2.2...v1.2.3) (2025-02-06) + +### Bug Fixes + +- **cubejs-backend-native:** support context_to_cube_store_router_id ([#9200](https://github.com/cube-js/cube/issues/9200)) ([f93edd3](https://github.com/cube-js/cube/commit/f93edd3713c58ad62ca8daee034639b0f10a0282)) + +## [1.2.2](https://github.com/cube-js/cube/compare/v1.2.1...v1.2.2) (2025-02-06) + +### Bug Fixes + +- **dremio-driver:** Correct dremio date interval functions ([#9193](https://github.com/cube-js/cube/issues/9193)) ([7cf2287](https://github.com/cube-js/cube/commit/7cf2287e165beff948ddd88eb47bd0048812aa9b)) +- **schema-compiler:** Fix queries with time dimensions without granularities don't hit pre-aggregations with allow_non_strict_date_range_match=true ([#9102](https://github.com/cube-js/cube/issues/9102)) ([eff0736](https://github.com/cube-js/cube/commit/eff073629261c687416a92b8876e46a522bdd1d8)) +- **testing:** avoid cypress crashes ([#9196](https://github.com/cube-js/cube/issues/9196)) ([364d181](https://github.com/cube-js/cube/commit/364d1812d5b3aff85bfbfbb82f6d8d2217d8a4ab)) + +### Features + +- **cubejs-server-core:** add contextToCubeStoreRouterId config option ([#9197](https://github.com/cube-js/cube/issues/9197)) ([6ee0e41](https://github.com/cube-js/cube/commit/6ee0e416761799acd064ad88241519ad2e1992f4)) + +## [1.2.1](https://github.com/cube-js/cube/compare/v1.2.0...v1.2.1) (2025-02-06) + +### Features + +- **schema-compiler:** Move transpiling to worker threads (under the flag) ([#9188](https://github.com/cube-js/cube/issues/9188)) ([7451452](https://github.com/cube-js/cube/commit/745145283b42c891e0e063c4cad1e2102c71616a)) +- **tesseract:** Subqueries support ([#9108](https://github.com/cube-js/cube/issues/9108)) ([0dbf3bb](https://github.com/cube-js/cube/commit/0dbf3bb866b731f97b5588b0e620c3be7cbf9e5b)) + +# [1.2.0](https://github.com/cube-js/cube/compare/v1.1.18...v1.2.0) (2025-02-05) + +### Bug Fixes + +- **@cubejs-client/ngx:** Update APF configuration and build settings for Angular 12+ compatibility ([#9152](https://github.com/cube-js/cube/issues/9152)) Thanks to @HaidarZ! ([57bcbc4](https://github.com/cube-js/cube/commit/57bcbc482002aaa025ba5eab8960ecc5784faa55)) +- **cubejs-playground:** update query builder ([#9175](https://github.com/cube-js/cube/issues/9175)) ([4e9ed0e](https://github.com/cube-js/cube/commit/4e9ed0eae46c4abb1b84e6423bbc94ad93da37c3)) +- **cubejs-playground:** update query builder ([#9184](https://github.com/cube-js/cube/issues/9184)) ([247ac0c](https://github.com/cube-js/cube/commit/247ac0c4028aef5295e88cd501323b94c5a4eaab)) +- **cubesql:** Avoid panics during filter rewrites ([#9166](https://github.com/cube-js/cube/issues/9166)) ([4c8de88](https://github.com/cube-js/cube/commit/4c8de882b3cc57e2b0c29c33ca4ee91377176e85)) +- **databricks-jdbc-driver:** Fix extract epoch from timestamp SQL Generation ([#9160](https://github.com/cube-js/cube/issues/9160)) ([9a73857](https://github.com/cube-js/cube/commit/9a73857b4abc5691b44b8a395176a565cdbf1b2a)) +- **schema-compiler:** make sure view members are resolvable in DAP ([#9059](https://github.com/cube-js/cube/issues/9059)) ([e7b992e](https://github.com/cube-js/cube/commit/e7b992effb6ef90883d059280270c92d903607d4)) + +### Features + +- **cubeclient:** Add hierarchies to Cube meta ([#9180](https://github.com/cube-js/cube/issues/9180)) ([56dbf9e](https://github.com/cube-js/cube/commit/56dbf9edc8c257cd81f00ff119b12543652b76d0)) +- **cubesql:** Add filter flattening rule ([#9148](https://github.com/cube-js/cube/issues/9148)) ([92a4b8e](https://github.com/cube-js/cube/commit/92a4b8e0e65c05f2ca0a683387d3f4434c358fc6)) +- **cubesql:** Add separate ungrouped_scan flag to wrapper replacer context ([#9120](https://github.com/cube-js/cube/issues/9120)) ([50bdbe7](https://github.com/cube-js/cube/commit/50bdbe7f52f653680e32d26c96c41f10e459c341)) +- **snowflake-driver:** set QUOTED_IDENTIFIERS_IGNORE_CASE=FALSE by default ([#9172](https://github.com/cube-js/cube/issues/9172)) ([164b783](https://github.com/cube-js/cube/commit/164b783843efa93ac8ca422634e5b6daccd91883)) +- Support complex join conditions for grouped joins ([#9157](https://github.com/cube-js/cube/issues/9157)) ([28c1e3b](https://github.com/cube-js/cube/commit/28c1e3bba7a100f3152bfdefd86197e818fac941)) + ## [1.1.18](https://github.com/cube-js/cube/compare/v1.1.17...v1.1.18) (2025-01-27) ### Bug Fixes diff --git a/docs/components/mdx/YouTubeVideo/YouTubeVideo.tsx b/docs/components/mdx/YouTubeVideo/YouTubeVideo.tsx index 3b93d7c823..8af987caf2 100644 --- a/docs/components/mdx/YouTubeVideo/YouTubeVideo.tsx +++ b/docs/components/mdx/YouTubeVideo/YouTubeVideo.tsx @@ -6,13 +6,22 @@ const cn = classnames.bind(styles); export type YouTubeVideoProps = { url: string; + aspectRatio?: number; }; -export const YouTubeVideo = ({ url }: YouTubeVideoProps) => { +function formatAspectRatioAsPercentage(aspectRatio: number) { + return `${((1 / aspectRatio) * 100).toFixed(2)}%`; +} + +export const YouTubeVideo = ({ url, aspectRatio = 16/9 }: YouTubeVideoProps) => { return (