Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate notebook aggregations to MLv2 — Metrics (2) #31528

Merged

Conversation

kulyk
Copy link
Member

@kulyk kulyk commented Jun 12, 2023

Part of #31001

The second step in the notebook editor's AggregateStep migration. Adds support for metrics (distinct entities that can be added in "Admin > Data Model").

We're about to rework Metrics and make them model-based. It didn't make a lot of sense to port legacy metrics to MLv2, so we're still using MLv1 here. I'm open for feedback on how to approach this (look at legacyQuery and onChangeLegacy props in AggregationPicker)

Warning
This PR targets a feature branch and doesn't migrate AggregateStep features 1:1
This branch is expected to have failing tests because parts of functionality are simply missing
You can monitor the migration health with the last branch in the chain — #31530

To Verify

  1. Sign in as Metabase admin
  2. Open /admin/datamodel/metrics and add a few metrics
  3. For different kinds of questions (structured/native, based on raw data/models/questions, flat/multi-stage):
    1. Open /question/:id/notebook
    2. Click "Pick the metric you want to see"
    3. Ensure you can see, apply, change, and remove metrics you've created at step 2
    4. Overall ensure the behavior matches master

Demo

CleanShot.2023-06-13.at.16.05.00.mp4

@metabase-bot metabase-bot bot added the .Team/QueryProcessor :hammer_and_wrench: label Jun 12, 2023
@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-metrics branch from a26c5ae to 3146d22 Compare June 13, 2023 10:11
@kulyk kulyk requested review from ranquild and a team June 13, 2023 16:02
@kulyk kulyk marked this pull request as ready for review June 13, 2023 16:02
@kulyk kulyk added the .metabase-lib Label for tracking all issues related to the shared CLJC metabase-lib label Jun 13, 2023
@deploysentinel
Copy link

deploysentinel bot commented Jun 13, 2023

Current Cypress Test Results Summary

✅ 1699 Passing - ❌ 13 Failing - ⚠️ 9 Flaky

Run may still be in progress, this comment will be updated as current testing workflow or job completes...

(Last updated on 06/28/2023 01:05:59pm UTC)

Run Details

Running Workflow E2E Tests on Github Actions

Commit: 600a55344f5be83c1efc962ad3122fa9274c5c84

Started: 06/28/2023 12:28:04pm UTC

❌ Failures

📄   e2e/test/scenarios/question/summarization.cy.spec.js • 3 Failures

Top 1 Common Error Messages

Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.

3 Test Cases Affected

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
scenarios > question > summarize sidebar should allow using `Custom Expression` in orders metrics (#12899)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' w...
Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.
1.14% (5) 5 / 440 runs
failed over last 7 days
0% (0) 0 / 440 runs
flaked over last 7 days
scenarios > question > summarize sidebar should keep manually entered parenthesis intact if they affect the result (#13306)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' w...
Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.
1.14% (5) 5 / 440 runs
failed over last 7 days
0% (0) 0 / 440 runs
flaked over last 7 days
scenarios > question > summarize sidebar distinct inside custom expression should suggest non-numeric types (#13469)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' w...
Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.
1.36% (6) 6 / 440 runs
failed over last 7 days
0% (0) 0 / 440 runs
flaked over last 7 days

📄   e2e/test/scenarios/question/notebook.cy.spec.js • 3 Failures

Top 1 Common Error Messages

Timed out retrying after 4000ms: Unable to find an element with the text: Custom Expression. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

2 Test Cases Affected

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
scenarios > question > notebook arithmetic (#13175) should work on custom aggregation with CountIf
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Unable to find an element with the text: Custom...
Timed out retrying after 4000ms: Unable to find an element with the text: Custom Expression. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, <script />, <style />
<html
  lang="en"
  translate="no"
>
  <head>
     
    <meta
      charset="utf-8"
    />
    <meta
      content="IE=edge"
      http-equiv="X-UA-Compatible"
    />
    <meta
      content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
      name="viewport"
    />
    <meta
      content="noindex"
      name="robots"
    />
    <meta
      content="yes"
      name="apple-mobile-web-app-capable"
    />
    <meta
      content="black-translucent"
      name="apple-mobile-web-app-status-bar-style"
    />
    <link
      href="app/assets/img/apple-touch-icon.png"
      rel="apple-touch-icon"
      sizes="180x180"
    />
    <link
      href="app/assets/img/favicon.ico"
      rel="icon"
    />
    <link
      crossorigin="use-credentials"
      href="app/assets/img/site.webmanifest"
      rel="manifest"
    />
    <meta
      content="#2d89ef"
      name="msapplication-TileColor"
    />
    <meta
      content="app/assets/img/browserconfig.xml"
      name="msapplication-config"
    />
    <meta
      content="#ffffff"
      name="theme-color"
    />
    <meta
      content="default"
      name="apple-mobile-web-app-status-bar-style"
    />
    <meta
      content="/"
      name="base-href"
    />
    <meta
      content="/question/notebook"
      name="uri"
    />
    <title>
      Question · Metabase
    </title>
    <base
      href="/"
    />
    <link
      href="app/dist/styles.css?630ae7972acfaead5c9c"
      rel="stylesheet"
    />
    <link
      href="app/dist/app-main.css?ab57fd779b118afb2918"
      rel="stylesheet"
    />
  </head>
  <body>
    <div
      id="root"
    >
      <div
        class="spread css-1fttcpj enx0u2k2"
      >
        <div
          class="css-h8rnyx eltsee94"
          role="banner"
        >
          <div
            class="css-yp7p eltsee93"
          >
            Connect to your database to get the most from Metabase.
          </div>
          <div
            class="css-1yrq68l eltsee92"
          >
            <a
              class="eltsee91 css-3dj3vm e1esz5s90"
              href="https://metabase.com/help/connect"
              rel="noopener noreferrer"
              target="_blank"
            >
              Get help connecting
            </a>
            <a
              class="css-93qn1h emeibx70"
              href="/admin/databases/create"
            >
              <button
                class="Button eltsee90 Button--small css-dsjffy emiw9oj2"
              >
                <div
                  class="css-zxs4gr emiw9oj1"
                >
                  <div
                    class=" css-1w35l9a emiw9oj0"
                  >
                    Connect your database
                  </div>
                </div>
              </button>
            </a>
          </div>
        </div>
        <header
          aria-label="Navigation bar"
          class="css-15xkiw5 es0756t0"
          data-testid="app-bar"
        >
          <div
            class="css-1pt930v e4w71dr4"
          >
            <div
              class="css-cxb03 e4w71dr3"
            >
              <div
                class="css-bjn8wh ehgm33i2"
              >
                <a
                  class="ehgm33i1 css-m53806 emeibx70"
                  data-metabase-event="Navbar;Logo"
                  href="/"
                >
                  <span
                    class="Icon text-centered text-brand"
                    data-testid="main-logo"
                  >
                    <svg
                      fill="currentcolor"
                      height="32"
                      viewBox="0 0 66 85"
                      xmlns="http://www.w3.org/2000/svg"
                      xmlns:xlink="http://www.w3.org/1999/xlink"
                    >
                      
  
                      <path
                        d="M46.8253288,70.4935014 C49.5764899,70.4935014 51.8067467,68.1774705 51.8067467,65.3205017 C51.8067467,62.4635329 49.5764899,60.147502 46.8253288,60.147502 C44.0741676,60.147502 41.8439108,62.4635329 41.8439108,65.3205017 C41.8439108,68.1774705 44.0741676,70.4935014 46.8253288,70.4935014 Z M32.8773585,84.9779005 C35.6285197,84.9779005 37.8587764,82.6618697 37.8587764,79.8049008 C37.8587764,76.947932 35.6285197,74.6319011 32.8773585,74.6319011 C30.1261973,74.6319011 27.8959405,76.947932 27.8959405,79.8049008 C27.8959405,82.6618697 30.1261973,84.9779005 32.8773585,84.9779005 Z M32.8773585,70.4935014 C35.6285197,70.4935014 37.8587764,68.1774705 37.8587764,65.3205017 C37.8587764,62.4635329 35.6285197,60.147502 32.8773585,60.147502 C30.1261973,60.147502 27.8959405,62.4635329 27.8959405,65.3205017 C27.8959405,68.1774705 30.1261973,70.4935014 32.8773585,70.4935014 Z M18.9293882,70.4935014 C21.6805494,70.4935014 23.9108062,68.1774705 23.9108062,65.3205017 C23.9108062,62.4635329 21.6805494,60.147502 18.9293882,60.147502 C16.1782271,60.147502 13.9479703,62.4635329 13.9479703,65.3205017 C13.9479703,68.1774705 16.1782271,70.4935014 18.9293882,70.4935014 Z M46.8253288,56.0091023 C49.5764899,56.0091023 51.8067467,53.6930714 51.8067467,50.8361026 C51.8067467,47.9791337 49.5764899,45.6631029 46.8253288,45.6631029 C44.0741676,45.6631029 41.8439108,47.9791337 41.8439108,50.8361026 C41.8439108,53.6930714 44.0741676,56.0091023 46.8253288,56.0091023 Z M18.9293882,56.0091023 C21.6805494,56.0091023 23.9108062,53.6930714 23.9108062,50.8361026 C23.9108062,47.9791337 21.6805494,45.6631029 18.9293882,45.6631029 C16.1782271,45.6631029 13.9479703,47.9791337 13.9479703,50.8361026 C13.9479703,53.6930714 16.1782271,56.0091023 18.9293882,56.0091023 Z M46.8253288,26.8995984 C49.5764899,26.8995984 51.8067467,24.5835675 51.8067467,21.7265987 C51.8067467,18.8696299 49.5764899,16.553599 46.8253288,16.553599 C44.0741676,16.553599 41.8439108,18.8696299 41.8439108,21.7265987 C41.8439108,24.5835675 44.0741676,26.8995984 46.8253288,26.8995984 Z M32.8773585,41.5247031 C35.6285197,41.5247031 37.8587764,39.2086723 37.8587764,36.3517034 C37.8587764,33.4947346 35.6285197,31.1787037 32.8773585,31.1787037 C30.1261973,31.1787037 27.8959405,33.4947346 27.8959405,36.3517034 C27.8959405,39.2086723 30.1261973,41.5247031 32.8773585,41.5247031 Z M32.8773585,10.3459994 C35.6285197,10.3459994 37.8587764,8.02996853 37.8587764,5.17299969 C37.8587764,2.31603085 35.6285197,0 32.8773585,0 C30.1261973,0 27.8959405,2.31603085 27.8959405,5.17299969 C27.8959405,8.02996853 30.1261973,10.3459994 32.8773585,10.3459994 Z M32.8773585,26.8995984 C35.6285197,26.8995984 37.8587764,24.5835675 37.8587764,21.7265987 C37.8587764,18.8696299 35.6285197,16.553599 32.8773585,16.553599 C30.1261973,16.553599 27.8959405,18.8696299 27.8959405,21.7265987 C27.8959405,24.5835675 30.1261973,26.8995984 32.8773585,26.8995984 Z M18.9293882,26.8995984 C21.6805494,26.8995984 23.9108062,24.5835675 23.9108062,21.7265987 C23.9108062,18.8696299 21.6805494,16.553599 18.9293882,16.553599 C16.1782271,16.553599 13.9479703,18.8696299 13.9479703,21.7265987 C13.9479703,24.5835675 16.1782271,...
1.13% (5) 5 / 442 runs
failed over last 7 days
0% (0) 0 / 442 runs
flaked over last 7 days
scenarios > question > notebook arithmetic (#13175) should work on custom aggregation with SumIf
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Unable to find an element with the text: Custom...
Timed out retrying after 4000ms: Unable to find an element with the text: Custom Expression. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, <script />, <style />
<html
  lang="en"
  translate="no"
>
  <head>
     
    <meta
      charset="utf-8"
    />
    <meta
      content="IE=edge"
      http-equiv="X-UA-Compatible"
    />
    <meta
      content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
      name="viewport"
    />
    <meta
      content="noindex"
      name="robots"
    />
    <meta
      content="yes"
      name="apple-mobile-web-app-capable"
    />
    <meta
      content="black-translucent"
      name="apple-mobile-web-app-status-bar-style"
    />
    <link
      href="app/assets/img/apple-touch-icon.png"
      rel="apple-touch-icon"
      sizes="180x180"
    />
    <link
      href="app/assets/img/favicon.ico"
      rel="icon"
    />
    <link
      crossorigin="use-credentials"
      href="app/assets/img/site.webmanifest"
      rel="manifest"
    />
    <meta
      content="#2d89ef"
      name="msapplication-TileColor"
    />
    <meta
      content="app/assets/img/browserconfig.xml"
      name="msapplication-config"
    />
    <meta
      content="#ffffff"
      name="theme-color"
    />
    <meta
      content="default"
      name="apple-mobile-web-app-status-bar-style"
    />
    <meta
      content="/"
      name="base-href"
    />
    <meta
      content="/question/notebook"
      name="uri"
    />
    <title>
      Question · Metabase
    </title>
    <base
      href="/"
    />
    <link
      href="app/dist/styles.css?630ae7972acfaead5c9c"
      rel="stylesheet"
    />
    <link
      href="app/dist/app-main.css?ab57fd779b118afb2918"
      rel="stylesheet"
    />
  </head>
  <body>
    <div
      id="root"
    >
      <div
        class="spread css-1fttcpj enx0u2k2"
      >
        <div
          class="css-h8rnyx eltsee94"
          role="banner"
        >
          <div
            class="css-yp7p eltsee93"
          >
            Connect to your database to get the most from Metabase.
          </div>
          <div
            class="css-1yrq68l eltsee92"
          >
            <a
              class="eltsee91 css-3dj3vm e1esz5s90"
              href="https://metabase.com/help/connect"
              rel="noopener noreferrer"
              target="_blank"
            >
              Get help connecting
            </a>
            <a
              class="css-93qn1h emeibx70"
              href="/admin/databases/create"
            >
              <button
                class="Button eltsee90 Button--small css-dsjffy emiw9oj2"
              >
                <div
                  class="css-zxs4gr emiw9oj1"
                >
                  <div
                    class=" css-1w35l9a emiw9oj0"
                  >
                    Connect your database
                  </div>
                </div>
              </button>
            </a>
          </div>
        </div>
        <header
          aria-label="Navigation bar"
          class="css-15xkiw5 es0756t0"
          data-testid="app-bar"
        >
          <div
            class="css-1pt930v e4w71dr4"
          >
            <div
              class="css-cxb03 e4w71dr3"
            >
              <div
                class="css-bjn8wh ehgm33i2"
              >
                <a
                  class="ehgm33i1 css-m53806 emeibx70"
                  data-metabase-event="Navbar;Logo"
                  href="/"
                >
                  <span
                    class="Icon text-centered text-brand"
                    data-testid="main-logo"
                  >
                    <svg
                      fill="currentcolor"
                      height="32"
                      viewBox="0 0 66 85"
                      xmlns="http://www.w3.org/2000/svg"
                      xmlns:xlink="http://www.w3.org/1999/xlink"
                    >
                      
  
                      <path
                        d="M46.8253288,70.4935014 C49.5764899,70.4935014 51.8067467,68.1774705 51.8067467,65.3205017 C51.8067467,62.4635329 49.5764899,60.147502 46.8253288,60.147502 C44.0741676,60.147502 41.8439108,62.4635329 41.8439108,65.3205017 C41.8439108,68.1774705 44.0741676,70.4935014 46.8253288,70.4935014 Z M32.8773585,84.9779005 C35.6285197,84.9779005 37.8587764,82.6618697 37.8587764,79.8049008 C37.8587764,76.947932 35.6285197,74.6319011 32.8773585,74.6319011 C30.1261973,74.6319011 27.8959405,76.947932 27.8959405,79.8049008 C27.8959405,82.6618697 30.1261973,84.9779005 32.8773585,84.9779005 Z M32.8773585,70.4935014 C35.6285197,70.4935014 37.8587764,68.1774705 37.8587764,65.3205017 C37.8587764,62.4635329 35.6285197,60.147502 32.8773585,60.147502 C30.1261973,60.147502 27.8959405,62.4635329 27.8959405,65.3205017 C27.8959405,68.1774705 30.1261973,70.4935014 32.8773585,70.4935014 Z M18.9293882,70.4935014 C21.6805494,70.4935014 23.9108062,68.1774705 23.9108062,65.3205017 C23.9108062,62.4635329 21.6805494,60.147502 18.9293882,60.147502 C16.1782271,60.147502 13.9479703,62.4635329 13.9479703,65.3205017 C13.9479703,68.1774705 16.1782271,70.4935014 18.9293882,70.4935014 Z M46.8253288,56.0091023 C49.5764899,56.0091023 51.8067467,53.6930714 51.8067467,50.8361026 C51.8067467,47.9791337 49.5764899,45.6631029 46.8253288,45.6631029 C44.0741676,45.6631029 41.8439108,47.9791337 41.8439108,50.8361026 C41.8439108,53.6930714 44.0741676,56.0091023 46.8253288,56.0091023 Z M18.9293882,56.0091023 C21.6805494,56.0091023 23.9108062,53.6930714 23.9108062,50.8361026 C23.9108062,47.9791337 21.6805494,45.6631029 18.9293882,45.6631029 C16.1782271,45.6631029 13.9479703,47.9791337 13.9479703,50.8361026 C13.9479703,53.6930714 16.1782271,56.0091023 18.9293882,56.0091023 Z M46.8253288,26.8995984 C49.5764899,26.8995984 51.8067467,24.5835675 51.8067467,21.7265987 C51.8067467,18.8696299 49.5764899,16.553599 46.8253288,16.553599 C44.0741676,16.553599 41.8439108,18.8696299 41.8439108,21.7265987 C41.8439108,24.5835675 44.0741676,26.8995984 46.8253288,26.8995984 Z M32.8773585,41.5247031 C35.6285197,41.5247031 37.8587764,39.2086723 37.8587764,36.3517034 C37.8587764,33.4947346 35.6285197,31.1787037 32.8773585,31.1787037 C30.1261973,31.1787037 27.8959405,33.4947346 27.8959405,36.3517034 C27.8959405,39.2086723 30.1261973,41.5247031 32.8773585,41.5247031 Z M32.8773585,10.3459994 C35.6285197,10.3459994 37.8587764,8.02996853 37.8587764,5.17299969 C37.8587764,2.31603085 35.6285197,0 32.8773585,0 C30.1261973,0 27.8959405,2.31603085 27.8959405,5.17299969 C27.8959405,8.02996853 30.1261973,10.3459994 32.8773585,10.3459994 Z M32.8773585,26.8995984 C35.6285197,26.8995984 37.8587764,24.5835675 37.8587764,21.7265987 C37.8587764,18.8696299 35.6285197,16.553599 32.8773585,16.553599 C30.1261973,16.553599 27.8959405,18.8696299 27.8959405,21.7265987 C27.8959405,24.5835675 30.1261973,26.8995984 32.8773585,26.8995984 Z M18.9293882,26.8995984 C21.6805494,26.8995984 23.9108062,24.5835675 23.9108062,21.7265987 C23.9108062,18.8696299 21.6805494,16.553599 18.9293882,16.553599 C16.1782271,16.553599 13.9479703,18.8696299 13.9479703,21.7265987 C13.9479703,24.5835675 16.1782271,...
1.13% (5) 5 / 442 runs
failed over last 7 days
0% (0) 0 / 442 runs
flaked over last 7 days
scenarios > question > notebook "median" aggregation function should support custom columns
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: expected '[ <div.tableinteractive-cellwrappe...
Timed out retrying after 4000ms: expected '[ <div.TableInteractive-cellWrapper.TableInteractive-headerCellData.TableInteractive-cellWrapper--firstColumn.padLeft.cursor-pointer.react-draggable.css-p8p93c.e7rj91b2>, 1 more... ]' to contain 'Median of Median of Mega price'
3.61% (16) 16 / 443 runs
failed over last 7 days
1.13% (5) 5 / 443 runs
flaked over last 7 days

📄   e2e/test/scenarios/question/reproductions/6239-sort-using-cust-exp.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
issue 6239 should be possible to sort by using custom expression (#6239)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Unable to find an element with the text: Custom...
Timed out retrying after 4000ms: Unable to find an element with the text: Custom Expression. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, <script />, <style />
<html
  lang="en"
  translate="no"
>
  <head>
     
    <meta
      charset="utf-8"
    />
    <meta
      content="IE=edge"
      http-equiv="X-UA-Compatible"
    />
    <meta
      content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
      name="viewport"
    />
    <meta
      content="noindex"
      name="robots"
    />
    <meta
      content="yes"
      name="apple-mobile-web-app-capable"
    />
    <meta
      content="black-translucent"
      name="apple-mobile-web-app-status-bar-style"
    />
    <link
      href="app/assets/img/apple-touch-icon.png"
      rel="apple-touch-icon"
      sizes="180x180"
    />
    <link
      href="app/assets/img/favicon.ico"
      rel="icon"
    />
    <link
      crossorigin="use-credentials"
      href="app/assets/img/site.webmanifest"
      rel="manifest"
    />
    <meta
      content="#2d89ef"
      name="msapplication-TileColor"
    />
    <meta
      content="app/assets/img/browserconfig.xml"
      name="msapplication-config"
    />
    <meta
      content="#ffffff"
      name="theme-color"
    />
    <meta
      content="default"
      name="apple-mobile-web-app-status-bar-style"
    />
    <meta
      content="/"
      name="base-href"
    />
    <meta
      content="/question/notebook"
      name="uri"
    />
    <title>
      Question · Metabase
    </title>
    <base
      href="/"
    />
    <link
      href="app/dist/styles.css?630ae7972acfaead5c9c"
      rel="stylesheet"
    />
    <link
      href="app/dist/app-main.css?ab57fd779b118afb2918"
      rel="stylesheet"
    />
  </head>
  <body>
    <div
      id="root"
    >
      <div
        class="spread css-1fttcpj enx0u2k2"
      >
        <div
          class="css-h8rnyx eltsee94"
          role="banner"
        >
          <div
            class="css-yp7p eltsee93"
          >
            Connect to your database to get the most from Metabase.
          </div>
          <div
            class="css-1yrq68l eltsee92"
          >
            <a
              class="eltsee91 css-3dj3vm e1esz5s90"
              href="https://metabase.com/help/connect"
              rel="noopener noreferrer"
              target="_blank"
            >
              Get help connecting
            </a>
            <a
              class="css-93qn1h emeibx70"
              href="/admin/databases/create"
            >
              <button
                class="Button eltsee90 Button--small css-dsjffy emiw9oj2"
              >
                <div
                  class="css-zxs4gr emiw9oj1"
                >
                  <div
                    class=" css-1w35l9a emiw9oj0"
                  >
                    Connect your database
                  </div>
                </div>
              </button>
            </a>
          </div>
        </div>
        <header
          aria-label="Navigation bar"
          class="css-15xkiw5 es0756t0"
          data-testid="app-bar"
        >
          <div
            class="css-1pt930v e4w71dr4"
          >
            <div
              class="css-cxb03 e4w71dr3"
            >
              <div
                class="css-bjn8wh ehgm33i2"
              >
                <a
                  class="ehgm33i1 css-m53806 emeibx70"
                  data-metabase-event="Navbar;Logo"
                  href="/"
                >
                  <span
                    class="Icon text-centered text-brand"
                    data-testid="main-logo"
                  >
                    <svg
                      fill="currentcolor"
                      height="32"
                      viewBox="0 0 66 85"
                      xmlns="http://www.w3.org/2000/svg"
                      xmlns:xlink="http://www.w3.org/1999/xlink"
                    >
                      
  
                      <path
                        d="M46.8253288,70.4935014 C49.5764899,70.4935014 51.8067467,68.1774705 51.8067467,65.3205017 C51.8067467,62.4635329 49.5764899,60.147502 46.8253288,60.147502 C44.0741676,60.147502 41.8439108,62.4635329 41.8439108,65.3205017 C41.8439108,68.1774705 44.0741676,70.4935014 46.8253288,70.4935014 Z M32.8773585,84.9779005 C35.6285197,84.9779005 37.8587764,82.6618697 37.8587764,79.8049008 C37.8587764,76.947932 35.6285197,74.6319011 32.8773585,74.6319011 C30.1261973,74.6319011 27.8959405,76.947932 27.8959405,79.8049008 C27.8959405,82.6618697 30.1261973,84.9779005 32.8773585,84.9779005 Z M32.8773585,70.4935014 C35.6285197,70.4935014 37.8587764,68.1774705 37.8587764,65.3205017 C37.8587764,62.4635329 35.6285197,60.147502 32.8773585,60.147502 C30.1261973,60.147502 27.8959405,62.4635329 27.8959405,65.3205017 C27.8959405,68.1774705 30.1261973,70.4935014 32.8773585,70.4935014 Z M18.9293882,70.4935014 C21.6805494,70.4935014 23.9108062,68.1774705 23.9108062,65.3205017 C23.9108062,62.4635329 21.6805494,60.147502 18.9293882,60.147502 C16.1782271,60.147502 13.9479703,62.4635329 13.9479703,65.3205017 C13.9479703,68.1774705 16.1782271,70.4935014 18.9293882,70.4935014 Z M46.8253288,56.0091023 C49.5764899,56.0091023 51.8067467,53.6930714 51.8067467,50.8361026 C51.8067467,47.9791337 49.5764899,45.6631029 46.8253288,45.6631029 C44.0741676,45.6631029 41.8439108,47.9791337 41.8439108,50.8361026 C41.8439108,53.6930714 44.0741676,56.0091023 46.8253288,56.0091023 Z M18.9293882,56.0091023 C21.6805494,56.0091023 23.9108062,53.6930714 23.9108062,50.8361026 C23.9108062,47.9791337 21.6805494,45.6631029 18.9293882,45.6631029 C16.1782271,45.6631029 13.9479703,47.9791337 13.9479703,50.8361026 C13.9479703,53.6930714 16.1782271,56.0091023 18.9293882,56.0091023 Z M46.8253288,26.8995984 C49.5764899,26.8995984 51.8067467,24.5835675 51.8067467,21.7265987 C51.8067467,18.8696299 49.5764899,16.553599 46.8253288,16.553599 C44.0741676,16.553599 41.8439108,18.8696299 41.8439108,21.7265987 C41.8439108,24.5835675 44.0741676,26.8995984 46.8253288,26.8995984 Z M32.8773585,41.5247031 C35.6285197,41.5247031 37.8587764,39.2086723 37.8587764,36.3517034 C37.8587764,33.4947346 35.6285197,31.1787037 32.8773585,31.1787037 C30.1261973,31.1787037 27.8959405,33.4947346 27.8959405,36.3517034 C27.8959405,39.2086723 30.1261973,41.5247031 32.8773585,41.5247031 Z M32.8773585,10.3459994 C35.6285197,10.3459994 37.8587764,8.02996853 37.8587764,5.17299969 C37.8587764,2.31603085 35.6285197,0 32.8773585,0 C30.1261973,0 27.8959405,2.31603085 27.8959405,5.17299969 C27.8959405,8.02996853 30.1261973,10.3459994 32.8773585,10.3459994 Z M32.8773585,26.8995984 C35.6285197,26.8995984 37.8587764,24.5835675 37.8587764,21.7265987 C37.8587764,18.8696299 35.6285197,16.553599 32.8773585,16.553599 C30.1261973,16.553599 27.8959405,18.8696299 27.8959405,21.7265987 C27.8959405,24.5835675 30.1261973,26.8995984 32.8773585,26.8995984 Z M18.9293882,26.8995984 C21.6805494,26.8995984 23.9108062,24.5835675 23.9108062,21.7265987 C23.9108062,18.8696299 21.6805494,16.553599 18.9293882,16.553599 C16.1782271,16.553599 13.9479703,18.8696299 13.9479703,21.7265987 C13.9479703,24.5835675 16.1782271,...

Because this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `issue 6239`
1.37% (6) 6 / 439 runs
failed over last 7 days
0% (0) 0 / 439 runs
flaked over last 7 days

📄   e2e/test/scenarios/question/reproductions/18207-string-min-max.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
issue 18207 should be possible to group by a string expression (#18207)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' w...
Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.
1.14% (5) 5 / 439 runs
failed over last 7 days
0% (0) 0 / 439 runs
flaked over last 7 days

📄   e2e/test/scenarios/question/reproductions/17512.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
issue 17512 custom expression should work with `case` in nested queries (#17512)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' w...
Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.
1.59% (7) 7 / 441 runs
failed over last 7 days
0% (0) 0 / 441 runs
flaked over last 7 days

📄   e2e/test/scenarios/models/reproductions/29951-model-editor-results-metadata.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
issue 29951 should allow to run the model query after changing custom columns (#29951)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 5000ms: `cy.wait()` timed out waiting `5000ms` for the ...
Timed out retrying after 5000ms: `cy.wait()` timed out waiting `5000ms` for the 3rd request to the route: `dataset`. No request ever occurred.

https://on.cypress.io/wait
16.38% (76) 76 / 464 runs
failed over last 7 days
10.56% (49) 49 / 464 runs
flaked over last 7 days

📄   e2e/test/scenarios/question/reproductions/15714-cc-postgres-percentile-accepts-two-params.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
postgres > question > custom columns `Percentile` custom expression function should accept two parameters (#15714)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Unable to find an element with the text: Custom...
Timed out retrying after 4000ms: Unable to find an element with the text: Custom Expression. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, <script />, <style />
<html
  lang="en"
  translate="no"
>
  <head>
     
    <meta
      charset="utf-8"
    />
    <meta
      content="IE=edge"
      http-equiv="X-UA-Compatible"
    />
    <meta
      content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
      name="viewport"
    />
    <meta
      content="noindex"
      name="robots"
    />
    <meta
      content="yes"
      name="apple-mobile-web-app-capable"
    />
    <meta
      content="black-translucent"
      name="apple-mobile-web-app-status-bar-style"
    />
    <link
      href="app/assets/img/apple-touch-icon.png"
      rel="apple-touch-icon"
      sizes="180x180"
    />
    <link
      href="app/assets/img/favicon.ico"
      rel="icon"
    />
    <link
      crossorigin="use-credentials"
      href="app/assets/img/site.webmanifest"
      rel="manifest"
    />
    <meta
      content="#2d89ef"
      name="msapplication-TileColor"
    />
    <meta
      content="app/assets/img/browserconfig.xml"
      name="msapplication-config"
    />
    <meta
      content="#ffffff"
      name="theme-color"
    />
    <meta
      content="default"
      name="apple-mobile-web-app-status-bar-style"
    />
    <meta
      content="/"
      name="base-href"
    />
    <meta
      content="/question/notebook"
      name="uri"
    />
    <title>
      Question · Metabase
    </title>
    <base
      href="/"
    />
    <link
      href="app/dist/styles.css?630ae7972acfaead5c9c"
      rel="stylesheet"
    />
    <link
      href="app/dist/app-main.css?ab57fd779b118afb2918"
      rel="stylesheet"
    />
  </head>
  <body>
    <div
      id="root"
    >
      <div
        class="spread css-1fttcpj enx0u2k2"
      >
        <header
          aria-label="Navigation bar"
          class="css-15xkiw5 es0756t0"
          data-testid="app-bar"
        >
          <div
            class="css-1pt930v e4w71dr4"
          >
            <div
              class="css-cxb03 e4w71dr3"
            >
              <div
                class="css-bjn8wh ehgm33i2"
              >
                <a
                  class="ehgm33i1 css-m53806 emeibx70"
                  data-metabase-event="Navbar;Logo"
                  href="/"
                >
                  <span
                    class="Icon text-centered text-brand"
                    data-testid="main-logo"
                  >
                    <svg
                      fill="currentcolor"
                      height="32"
                      viewBox="0 0 66 85"
                      xmlns="http://www.w3.org/2000/svg"
                      xmlns:xlink="http://www.w3.org/1999/xlink"
                    >
                      
  
                      <path
                        d="M46.8253288,70.4935014 C49.5764899,70.4935014 51.8067467,68.1774705 51.8067467,65.3205017 C51.8067467,62.4635329 49.5764899,60.147502 46.8253288,60.147502 C44.0741676,60.147502 41.8439108,62.4635329 41.8439108,65.3205017 C41.8439108,68.1774705 44.0741676,70.4935014 46.8253288,70.4935014 Z M32.8773585,84.9779005 C35.6285197,84.9779005 37.8587764,82.6618697 37.8587764,79.8049008 C37.8587764,76.947932 35.6285197,74.6319011 32.8773585,74.6319011 C30.1261973,74.6319011 27.8959405,76.947932 27.8959405,79.8049008 C27.8959405,82.6618697 30.1261973,84.9779005 32.8773585,84.9779005 Z M32.8773585,70.4935014 C35.6285197,70.4935014 37.8587764,68.1774705 37.8587764,65.3205017 C37.8587764,62.4635329 35.6285197,60.147502 32.8773585,60.147502 C30.1261973,60.147502 27.8959405,62.4635329 27.8959405,65.3205017 C27.8959405,68.1774705 30.1261973,70.4935014 32.8773585,70.4935014 Z M18.9293882,70.4935014 C21.6805494,70.4935014 23.9108062,68.1774705 23.9108062,65.3205017 C23.9108062,62.4635329 21.6805494,60.147502 18.9293882,60.147502 C16.1782271,60.147502 13.9479703,62.4635329 13.9479703,65.3205017 C13.9479703,68.1774705 16.1782271,70.4935014 18.9293882,70.4935014 Z M46.8253288,56.0091023 C49.5764899,56.0091023 51.8067467,53.6930714 51.8067467,50.8361026 C51.8067467,47.9791337 49.5764899,45.6631029 46.8253288,45.6631029 C44.0741676,45.6631029 41.8439108,47.9791337 41.8439108,50.8361026 C41.8439108,53.6930714 44.0741676,56.0091023 46.8253288,56.0091023 Z M18.9293882,56.0091023 C21.6805494,56.0091023 23.9108062,53.6930714 23.9108062,50.8361026 C23.9108062,47.9791337 21.6805494,45.6631029 18.9293882,45.6631029 C16.1782271,45.6631029 13.9479703,47.9791337 13.9479703,50.8361026 C13.9479703,53.6930714 16.1782271,56.0091023 18.9293882,56.0091023 Z M46.8253288,26.8995984 C49.5764899,26.8995984 51.8067467,24.5835675 51.8067467,21.7265987 C51.8067467,18.8696299 49.5764899,16.553599 46.8253288,16.553599 C44.0741676,16.553599 41.8439108,18.8696299 41.8439108,21.7265987 C41.8439108,24.5835675 44.0741676,26.8995984 46.8253288,26.8995984 Z M32.8773585,41.5247031 C35.6285197,41.5247031 37.8587764,39.2086723 37.8587764,36.3517034 C37.8587764,33.4947346 35.6285197,31.1787037 32.8773585,31.1787037 C30.1261973,31.1787037 27.8959405,33.4947346 27.8959405,36.3517034 C27.8959405,39.2086723 30.1261973,41.5247031 32.8773585,41.5247031 Z M32.8773585,10.3459994 C35.6285197,10.3459994 37.8587764,8.02996853 37.8587764,5.17299969 C37.8587764,2.31603085 35.6285197,0 32.8773585,0 C30.1261973,0 27.8959405,2.31603085 27.8959405,5.17299969 C27.8959405,8.02996853 30.1261973,10.3459994 32.8773585,10.3459994 Z M32.8773585,26.8995984 C35.6285197,26.8995984 37.8587764,24.5835675 37.8587764,21.7265987 C37.8587764,18.8696299 35.6285197,16.553599 32.8773585,16.553599 C30.1261973,16.553599 27.8959405,18.8696299 27.8959405,21.7265987 C27.8959405,24.5835675 30.1261973,26.8995984 32.8773585,26.8995984 Z M18.9293882,26.8995984 C21.6805494,26.8995984 23.9108062,24.5835675 23.9108062,21.7265987 C23.9108062,18.8696299 21.6805494,16.553599 18.9293882,16.553599 C16.1782271,16.553599 13.9479703,18.8696299 13.9479703,21.7265987 C13.9479703,24.5835675 16.1782271,26.8995984 18.9293882,26.8995984 Z"
                        opacity="0.2"
                      >
                        
  
                      </path>
                      
  
                      <path
                        d="M60.773299,70.4935014 C63.5244602,70.4935014 65.754717,68.1774705 65.754717,65.3205017 C65.754717,62.4635329 63.5244602,60.147502 60.773299,60.147502 C58.0221379,60.147502 55.7918811,62.4635329 55.7918811,65.3205017 C55.7918811,68.1774705 58.0221379,70.4935014 60.773299,70.4935014 Z M4.98141795,70.3527958 C7.73257912,70.3527958 9.96283591,68.0367649 9.96283591,65.1797961 C9.96283591,62.3228273 7.73257912,60.0067964 4.98141795,60.0067964 C2.23025679,60.0067964 0,62.3228273 0,65.1797961 C0,68.0367649 2.23025679,70.3527958 4.98141795,70.3527958 Z M60.773299,56.0091023 C63.5244602,56.0091023 65.754717,53.6930714 65.754717,50.8361026 C65.754717,47.9791337 63.5244602,45.6631029 60.773299,45.6631029 C58.0221379,45.6631029 55.7918811,47.9791337 55.7918811,50.8361026 C55.7918811,53.6930714 58.0221379,56.0091023 60.773299,56.0091023 Z M32.8773585,56.0091023 C35.6285197,56.0091023 37.858776...
2.49% (11) 11 / 441 runs
failed over last 7 days
0.45% (2) 2 / 441 runs
flaked over last 7 days

📄   e2e/test/scenarios/filters/filter.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
scenarios > question > filter should handle boolean arguments with CountIf
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' w...
Timed out retrying after 4000ms: Expected to find content: 'Custom Expression' within the element: <span.PopoverContainer.PopoverContainer--open.popover.tether-element.tether-element-attached-left.tether-target-attached-left.tether-element-attached-top.tether-target-attached-bottom.tether-enabled> but never did.
1.37% (6) 6 / 438 runs
failed over last 7 days
0.23% (1) 1 / 438 run
flaked over last 7 days

📄   e2e/test/scenarios/custom-column/custom-column.cy.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
scenarios > question > custom column should handle brackets in the name of the custom column (#15316)
Retry 4Retry 3Retry 2Retry 1Initial Attempt
Error: Timed out retrying after 4000ms: Unable to find an element with the text: Custom...
Timed out retrying after 4000ms: Unable to find an element with the text: Custom Expression. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, <script />, <style />
<span
  class="PopoverContainer PopoverContainer--open popover tether-element tether-element-attached-left tether-target-attached-left tether-element-attached-bottom tether-target-attached-top tether-enabled"
  data-state="visible"
  data-testid="popover"
  style="top: 0px; left: 0px; position: absolute; transform: translateX(46px) translateY(116px) translateZ(0px);"
>
  <span
    style="z-index: 3;"
  >
    <div
      class="PopoverBody PopoverBody--withBackground"
    >
      <div
        aria-label="grid"
        aria-readonly="true"
        class="ReactVirtualized__Grid ReactVirtualized__List css-r2bovr eji5uii0"
        role="grid"
        style="box-sizing: border-box; direction: ltr; height: 394px; position: relative; width: 300px; will-change: transform; overflow: hidden auto; outline: none;"
        tabindex="0"
      >
        <div
          class="ReactVirtualized__Grid__innerScrollContainer"
          role="rowgroup"
          style="width: auto; height: 394px; max-width: 300px; max-height: 394px; overflow: hidden; pointer-events: auto; position: relative;"
        >
          <div
            class="List-section List-section--expanded"
            style="height: 55px; left: 0px; position: absolute; top: 0px; width: 100%;"
          >
            <div
              class="List-section-header px2 py2 flex align-center hover-parent hover--opacity text-brand"
            >
              <span
                class="List-section-icon mr1 flex align-center"
              >
                <svg
                  aria-label="table2 icon"
                  class="Icon Icon-table2"
                  clip-rule="evenodd"
                  fill="currentcolor"
                  fill-rule="evenodd"
                  height="16"
                  role="img"
                  viewBox="0 0 16 16"
                  width="16"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M2 3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3zm1.5 6V7h1.947v2H3.5zm0 1.5v2h1.947v-2H3.5zm3.447 0v2H12.5v-2H6.947zM12.5 9V7H6.947v2H12.5zM5.447 5.5H3.5v-2h1.947v2zm1.5 0H12.5v-2H6.947v2z"
                  />
                </svg>
              </span>
              <h3
                class="List-section-title text-wrap"
              >
                Basic Metrics
              </h3>
            </div>
          </div>
          <div
            class="List-section List-section--expanded"
            style="height: 37px; left: 0px; position: absolute; top: 55px; width: 100%;"
          >
            <div
              aria-label="Count of rows"
              class="List-item flex mx1 css-1q2mp54 egbntif1"
              role="option"
            >
              <span
                class="p1 flex-auto flex align-center cursor-pointer"
              >
                <div>
                  <h4
                    class="List-item-title ml1 text-wrap"
                  >
                    Count of rows
                  </h4>
                </div>
              </span>
              <div
                class="css-srg8wo e1w8ecl00"
              >
                <svg
                  aria-label="question icon"
                  class="Icon Icon-question"
                  fill="currentcolor"
                  height="20"
                  role="img"
                  viewBox="0 0 32 32"
                  width="20"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M16 32c8.837 0 16-7.163 16-16S24.837 0 16 0 0 7.163 0 16s7.163 16 16 16Zm0-2.91C8.77 29.09 2.91 23.23 2.91 16 2.91 8.77 8.77 2.91 16 2.91c7.23 0 13.09 5.86 13.09 13.09 0 7.23-5.86 13.09-13.09 13.09ZM12 9.56c.273-.216.57-.419.89-.607.32-.189.665-.354 1.034-.498a6.746 6.746 0 0 1 1.188-.335c.424-.08.883-.12 1.377-.12a6.25 6.25 0 0 1 1.874.262c.557.174 1.03.424 1.42.748.391.325.692.716.902 1.173.21.457.315.965.315 1.524 0 .53-.077.99-.232 1.377a3.78 3.78 0 0 1-.586 1.01 4.38 4.38 0 0 1-.78.744c-.283.21-.552.403-.807.58a6.205 6.205 0 0 0-.663.53c-.188.174-.308.37-.36.586L17.262 18H14.92l-.243-1.686c-.06-.342-.022-.64.11-.895a2.41 2.41 0 0 1 .548-.691c.232-.206.492-.402.779-.587.287-.185.557-.384.807-.596.25-.213.463-.45.636-.713a1.66 1.66 0 0 0 .26-.937c0-.419-.146-.752-.437-1-.291-.248-.691-.371-1.2-.371-.39 0-.716.038-.978.115a4.073 4.073 0 0 0-.675.256 15.3 15.3 0 0 0-.492.257.867.867 0 0 1-.42.115c-.317 0-.553-.13-.707-.387L12 9.56ZM14 22a1.99 1.99 0 0 1 .574-1.415A1.976 1.976 0 0 1 16 20c.28 0 .542.053.784.158.243.105.455.247.636.427.182.18.324.39.427.631.102.242.153.503.153.784 0 .28-.051.544-.153.79a1.922 1.922 0 0 1-.427.637A1.99 1.99 0 0 1 16 24c-.288 0-.553-.05-.795-.152a1.924 1.924 0 0 1-1.052-1.059A2.033 2.033 0 0 1 14 22Z"
                  />
                </svg>
              </div>
            </div>
          </div>
          <div
            class="List-section List-section--expanded"
            style="height: 37px; left: 0px; position: absolute; top: 92px; width: 100%;"
          >
            <div
              aria-label="Sum of ..."
              aria-selected="true"
              class="List-item flex mx1 List-item--selected css-1q2mp54 egbntif1"
              role="option"
            >
              <span
                class="p1 flex-auto flex align-center cursor-pointer"
              >
                <div>
                  <h4
                    class="List-item-title ml1 text-wrap"
                  >
                    Sum of ...
                  </h4>
                </div>
              </span>
              <div
                class="css-srg8wo e1w8ecl00"
              >
                <svg
                  aria-label="question icon"
                  class="Icon Icon-question"
                  fill="currentcolor"
                  height="20"
                  role="img"
                  viewBox="0 0 32 32"
                  width="20"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M16 32c8.837 0 16-7.163 16-16S24.837 0 16 0 0 7.163 0 16s7.163 16 16 16Zm0-2.91C8.77 29.09 2.91 23.23 2.91 16 2.91 8.77 8.77 2.91 16 2.91c7.23 0 13.09 5.86 13.09 13.09 0 7.23-5.86 13.09-13.09 13.09ZM12 9.56c.273-.216.57-.419.89-.607.32-.189.665-.354 1.034-.498a6.746 6.746 0 0 1 1.188-.335c.424-.08.883-.12 1.377-.12a6.25 6.25 0 0 1 1.874.262c.557.174 1.03.424 1.42.748.391.325.692.716.902 1.173.21.457.315.965.315 1.524 0 .53-.077.99-.232 1.377a3.78 3.78 0 0 1-.586 1.01 4.38 4.38 0 0 1-.78.744c-.283.21-.552.403-.807.58a6.205 6.205 0 0 0-.663.53c-.188.174-.308.37-.36.586L17.262 18H14.92l-.243-1.686c-.06-.342-.022-.64.11-.895a2.41 2.41 0 0 1 .548-.691c.232-.206.492-.402.779-.587.287-.185.557-.384.807-.596.25-.213.463-.45.636-.713a1.66 1.66 0 0 0 .26-.937c0-.419-.146-.752-.437-1-.291-.248-.691-.371-1.2-.371-.39 0-.716.038-.978.115a4.073 4.073 0 0 0-.675.256 15.3 15.3 0 0 0-.492.257.867.867 0 0...
1.36% (6) 6 / 441 runs
failed over last 7 days
0% (0) 0 / 441 runs
flaked over last 7 days

⚠️ Flakes

📄   e2e/test/scenarios/models/models.cy.spec.js • 1 Flake

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
scenarios > models listing should allow adding models to dashboards
Retry 1Initial Attempt
1.29% (6) 6 / 465 runs
failed over last 7 days
9.03% (42) 42 / 465 runs
flaked over last 7 days

📄   e2e/test/scenarios/actions/model-actions.cy.spec.js • 2 Flakes

Top 1 Common Error Messages

null

2 Test Cases Affected

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Write actions on model detail page (postgres) should allow public sharing of actions and execution of public actions
Retry 2Retry 1Initial Attempt
1.38% (6) 6 / 436 runs
failed over last 7 days
83.49% (364) 364 / 436 runs
flaked over last 7 days
Write actions on model detail page (postgres) hidden fields should allow implicit action execution from the model details page
Retry 2Retry 1Initial Attempt
1.07% (4) 4 / 373 runs
failed over last 7 days
82.57% (308) 308 / 373 runs
flaked over last 7 days

📄   e2e/test/scenarios/dashboard/dashboard-card-resizing.cy.spec.js • 1 Flake

Test Case Results

(truncated)...

@codecov
Copy link

codecov bot commented Jun 13, 2023

Codecov Report

❗ No coverage uploaded for pull request base (mlv2-fe/aggregations-notebook@7e9a03c). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@                       Coverage Diff                        @@
##             mlv2-fe/aggregations-notebook   #31528   +/-   ##
================================================================
  Coverage                                 ?   74.21%           
================================================================
  Files                                    ?     2907           
  Lines                                    ?   103416           
  Branches                                 ?    12842           
================================================================
  Hits                                     ?    76746           
  Misses                                   ?    20858           
  Partials                                 ?     5812           
Flag Coverage Δ
back-end 86.70% <0.00%> (?)
front-end 60.26% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-operators branch from fbf65c5 to f479386 Compare June 15, 2023 11:27
@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-metrics branch from 3146d22 to ac5a7ea Compare June 15, 2023 11:27
Copy link
Contributor

@ranquild ranquild left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a heads up that I reviewed this PR but disagree with the approach to use MLv1 here. Discussing it here https://metaboat.slack.com/archives/C04CYTEL9N2/p1686749310644099

@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-operators branch from f479386 to 92802cf Compare June 26, 2023 11:44
@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-metrics branch 2 times, most recently from f35a48a to 92f20af Compare June 26, 2023 11:49
Base automatically changed from mlv2-fe/aggregation-support-notebook-operators to mlv2-fe/aggregations-notebook June 26, 2023 13:14
@kulyk kulyk force-pushed the mlv2-fe/aggregations-notebook branch from e60cc6f to 1dcfd0f Compare June 26, 2023 13:17
@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-metrics branch from 92f20af to 71da7a3 Compare June 26, 2023 13:18
@kulyk kulyk force-pushed the mlv2-fe/aggregations-notebook branch from 1dcfd0f to f959cdc Compare June 27, 2023 12:34
@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-metrics branch from 71da7a3 to 30836ac Compare June 27, 2023 12:34
@kulyk kulyk force-pushed the mlv2-fe/aggregations-notebook branch from f959cdc to 7e9a03c Compare June 28, 2023 12:07
@kulyk kulyk force-pushed the mlv2-fe/aggregation-support-notebook-metrics branch from 30836ac to b7e06ce Compare June 28, 2023 12:07
@kulyk
Copy link
Member Author

kulyk commented Jun 28, 2023

@ranquild I've updated the PR to use MLv2-based metrics, please take another look

@kulyk kulyk requested a review from ranquild June 28, 2023 12:56
Copy link
Contributor

@ranquild ranquild left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome!

@kulyk kulyk merged this pull request into mlv2-fe/aggregations-notebook Jun 28, 2023
90 of 96 checks passed
@kulyk kulyk deleted the mlv2-fe/aggregation-support-notebook-metrics branch June 28, 2023 13:29
kulyk added a commit that referenced this pull request Jun 28, 2023
* Add basic legacy metrics support

* Don't show archived metrics

* Highlight selected metric

* Extract `AggregationPopover` in notebook step

* Fix `onClose` prop

* Fix icon

* Add missing metric types

* Use MLv2 to manage metrics

* Remove legacy query logic

* Add `Aggregatable` type
kulyk added a commit that referenced this pull request Jun 29, 2023
* Add basic legacy metrics support

* Don't show archived metrics

* Highlight selected metric

* Extract `AggregationPopover` in notebook step

* Fix `onClose` prop

* Fix icon

* Add missing metric types

* Use MLv2 to manage metrics

* Remove legacy query logic

* Add `Aggregatable` type
kulyk added a commit that referenced this pull request Jun 29, 2023
* Migrate notebook aggregations to MLv2 — Operators (1) (#31527)

* Add aggregation types

* Add aggregation TypeScript wrappers

* Move `AggregateStep` to its own directory

* Port basic features to MLv2

* Deprecate `AggregationPopover`

* Fix MLv1's aggregation clause validation

* Fix import

* `requiresField` → `requiresColumn`

* Add basic tests for `AggregationPicker`

* Add `findAggregationOperator` test utility

* Add basic tests for `AggregateStep`

* Make stage index explicit

* Highlight selections, add picker back button

* Use long display name for aggregation clauses

* Remove `React` imports

* Enable temporal bucketing

* Use aggregation JS wrappers

* Fix `Icon` import

* Patch unit test according to BE changes

* Fix E2E test

* Simplify `Aggregation's` `dimension` method

* Fix formatting

* Migrate notebook aggregations to MLv2 — Metrics (2) (#31528)

* Add basic legacy metrics support

* Don't show archived metrics

* Highlight selected metric

* Extract `AggregationPopover` in notebook step

* Fix `onClose` prop

* Fix icon

* Add missing metric types

* Use MLv2 to manage metrics

* Remove legacy query logic

* Add `Aggregatable` type

* Migrate notebook aggregations to MLv2 — Inline expressions (3) (#31529)

* Revert "Remove legacy query logic"

This reverts commit 722804d.

* Use HTML labels in `ExpressionWidget`

* Support inline expressions for aggregations

* Fix import

* Fix picker navigation

* Fix type error

* Remove `ts-expect-error`

* Migrate notebook aggregations to MLv2 — Disable MLv1 validation (4) (#31530)
kulyk added a commit that referenced this pull request Jul 10, 2023
* Migrate notebook aggregations to MLv2 — Operators (1) (#31527)

* Add aggregation types

* Add aggregation TypeScript wrappers

* Move `AggregateStep` to its own directory

* Port basic features to MLv2

* Deprecate `AggregationPopover`

* Fix MLv1's aggregation clause validation

* Fix import

* `requiresField` → `requiresColumn`

* Add basic tests for `AggregationPicker`

* Add `findAggregationOperator` test utility

* Add basic tests for `AggregateStep`

* Make stage index explicit

* Highlight selections, add picker back button

* Use long display name for aggregation clauses

* Remove `React` imports

* Enable temporal bucketing

* Use aggregation JS wrappers

* Fix `Icon` import

* Patch unit test according to BE changes

* Fix E2E test

* Simplify `Aggregation's` `dimension` method

* Fix formatting

* Migrate notebook aggregations to MLv2 — Metrics (2) (#31528)

* Add basic legacy metrics support

* Don't show archived metrics

* Highlight selected metric

* Extract `AggregationPopover` in notebook step

* Fix `onClose` prop

* Fix icon

* Add missing metric types

* Use MLv2 to manage metrics

* Remove legacy query logic

* Add `Aggregatable` type

* Migrate notebook aggregations to MLv2 — Inline expressions (3) (#31529)

* Revert "Remove legacy query logic"

This reverts commit 722804d.

* Use HTML labels in `ExpressionWidget`

* Support inline expressions for aggregations

* Fix import

* Fix picker navigation

* Fix type error

* Remove `ts-expect-error`

* Migrate notebook aggregations to MLv2 — Disable MLv1 validation (4) (#31530)
kulyk added a commit that referenced this pull request Jul 12, 2023
* Migrate notebook aggregations to MLv2 — Operators (1) (#31527)

* Add aggregation types

* Add aggregation TypeScript wrappers

* Move `AggregateStep` to its own directory

* Port basic features to MLv2

* Deprecate `AggregationPopover`

* Fix MLv1's aggregation clause validation

* Fix import

* `requiresField` → `requiresColumn`

* Add basic tests for `AggregationPicker`

* Add `findAggregationOperator` test utility

* Add basic tests for `AggregateStep`

* Make stage index explicit

* Highlight selections, add picker back button

* Use long display name for aggregation clauses

* Remove `React` imports

* Enable temporal bucketing

* Use aggregation JS wrappers

* Fix `Icon` import

* Patch unit test according to BE changes

* Fix E2E test

* Simplify `Aggregation's` `dimension` method

* Fix formatting

* Migrate notebook aggregations to MLv2 — Metrics (2) (#31528)

* Add basic legacy metrics support

* Don't show archived metrics

* Highlight selected metric

* Extract `AggregationPopover` in notebook step

* Fix `onClose` prop

* Fix icon

* Add missing metric types

* Use MLv2 to manage metrics

* Remove legacy query logic

* Add `Aggregatable` type

* Migrate notebook aggregations to MLv2 — Inline expressions (3) (#31529)

* Revert "Remove legacy query logic"

This reverts commit 722804d.

* Use HTML labels in `ExpressionWidget`

* Support inline expressions for aggregations

* Fix import

* Fix picker navigation

* Fix type error

* Remove `ts-expect-error`

* Migrate notebook aggregations to MLv2 — Disable MLv1 validation (4) (#31530)
kulyk added a commit that referenced this pull request Jul 12, 2023
* Migrate notebook aggregations to MLv2 — Operators (1) (#31527)

* Add aggregation types

* Add aggregation TypeScript wrappers

* Move `AggregateStep` to its own directory

* Port basic features to MLv2

* Deprecate `AggregationPopover`

* Fix MLv1's aggregation clause validation

* Fix import

* `requiresField` → `requiresColumn`

* Add basic tests for `AggregationPicker`

* Add `findAggregationOperator` test utility

* Add basic tests for `AggregateStep`

* Make stage index explicit

* Highlight selections, add picker back button

* Use long display name for aggregation clauses

* Remove `React` imports

* Enable temporal bucketing

* Use aggregation JS wrappers

* Fix `Icon` import

* Patch unit test according to BE changes

* Fix E2E test

* Simplify `Aggregation's` `dimension` method

* Fix formatting

* Migrate notebook aggregations to MLv2 — Metrics (2) (#31528)

* Add basic legacy metrics support

* Don't show archived metrics

* Highlight selected metric

* Extract `AggregationPopover` in notebook step

* Fix `onClose` prop

* Fix icon

* Add missing metric types

* Use MLv2 to manage metrics

* Remove legacy query logic

* Add `Aggregatable` type

* Migrate notebook aggregations to MLv2 — Inline expressions (3) (#31529)

* Revert "Remove legacy query logic"

This reverts commit 722804d.

* Use HTML labels in `ExpressionWidget`

* Support inline expressions for aggregations

* Fix import

* Fix picker navigation

* Fix type error

* Remove `ts-expect-error`

* Migrate notebook aggregations to MLv2 — Disable MLv1 validation (4) (#31530)
@iethree iethree mentioned this pull request Oct 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
.metabase-lib Label for tracking all issues related to the shared CLJC metabase-lib .Team/QueryProcessor :hammer_and_wrench:
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants