From 2390f8115ef7a9ec41e47d3a645093c637273828 Mon Sep 17 00:00:00 2001 From: Sophie Stadler Date: Tue, 5 Sep 2023 16:11:52 -0400 Subject: [PATCH 1/6] EVG-20320: Upload Sentry source maps (#2016) --- .evergreen.yml | 1 + jest.config.js | 3 - package.json | 1 + scripts/setup-credentials.js | 1 + src/components/ErrorHandling/Sentry.tsx | 1 - .../ErrorHandling/initialize.test.ts | 3 - src/gql/generated/types.ts | 2 + src/vite-env.d.ts | 2 - vite.config.ts | 15 +- yarn.lock | 175 ++++++++++++++++-- 10 files changed, 179 insertions(+), 25 deletions(-) diff --git a/.evergreen.yml b/.evergreen.yml index 3fc61bdf59..020c49467f 100644 --- a/.evergreen.yml +++ b/.evergreen.yml @@ -392,6 +392,7 @@ functions: script: | echo "Generating .env-cmdrc.json" REACT_APP_BUGSNAG_API_KEY=${REACT_APP_BUGSNAG_API_KEY} \ + REACT_APP_SENTRY_AUTH_TOKEN=${REACT_APP_SENTRY_AUTH_TOKEN} \ REACT_APP_SENTRY_DSN=${REACT_APP_SENTRY_DSN} \ REACT_APP_NEW_RELIC_ACCOUNT_ID=${REACT_APP_NEW_RELIC_ACCOUNT_ID} \ REACT_APP_NEW_RELIC_AGENT_ID=${REACT_APP_NEW_RELIC_AGENT_ID} \ diff --git a/jest.config.js b/jest.config.js index 39a0d77559..dac2467599 100644 --- a/jest.config.js +++ b/jest.config.js @@ -40,8 +40,5 @@ module.exports = { "jest-watch-typeahead/testname", ], globalSetup: "/global-setup.js", - globals: { - APP_VERSION: JSON.stringify(process.env.npm_package_version), - }, testTimeout: 30000, }; diff --git a/package.json b/package.json index 2d4edaa08b..9248fa0064 100644 --- a/package.json +++ b/package.json @@ -142,6 +142,7 @@ "@graphql-codegen/typescript-operations": "4.0.1", "@graphql-eslint/eslint-plugin": "3.18.0", "@originjs/vite-plugin-commonjs": "1.0.3", + "@sentry/vite-plugin": "2.6.2", "@storybook/addon-actions": "7.0.21", "@storybook/addon-essentials": "7.0.21", "@storybook/addon-interactions": "7.0.21", diff --git a/scripts/setup-credentials.js b/scripts/setup-credentials.js index b5c535b7b6..3e03c06d8b 100644 --- a/scripts/setup-credentials.js +++ b/scripts/setup-credentials.js @@ -13,6 +13,7 @@ const production = { REACT_APP_SPRUCE_URL: "https://spruce.mongodb.com", REACT_APP_RELEASE_STAGE: "production", REACT_APP_BUGSNAG_API_KEY: process.env.REACT_APP_BUGSNAG_API_KEY, + REACT_APP_SENTRY_AUTH_TOKEN: process.env.REACT_APP_SENTRY_AUTH_TOKEN, REACT_APP_SENTRY_DSN: process.env.REACT_APP_SENTRY_DSN, REACT_APP_NEW_RELIC_ACCOUNT_ID: process.env.REACT_APP_NEW_RELIC_ACCOUNT_ID, REACT_APP_NEW_RELIC_AGENT_ID: process.env.REACT_APP_NEW_RELIC_AGENT_ID, diff --git a/src/components/ErrorHandling/Sentry.tsx b/src/components/ErrorHandling/Sentry.tsx index 9a84034c76..84dc73db0d 100644 --- a/src/components/ErrorHandling/Sentry.tsx +++ b/src/components/ErrorHandling/Sentry.tsx @@ -18,7 +18,6 @@ const initializeSentry = () => { dsn: getSentryDSN(), debug: !isProduction(), normalizeDepth: 5, - release: APP_VERSION, environment: releaseStage, }); } catch (e) { diff --git a/src/components/ErrorHandling/initialize.test.ts b/src/components/ErrorHandling/initialize.test.ts index d0286529b0..74414562cb 100644 --- a/src/components/ErrorHandling/initialize.test.ts +++ b/src/components/ErrorHandling/initialize.test.ts @@ -47,7 +47,6 @@ describe("should initialize error handlers according to release stage", () => { dsn: "fake-sentry-key", debug: false, normalizeDepth: 5, - release: APP_VERSION, environment: "production", }); }); @@ -71,7 +70,6 @@ describe("should initialize error handlers according to release stage", () => { dsn: "fake-sentry-key", debug: true, normalizeDepth: 5, - release: APP_VERSION, environment: "beta", }); }); @@ -95,7 +93,6 @@ describe("should initialize error handlers according to release stage", () => { dsn: "fake-sentry-key", debug: true, normalizeDepth: 5, - release: APP_VERSION, environment: "staging", }); }); diff --git a/src/gql/generated/types.ts b/src/gql/generated/types.ts index ecf073d85a..a070b1efa4 100644 --- a/src/gql/generated/types.ts +++ b/src/gql/generated/types.ts @@ -2419,6 +2419,7 @@ export type Task = { executionTasksFull?: Maybe>; expectedDuration?: Maybe; failedTestCount: Scalars["Int"]["output"]; + files: TaskFiles; finishTime?: Maybe; generateTask?: Maybe; generatedBy?: Maybe; @@ -2445,6 +2446,7 @@ export type Task = { spawnHostLink?: Maybe; startTime?: Maybe; status: Scalars["String"]["output"]; + /** @deprecated Use files instead */ taskFiles: TaskFiles; taskGroup?: Maybe; taskGroupMaxHosts?: Maybe; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index d5a25da391..bf61bfbea4 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -6,5 +6,3 @@ declare module "*.graphql" { const content: DocumentNode; export default content; } - -declare const APP_VERSION: string; diff --git a/vite.config.ts b/vite.config.ts index 2d6fb62380..381d092178 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "vite"; +import { sentryVitePlugin } from "@sentry/vite-plugin"; import react from "@vitejs/plugin-react"; import * as fs from "fs"; import path from "path"; @@ -126,6 +127,17 @@ export default defineConfig({ filename: "build/source_map.html", template: "treemap", }), + sentryVitePlugin({ + org: "mongodb-org", + project: "spruce", + authToken: process.env.REACT_APP_SENTRY_AUTH_TOKEN, + release: { + name: process.env.npm_package_version, + }, + sourcemaps: { + assets: "./build/assets/*", + }, + }), ], css: { preprocessorOptions: { @@ -134,7 +146,4 @@ export default defineConfig({ }, }, }, - define: { - APP_VERSION: JSON.stringify(process.env.npm_package_version), - }, }); diff --git a/yarn.lock b/yarn.lock index 8ba224c166..c5259897eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4004,6 +4004,16 @@ "@sentry/utils" "7.56.0" tslib "^1.9.3" +"@sentry-internal/tracing@7.66.0": + version "7.66.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.66.0.tgz#45ea607917d55a5bcaa3229341387ff6ed9b3a2b" + integrity sha512-3vCgC2hC3T45pn53yTDVcRpHoJTBxelDPPZVsipAbZnoOVPkj7n6dNfDhj3I3kwWCBPahPkXmE+R4xViR8VqJg== + dependencies: + "@sentry/core" "7.66.0" + "@sentry/types" "7.66.0" + "@sentry/utils" "7.66.0" + tslib "^2.4.1 || ^1.9.3" + "@sentry/browser@7.56.0": version "7.56.0" resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.56.0.tgz#6bf3ff21bc2e9b66a72ea0c7dcc3572fdeb3bd8f" @@ -4016,6 +4026,31 @@ "@sentry/utils" "7.56.0" tslib "^1.9.3" +"@sentry/bundler-plugin-core@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.6.2.tgz#57fb61122414adc244d79184548f330808c7b858" + integrity sha512-j2BOd8kl2NzexQaeNNc4uqteudK1lNngGP99zjTEj1BV/I5vOOR7PnrmQLXkLJOp5paGKKfelY9RHSVnvFf+Dw== + dependencies: + "@sentry/cli" "^2.20.1" + "@sentry/node" "^7.60.0" + "@sentry/utils" "^7.60.0" + dotenv "^16.3.1" + find-up "5.0.0" + glob "9.3.2" + magic-string "0.27.0" + unplugin "1.0.1" + +"@sentry/cli@^2.20.1": + version "2.20.6" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.20.6.tgz#d7911008b3773fc46747162abc1132dab0dd022d" + integrity sha512-j4OFbDCIo/dB/uXDmXnRqCbku0KquekSFSG0Wb6RKwkGqpKwFMRauKXZJrgL4as3qIfDX8HrjNRv257QYMwdQA== + dependencies: + https-proxy-agent "^5.0.0" + node-fetch "^2.6.7" + progress "^2.0.3" + proxy-from-env "^1.1.0" + which "^2.0.2" + "@sentry/core@7.56.0": version "7.56.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.56.0.tgz#f4253e0d61f55444180a63e5278b62e57303f7cf" @@ -4025,6 +4060,29 @@ "@sentry/utils" "7.56.0" tslib "^1.9.3" +"@sentry/core@7.66.0": + version "7.66.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.66.0.tgz#8968f2a9e641d33e3750a8e24d1d39953680c4f2" + integrity sha512-WMAEPN86NeCJ1IT48Lqiz4MS5gdDjBwP4M63XP4msZn9aujSf2Qb6My5uT87AJr9zBtgk8MyJsuHr35F0P3q1w== + dependencies: + "@sentry/types" "7.66.0" + "@sentry/utils" "7.66.0" + tslib "^2.4.1 || ^1.9.3" + +"@sentry/node@^7.60.0": + version "7.66.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.66.0.tgz#d3e08471e1ecae28d3cd0ba3c18487ecb2449881" + integrity sha512-PxqIqLr4Sh5xcDfECiBQ4PuZ7v8yTgLhaRkruWrZPYxQrcJFPkwbFkw/IskzVnhT2VwXUmeWEIlRMQKBJ0t83A== + dependencies: + "@sentry-internal/tracing" "7.66.0" + "@sentry/core" "7.66.0" + "@sentry/types" "7.66.0" + "@sentry/utils" "7.66.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^2.4.1 || ^1.9.3" + "@sentry/react@7.56.0": version "7.56.0" resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.56.0.tgz#7e2e9363a76c7d67854bdb179142a2f7f910d476" @@ -4050,6 +4108,11 @@ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.56.0.tgz#9042a099cf9e8816d081886d24b88082a5d9f87a" integrity sha512-5WjhVOQm75ItOytOx2jTx+5yw8/qJ316+g1Di8dS9+kgIi1zniqdMcX00C2yYe3FMUgFB49PegCUYulm9Evapw== +"@sentry/types@7.66.0": + version "7.66.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.66.0.tgz#4ec290cc6a3dd2024a61a0bffb468cedb409f7fb" + integrity sha512-uUMSoSiar6JhuD8p7ON/Ddp4JYvrVd2RpwXJRPH1A4H4Bd4DVt1mKJy1OLG6HdeQv39XyhB1lPZckKJg4tATPw== + "@sentry/utils@7.56.0": version "7.56.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.56.0.tgz#e60e4935d17b2197584abf6ce61b522ad055352c" @@ -4058,6 +4121,22 @@ "@sentry/types" "7.56.0" tslib "^1.9.3" +"@sentry/utils@7.66.0", "@sentry/utils@^7.60.0": + version "7.66.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.66.0.tgz#2e37c96610f26bc79ac064fca4222ea91fece68d" + integrity sha512-9GYUVgXjK66uXXcLXVMXVzlptqMtq1eJENCuDeezQiEFrNA71KkLDg00wESp+LL+bl3wpVTBApArpbF6UEG5hQ== + dependencies: + "@sentry/types" "7.66.0" + tslib "^2.4.1 || ^1.9.3" + +"@sentry/vite-plugin@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@sentry/vite-plugin/-/vite-plugin-2.6.2.tgz#cdd888a6984755c67c18010c13ddb04cabc3aab2" + integrity sha512-r1jB854XZ+LFtel/gv2NX5gzeBXGajssXlDMmXM3yP9Ao7yZk7RqFMkqYfL+tMeIk2d7waAI8W8vMCbrg5CQFw== + dependencies: + "@sentry/bundler-plugin-core" "2.6.2" + unplugin "1.0.1" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -7363,6 +7442,11 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + copy-anything@^2.0.1: version "2.0.6" resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" @@ -7913,7 +7997,7 @@ dotenv-expand@^10.0.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== -dotenv@^16.0.0: +dotenv@^16.0.0, dotenv@^16.3.1: version "16.3.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== @@ -9005,6 +9089,14 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -9020,14 +9112,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" @@ -9346,6 +9430,16 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda" + integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA== + dependencies: + fs.realpath "^1.0.0" + minimatch "^7.4.1" + minipass "^4.2.4" + path-scurry "^1.6.1" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -9754,7 +9848,7 @@ https-proxy-agent@^4.0.0: agent-base "5" debug "4" -https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -11355,12 +11449,22 @@ lru-cache@^7.5.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== + +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -magic-string@^0.27.0: +magic-string@0.27.0, magic-string@^0.27.0: version "0.27.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== @@ -11600,6 +11704,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^7.4.1: + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -11621,11 +11732,21 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + minipass@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" + integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== + minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -12206,6 +12327,14 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-scurry@^1.6.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -12392,7 +12521,7 @@ process@^0.11.1, process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress@^2.0.1: +progress@^2.0.1, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -14545,6 +14674,11 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== +"tslib@^2.4.1 || ^1.9.3": + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tslib@~2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" @@ -14804,6 +14938,16 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== +unplugin@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.0.1.tgz#83b528b981cdcea1cad422a12cd02e695195ef3f" + integrity sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA== + dependencies: + acorn "^8.8.1" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.5.0" + unplugin@^0.10.2: version "0.10.2" resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.10.2.tgz#0f7089c3666f592cc448d746e39e7f41e9afb01a" @@ -15177,6 +15321,11 @@ webpack-virtual-modules@^0.4.5: resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz#3e4008230731f1db078d9cb6f68baf8571182b45" integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA== +webpack-virtual-modules@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" + integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== + whatwg-encoding@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" @@ -15247,7 +15396,7 @@ which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2, gopd "^1.0.1" has-tostringtag "^1.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== From e609f98949d72b1d80db7ff72f69805a33d669b9 Mon Sep 17 00:00:00 2001 From: Mohamed Khelif Date: Tue, 5 Sep 2023 22:41:04 +0100 Subject: [PATCH 2/6] EVG-20086 Add task blocked event copy (#2021) --- src/pages/task/taskTabs/logs/logTypes/TaskEventLogLine.tsx | 3 +++ src/types/task.ts | 1 + 2 files changed, 4 insertions(+) diff --git a/src/pages/task/taskTabs/logs/logTypes/TaskEventLogLine.tsx b/src/pages/task/taskTabs/logs/logTypes/TaskEventLogLine.tsx index 840e1e9597..03ef99987b 100644 --- a/src/pages/task/taskTabs/logs/logTypes/TaskEventLogLine.tsx +++ b/src/pages/task/taskTabs/logs/logTypes/TaskEventLogLine.tsx @@ -17,6 +17,9 @@ export const TaskEventLogLine: React.FC = ({ const containerOrHostCopy = podId ? "container" : "host"; let message: JSX.Element; switch (eventType) { + case TaskEventType.TaskBlocked: + message = <>Task is blocked.; + break; case TaskEventType.TaskFinished: message = ( <> diff --git a/src/types/task.ts b/src/types/task.ts index da7d39d739..2cb2ecca36 100644 --- a/src/types/task.ts +++ b/src/types/task.ts @@ -106,6 +106,7 @@ export enum TaskEventType { TaskFinished = "TASK_FINISHED", TaskStarted = "TASK_STARTED", TaskDispatched = "TASK_DISPATCHED", + TaskBlocked = "TASK_BLOCKED", TaskUndispatched = "TASK_UNDISPATCHED", TaskCreated = "TASK_CREATED", TaskRestarted = "TASK_RESTARTED", From 00ef22cf3bb37ca438deaaa8125ac491382cc3b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 21:56:26 -0400 Subject: [PATCH 3/6] CHORE(NPM) - bump @leafygreen-ui/loading-indicator from 2.0.0 to 2.0.5 (#2018) --- package.json | 2 +- yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 9248fa0064..561e869417 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@leafygreen-ui/inline-definition": "6.0.0", "@leafygreen-ui/interaction-ring": "7.0.2", "@leafygreen-ui/leafygreen-provider": "3.1.0", - "@leafygreen-ui/loading-indicator": "2.0.0", + "@leafygreen-ui/loading-indicator": "2.0.5", "@leafygreen-ui/marketing-modal": "^4.0.5", "@leafygreen-ui/menu": "20.0.1", "@leafygreen-ui/modal": "14.0.1", diff --git a/yarn.lock b/yarn.lock index c5259897eb..61f3fd97ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3256,6 +3256,14 @@ lodash "^4.17.21" meow "^6.1.0" +"@leafygreen-ui/icon@^11.22.2": + version "11.23.0" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/icon/-/icon-11.23.0.tgz#d6fdae3386f79ee061a991d32e2ff807611af85c" + integrity sha512-TaK9mlQO2K1Y4urL69FzLXMfW/hoSChlsA0WSj4IEFEyaC/bwVQTJFq9qStcRPTwf18G1rwsEQB1TlKDvlPIFA== + dependencies: + "@leafygreen-ui/emotion" "^4.0.7" + lodash "^4.17.21" + "@leafygreen-ui/inline-definition@6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@leafygreen-ui/inline-definition/-/inline-definition-6.0.0.tgz#44632ced7f7e053575390923ec9a95cfc0e3842d" @@ -3316,16 +3324,25 @@ lodash "^4.17.21" prop-types "^15.7.2" -"@leafygreen-ui/loading-indicator@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@leafygreen-ui/loading-indicator/-/loading-indicator-2.0.0.tgz#21f6d81ff43e1dd6339f06a1504f4bf9fcfa6307" - integrity sha512-YaPe2meAZaGGRFCwWNpVdBEu8jU81/Sq9BEJD7xRNV6+CPMhe/8nw7OOOozNo+W/o9yzD/25KNT6tbXJZqGfOA== +"@leafygreen-ui/lib@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/lib/-/lib-11.0.0.tgz#dde085e103adc8650699785407650cef61cedd40" + integrity sha512-sHkY/MOwRQDc9qAR1awreW0dP+6ELueJJd4JCJmi6XYbdL0wDotFwsWfCwkL+N6cFbE1e+xBQtFLB6T1+58+iQ== dependencies: - "@leafygreen-ui/emotion" "^4.0.4" - "@leafygreen-ui/lib" "^10.4.0" - "@leafygreen-ui/palette" "^4.0.4" - "@leafygreen-ui/tokens" "^2.1.1" - "@leafygreen-ui/typography" "^16.5.1" + "@storybook/csf" "^0.1.0" + lodash "^4.17.21" + prop-types "^15.7.2" + +"@leafygreen-ui/loading-indicator@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/loading-indicator/-/loading-indicator-2.0.5.tgz#a961ac1da31346aab14a15c3f1efa84226af2ad4" + integrity sha512-46qAwxxApQUPCLDwtWdrqZiicn6Zdp/kuRatxq3c5Xgxackt/Z0obJmIhUC4hD4Ir3r87SbAE49Ucy8fgJ/5BQ== + dependencies: + "@leafygreen-ui/emotion" "^4.0.7" + "@leafygreen-ui/lib" "^11.0.0" + "@leafygreen-ui/palette" "^4.0.7" + "@leafygreen-ui/tokens" "^2.1.4" + "@leafygreen-ui/typography" "^17.0.0" react-lottie-player "^1.5.4" "@leafygreen-ui/marketing-modal@^4.0.5": @@ -3467,6 +3484,11 @@ resolved "https://registry.yarnpkg.com/@leafygreen-ui/polymorphic/-/polymorphic-1.3.5.tgz#231fe35ac1c291d81bc642c5a9dbd9f23737522d" integrity sha512-JoWk/d/siMAcABcz330dXXXKEhxntkmfNb4nbj4GEgmx15nVE9zsW1KvqMQwTdq1gfym9Wc/Ldrkop2JBUoERw== +"@leafygreen-ui/polymorphic@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/polymorphic/-/polymorphic-1.3.6.tgz#9df179df9176a5c1eaa1120bc22a4cc5356f3ed2" + integrity sha512-ZJqrYNAAO/CLgl3vtl01jQl2xz6pvzPRMEDqOgCykEn2/vk6wZUOJJ4FVK0cbLZuzwvKixbrTgOSw4WrF19sKg== + "@leafygreen-ui/popover@11.0.1": version "11.0.1" resolved "https://registry.yarnpkg.com/@leafygreen-ui/popover/-/popover-11.0.1.tgz#864fb3d39cab2e98b600bd1b5bf930f3592af188" @@ -3883,6 +3905,18 @@ "@leafygreen-ui/polymorphic" "^1.3.5" "@leafygreen-ui/tokens" "^2.1.4" +"@leafygreen-ui/typography@^17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/typography/-/typography-17.0.0.tgz#2f4c098a5e0aa853d796434880884ecf605d8432" + integrity sha512-ECGA/IgueeRvh5en9iTdc0xmzS8sklktNHp0YBdN+Q/XKzRkY6W2ewAESfmyQibb9G8AS2rXrEJ1pOF+rfC6EA== + dependencies: + "@leafygreen-ui/emotion" "^4.0.7" + "@leafygreen-ui/icon" "^11.22.2" + "@leafygreen-ui/lib" "^11.0.0" + "@leafygreen-ui/palette" "^4.0.7" + "@leafygreen-ui/polymorphic" "^1.3.6" + "@leafygreen-ui/tokens" "^2.1.4" + "@mdx-js/react@^2.1.5": version "2.3.0" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-2.3.0.tgz#4208bd6d70f0d0831def28ef28c26149b03180b3" From b910281be6f964b9c51f6d02903eeb574de05604 Mon Sep 17 00:00:00 2001 From: Malik Hadjri <19805673+hadjri@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:49:08 -0400 Subject: [PATCH 4/6] EVG-20650 Add unscheduleDownstreamVersions to Spruce (#2020) --- .../SpruceForm/Widgets/LeafyGreenWidgets.tsx | 3 ++- src/components/SpruceForm/Widgets/types.ts | 1 + .../fragments/projectSettings/projectTriggers.graphql | 2 ++ src/gql/generated/types.ts | 11 +++++++++++ src/pages/distroSettings/tabs/testData.ts | 2 +- .../tabs/ProjectTriggersTab/getFormSchema.ts | 10 ++++++++++ .../tabs/ProjectTriggersTab/transformers.test.ts | 2 ++ .../tabs/ProjectTriggersTab/transformers.ts | 1 + .../projectSettings/tabs/ProjectTriggersTab/types.ts | 1 + src/pages/projectSettings/tabs/testData.ts | 1 + 10 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/components/SpruceForm/Widgets/LeafyGreenWidgets.tsx b/src/components/SpruceForm/Widgets/LeafyGreenWidgets.tsx index acc89574e9..1d080e1639 100644 --- a/src/components/SpruceForm/Widgets/LeafyGreenWidgets.tsx +++ b/src/components/SpruceForm/Widgets/LeafyGreenWidgets.tsx @@ -109,6 +109,7 @@ export const LeafyGreenCheckBox: React.FC = ({ value, }) => { const { + bold, customLabel, "data-cy": dataCy, description, @@ -118,7 +119,7 @@ export const LeafyGreenCheckBox: React.FC = ({ return ( | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -3827,6 +3828,7 @@ export type RepoSettingsFieldsFragment = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }>; workstationConfig: { __typename?: "RepoWorkstationConfig"; @@ -4217,6 +4219,7 @@ export type ProjectEventSettingsFragment = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -4316,6 +4319,7 @@ export type ProjectTriggersSettingsFragment = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; }; @@ -4331,6 +4335,7 @@ export type RepoTriggersSettingsFragment = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }>; }; @@ -6591,6 +6596,7 @@ export type ProjectEventLogsQuery = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -6801,6 +6807,7 @@ export type ProjectEventLogsQuery = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -7026,6 +7033,7 @@ export type ProjectSettingsQuery = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -7275,6 +7283,7 @@ export type RepoEventLogsQuery = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -7485,6 +7494,7 @@ export type RepoEventLogsQuery = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }> | null; parsleyFilters?: Array<{ __typename?: "ParsleyFilter"; @@ -7700,6 +7710,7 @@ export type RepoSettingsQuery = { project: string; status: string; taskRegex: string; + unscheduleDownstreamVersions?: boolean | null; }>; workstationConfig: { __typename?: "RepoWorkstationConfig"; diff --git a/src/pages/distroSettings/tabs/testData.ts b/src/pages/distroSettings/tabs/testData.ts index 6cc5bdc1e5..1ecdc6de0d 100644 --- a/src/pages/distroSettings/tabs/testData.ts +++ b/src/pages/distroSettings/tabs/testData.ts @@ -17,7 +17,7 @@ import { const distroData: DistroQuery["distro"] = { __typename: "Distro", aliases: ["rhel71-power8", "rhel71-power8-build"], - arch: Arch.LinuxPpc_64Bit, + arch: Arch.Linux_64Bit, authorizedKeysFile: "", bootstrapSettings: { clientDir: "/home/evg/client", diff --git a/src/pages/projectSettings/tabs/ProjectTriggersTab/getFormSchema.ts b/src/pages/projectSettings/tabs/ProjectTriggersTab/getFormSchema.ts index 6fd8d130b9..d32ff0706a 100644 --- a/src/pages/projectSettings/tabs/ProjectTriggersTab/getFormSchema.ts +++ b/src/pages/projectSettings/tabs/ProjectTriggersTab/getFormSchema.ts @@ -94,6 +94,10 @@ export const getFormSchema = ( title: "Alias", default: "", }, + unscheduleDownstreamVersions: { + type: "boolean" as "boolean", + title: "Unschedule Downstream Versions", + }, }, }, } @@ -148,6 +152,12 @@ export const getFormSchema = ( "Patch alias to filter variants/tasks in this project.", "ui:optional": true, }, + unscheduleDownstreamVersions: { + "ui:description": + "Downstream versions created by this trigger will be deactivated by default", + "ui:optional": true, + "ui:bold": true, + }, }, }, repoData: { diff --git a/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.test.ts b/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.test.ts index 51fca06e4a..9e6f75d8f3 100644 --- a/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.test.ts +++ b/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.test.ts @@ -55,6 +55,7 @@ const repoForm: ProjectTriggersFormState = { project: "spruce", status: "succeeded", taskRegex: ".*", + unscheduleDownstreamVersions: true, }, ], }; @@ -72,6 +73,7 @@ const repoResult: Pick = { project: "spruce", status: "succeeded", taskRegex: ".*", + unscheduleDownstreamVersions: true, }, ], }, diff --git a/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.ts b/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.ts index d9ae756d44..4c1755015a 100644 --- a/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.ts +++ b/src/pages/projectSettings/tabs/ProjectTriggersTab/transformers.ts @@ -50,6 +50,7 @@ export const formToGql = (({ triggers, triggersOverride }, projectId) => ({ dateCutoff: trigger.dateCutoff, configFile: trigger.configFile, alias: trigger.alias, + unscheduleDownstreamVersions: trigger.unscheduleDownstreamVersions, })) : null, }, diff --git a/src/pages/projectSettings/tabs/ProjectTriggersTab/types.ts b/src/pages/projectSettings/tabs/ProjectTriggersTab/types.ts index 912c211e69..ec8d880601 100644 --- a/src/pages/projectSettings/tabs/ProjectTriggersTab/types.ts +++ b/src/pages/projectSettings/tabs/ProjectTriggersTab/types.ts @@ -10,6 +10,7 @@ type FormTrigger = { configFile: string; alias: string; displayTitle?: string; + unscheduleDownstreamVersions: boolean; }; export type ProjectTriggersFormState = { diff --git a/src/pages/projectSettings/tabs/testData.ts b/src/pages/projectSettings/tabs/testData.ts index 41d1e63b35..84dc54f985 100644 --- a/src/pages/projectSettings/tabs/testData.ts +++ b/src/pages/projectSettings/tabs/testData.ts @@ -243,6 +243,7 @@ const repoBase: RepoSettingsQuery["repoSettings"] = { taskRegex: ".*", configFile: ".evergreen.yml", alias: "my-alias", + unscheduleDownstreamVersions: true, }, ], periodicBuilds: [ From 9af9f1ae006ef2fd2acbb8f129eb5bc38189e3e4 Mon Sep 17 00:00:00 2001 From: minnakt Date: Wed, 6 Sep 2023 11:28:18 -0400 Subject: [PATCH 5/6] v3.0.133 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 561e869417..0472d00f1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "spruce", - "version": "3.0.132", + "version": "3.0.133", "private": true, "scripts": { "bootstrap-logkeeper": "./scripts/bootstrap-logkeeper.sh", From 55af81b0fa5cfb94a6959eac086e3777f78e5ec7 Mon Sep 17 00:00:00 2001 From: Sophie Stadler Date: Wed, 6 Sep 2023 15:15:05 -0400 Subject: [PATCH 6/6] EVG-19995: Use V11 Table Adapter (#1882) --- cypress/integration/job_logs.ts | 2 +- package.json | 2 +- .../Settings/EventLog/EventDiffTable.tsx | 91 +++++++++++-------- src/pages/container/EventsTable/index.tsx | 55 +++++++---- src/pages/host/HostTable.tsx | 54 +++++++---- src/pages/jobLogs/JobLogsTable.tsx | 61 ++++++++----- yarn.lock | 89 ++++++++++++++---- 7 files changed, 232 insertions(+), 122 deletions(-) diff --git a/cypress/integration/job_logs.ts b/cypress/integration/job_logs.ts index da40691b62..d7ebe7e4cb 100644 --- a/cypress/integration/job_logs.ts +++ b/cypress/integration/job_logs.ts @@ -13,7 +13,7 @@ describe("Job logs page", () => { cy.get("th") .should("have.length", 1) .then((th) => { - cy.wrap(th).should("have.attr", "aria-sort", "none"); + cy.wrap(th).should("not.have.attr", "aria-sort"); }); cy.dataCy("complete-test-logs-link") diff --git a/package.json b/package.json index 0472d00f1b..a6eb5ef4c8 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "@leafygreen-ui/select": "10.2.0", "@leafygreen-ui/side-nav": "13.0.2", "@leafygreen-ui/table": "10.0.1", - "@leafygreen-ui/table/new": "npm:@leafygreen-ui/table@12.0.0", + "@leafygreen-ui/table/new": "npm:@leafygreen-ui/table@12.0.10", "@leafygreen-ui/tabs": "11.0.4", "@leafygreen-ui/text-area": "8.0.4", "@leafygreen-ui/text-input": "12.1.0", diff --git a/src/components/Settings/EventLog/EventDiffTable.tsx b/src/components/Settings/EventLog/EventDiffTable.tsx index b9f4b3ee2d..2dbf4035cc 100644 --- a/src/components/Settings/EventLog/EventDiffTable.tsx +++ b/src/components/Settings/EventLog/EventDiffTable.tsx @@ -1,6 +1,13 @@ import styled from "@emotion/styled"; import Badge, { Variant } from "@leafygreen-ui/badge"; -import { Table, TableHeader, Row, Cell } from "@leafygreen-ui/table"; +import { + V10Table as Table, + V10TableHeader as TableHeader, + V10Row as Row, + V10Cell as Cell, + V11Adapter, + V10HeaderRow as HeaderRow, +} from "@leafygreen-ui/table/new"; import { fontFamilies } from "@leafygreen-ui/tokens"; import { getEventDiffLines } from "./EventLogDiffs"; import { Event, EventDiffLine, EventValue } from "./types"; @@ -11,45 +18,49 @@ type TableProps = { }; export const EventDiffTable: React.FC = ({ after, before }) => ( - datum.key} - />, - JSON.stringify(datum.before)} - />, - JSON.stringify(datum.after)} - />, - ]} - > - {({ datum }) => ( - - - {datum.key} - - - {renderEventValue(datum.before)} - - - {renderEventValue(datum.after) === null ? ( - Deleted - ) : ( - {renderEventValue(datum.after)} - )} - - - )} -
+ + + datum.key} + /> + JSON.stringify(datum.before)} + /> + JSON.stringify(datum.after)} + /> + + } + > + {({ datum }) => ( + + + {datum.key} + + + {renderEventValue(datum.before)} + + + {renderEventValue(datum.after) === null ? ( + Deleted + ) : ( + {renderEventValue(datum.after)} + )} + + + )} +
+
); const CellText = styled.span` diff --git a/src/pages/container/EventsTable/index.tsx b/src/pages/container/EventsTable/index.tsx index 9b64035746..1a1de2f747 100644 --- a/src/pages/container/EventsTable/index.tsx +++ b/src/pages/container/EventsTable/index.tsx @@ -1,6 +1,14 @@ +import { useMemo } from "react"; import { useQuery } from "@apollo/client"; import styled from "@emotion/styled"; -import { Table, TableHeader, Row, Cell } from "@leafygreen-ui/table"; +import { + V10Table as Table, + V10TableHeader as TableHeader, + V10Row as Row, + V10Cell as Cell, + V10HeaderRow as HeaderRow, + V11Adapter, +} from "@leafygreen-ui/table/new"; import { Subtitle, SubtitleProps } from "@leafygreen-ui/typography"; import { useLocation, useParams } from "react-router-dom"; import PageSizeSelector, { @@ -37,7 +45,12 @@ const EventsTable: React.FC<{}> = () => { ); }, }); - const { count, eventLogEntries } = podEventsData?.pod.events ?? {}; + + const { count, eventLogEntries } = useMemo( + () => podEventsData?.pod.events ?? { eventLogEntries: [], count: 0 }, + [podEventsData?.pod?.events] + ); + return ( @@ -56,23 +69,27 @@ const EventsTable: React.FC<{}> = () => { - , - , - ]} - > - {({ datum }) => ( - - - {getDateCopy(datum.timestamp)} - - {getEventCopy(datum)} - - )} -
+ + + + + + } + > + {({ datum }) => ( + + + {getDateCopy(datum.timestamp)} + + {getEventCopy(datum)} + + )} +
+
); }; diff --git a/src/pages/host/HostTable.tsx b/src/pages/host/HostTable.tsx index 81de19769a..9183ba05a4 100644 --- a/src/pages/host/HostTable.tsx +++ b/src/pages/host/HostTable.tsx @@ -1,6 +1,14 @@ +import { useMemo } from "react"; import { ApolloError } from "@apollo/client"; import styled from "@emotion/styled"; -import { Table, TableHeader, Row, Cell } from "@leafygreen-ui/table"; +import { + V10Table as Table, + V10TableHeader as TableHeader, + V10HeaderRow as HeaderRow, + V10Row as Row, + V10Cell as Cell, + V11Adapter, +} from "@leafygreen-ui/table/new"; import { Subtitle, SubtitleProps } from "@leafygreen-ui/typography"; import { useHostsTableAnalytics } from "analytics"; import PageSizeSelector, { @@ -25,8 +33,10 @@ export const HostTable: React.FC<{ const hostsTableAnalytics = useHostsTableAnalytics(isHostPage); const setPageSize = usePageSizeSelector(); const getDateCopy = useDateFormat(); - const hostEvents = eventData?.hostEvents; - const logEntries = hostEvents?.eventLogEntries; + const logEntries = useMemo( + () => eventData?.hostEvents?.eventLogEntries ?? [], + [eventData?.hostEvents?.eventLogEntries] + ); const handlePageSizeChange = (pageSize: number): void => { setPageSize(pageSize); @@ -51,23 +61,27 @@ export const HostTable: React.FC<{ /> - , - , - ]} - > - {({ datum }) => ( - - - {getDateCopy(datum.timestamp)} - - {getHostEventString(datum.eventType, datum.data)} - - )} -
+ + + + + + } + > + {({ datum }) => ( + + + {getDateCopy(datum.timestamp)} + + {getHostEventString(datum.eventType, datum.data)} + + )} +
+
); }; diff --git a/src/pages/jobLogs/JobLogsTable.tsx b/src/pages/jobLogs/JobLogsTable.tsx index 799e46d217..402e3e3663 100644 --- a/src/pages/jobLogs/JobLogsTable.tsx +++ b/src/pages/jobLogs/JobLogsTable.tsx @@ -1,4 +1,11 @@ -import { Table, TableHeader, Row, Cell } from "@leafygreen-ui/table"; +import { + V10Table as Table, + V10TableHeader as TableHeader, + V10HeaderRow as HeaderRow, + V10Row as Row, + V10Cell as Cell, + V11Adapter, +} from "@leafygreen-ui/table/new"; import { Link } from "@leafygreen-ui/typography"; import { useJobLogsAnalytics } from "analytics/joblogs/useJobLogsAnalytics"; import { TablePlaceholder } from "components/Table/TablePlaceholder"; @@ -17,29 +24,35 @@ export const JobLogsTable: React.FC = ({ const { sendEvent } = useJobLogsAnalytics(); return ( <> - ]} - > - {({ datum }) => ( - - - { - sendEvent({ - name: "Clicked Parsley test log link", - buildId, - }); - }} - hideExternalIcon - > - {datum.name} - - - - )} -
+ + + + + } + > + {({ datum }) => ( + + + { + sendEvent({ + name: "Clicked Parsley test log link", + buildId, + }); + }} + hideExternalIcon + > + {datum.name} + + + + )} +
+
{tests.length === 0 && ( )} diff --git a/yarn.lock b/yarn.lock index 61f3fd97ee..3fbb6d9243 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2936,6 +2936,15 @@ "@leafygreen-ui/hooks" "^7.7.8" "@leafygreen-ui/lib" "^10.4.3" +"@leafygreen-ui/a11y@^1.4.8", "@leafygreen-ui/a11y@^1.4.9": + version "1.4.9" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/a11y/-/a11y-1.4.9.tgz#e85a395ba85974b02b6224cf2063e833c29001e1" + integrity sha512-VHg/mqJ9VUSOvwnceA0dkLR2DUZbaTygZs5kBqn5f+55SmKDyksST3ecILygvVldETLFFYnQSOFWIA7h3kWWVQ== + dependencies: + "@leafygreen-ui/emotion" "^4.0.7" + "@leafygreen-ui/hooks" "^8.0.0" + "@leafygreen-ui/lib" "^11.0.0" + "@leafygreen-ui/badge@8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@leafygreen-ui/badge/-/badge-8.0.2.tgz#2928d5a3877644b83f7459a008c03361cb2c744b" @@ -2969,6 +2978,11 @@ resolved "https://registry.yarnpkg.com/@leafygreen-ui/box/-/box-3.1.7.tgz#830150ed836cd941cfb2787264a3d1c16f1fe648" integrity sha512-7uW6pxJaxKES8/ijQOcNSL0HpRAiBfaBdFamUAP+TaU9vvllG4cnzZlAfLdNKTWufJy5uWp7eNoE//7KPFLj+w== +"@leafygreen-ui/box@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/box/-/box-3.1.8.tgz#33e6dedbe3ee510ce88ffade0a3a9e68a96103a9" + integrity sha512-qfjwhrie+mUrS2H+Qp98iQKBPoZtNpFmlGBYgg59sVOzotFvyvqwxlf/JcaNGo+v7nyOhC2XAHui0ywf9cScKw== + "@leafygreen-ui/button@21.0.0": version "21.0.0" resolved "https://registry.yarnpkg.com/@leafygreen-ui/button/-/button-21.0.0.tgz#cd3cf92535251fe19952ab202952cc219b1e34fb" @@ -3084,7 +3098,21 @@ "@leafygreen-ui/typography" "^16.0.0" react-transition-group "^4.4.1" -"@leafygreen-ui/checkbox@^12.0.4", "@leafygreen-ui/checkbox@^12.0.8": +"@leafygreen-ui/checkbox@^12.0.18": + version "12.0.18" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/checkbox/-/checkbox-12.0.18.tgz#13e5166235113db1731d70c4e01231ece726460f" + integrity sha512-y9ikeNodJeKvqJ+Y0HYMAe8zw4wgdhsbEd56CqkEjsalu5dAsghYLw3EUBzy0vcTZOVyB9jrq3lU7JIeUdPMCg== + dependencies: + "@leafygreen-ui/a11y" "^1.4.9" + "@leafygreen-ui/emotion" "^4.0.7" + "@leafygreen-ui/hooks" "^8.0.0" + "@leafygreen-ui/lib" "^11.0.0" + "@leafygreen-ui/palette" "^4.0.7" + "@leafygreen-ui/tokens" "^2.2.0" + "@leafygreen-ui/typography" "^17.0.0" + react-transition-group "^4.4.5" + +"@leafygreen-ui/checkbox@^12.0.4": version "12.0.12" resolved "https://registry.yarnpkg.com/@leafygreen-ui/checkbox/-/checkbox-12.0.12.tgz#837dd5add2675f39dd21ce3b4fbf2782ac12a039" integrity sha512-4mOQAmSlnaSmd5U6Sk59+L8cWd0DCfY33w1PxezXR5un65FLXSnHBPdHgk4+lOZNrkG19pKBo36AKhfWhC8FzQ== @@ -3212,6 +3240,13 @@ dependencies: lodash "^4.17.21" +"@leafygreen-ui/hooks@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/hooks/-/hooks-8.0.0.tgz#10ff3335ab7690cc040ad930fac3097da66fe810" + integrity sha512-SpcjqRlPsRW5DsfqGdjf11N0f3JJw+bl5dOlp43Biz0RuJHJtt0h8b0D5Ig5dCn0jBDNiGNazG2lshX+btd9iA== + dependencies: + lodash "^4.17.21" + "@leafygreen-ui/icon-button@15.0.5": version "15.0.5" resolved "https://registry.yarnpkg.com/@leafygreen-ui/icon-button/-/icon-button-15.0.5.tgz#4c9e6a8388c471262c98bcb52b2d95c061625eea" @@ -3238,6 +3273,19 @@ "@leafygreen-ui/palette" "^4.0.7" "@leafygreen-ui/tokens" "^2.1.4" +"@leafygreen-ui/icon-button@^15.0.17": + version "15.0.17" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/icon-button/-/icon-button-15.0.17.tgz#58e1dc09dcca00793efc5d02d652945bc8717fef" + integrity sha512-2gKZKLwGDoyhOmiYvSDRssk1OU/jSraIU4prT40lLgqZFCmA2nqDr7Hfb+W62QNvEGchoXNOXzm8KG/yrJBl2Q== + dependencies: + "@leafygreen-ui/a11y" "^1.4.8" + "@leafygreen-ui/box" "^3.1.8" + "@leafygreen-ui/emotion" "^4.0.7" + "@leafygreen-ui/icon" "^11.22.2" + "@leafygreen-ui/lib" "^11.0.0" + "@leafygreen-ui/palette" "^4.0.7" + "@leafygreen-ui/tokens" "^2.1.4" + "@leafygreen-ui/icon@11.12.1": version "11.12.1" resolved "https://registry.yarnpkg.com/@leafygreen-ui/icon/-/icon-11.12.1.tgz#8ec2a8cd209c07e5e9a3b5a8f42b74afa4364573" @@ -3256,7 +3304,7 @@ lodash "^4.17.21" meow "^6.1.0" -"@leafygreen-ui/icon@^11.22.2": +"@leafygreen-ui/icon@^11.22.2", "@leafygreen-ui/icon@^11.23.0": version "11.23.0" resolved "https://registry.yarnpkg.com/@leafygreen-ui/icon/-/icon-11.23.0.tgz#d6fdae3386f79ee061a991d32e2ff807611af85c" integrity sha512-TaK9mlQO2K1Y4urL69FzLXMfW/hoSChlsA0WSj4IEFEyaC/bwVQTJFq9qStcRPTwf18G1rwsEQB1TlKDvlPIFA== @@ -3678,26 +3726,26 @@ polished "^4.2.2" react-transition-group "^4.4.5" -"@leafygreen-ui/table/new@npm:@leafygreen-ui/table@12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@leafygreen-ui/table/-/table-12.0.0.tgz#5cda7bfbe3b6154669402f1b2821be0f4ea46d20" - integrity sha512-h1R3t6BFbfRg9ee8SOQlt+Guv/L5JrKMWym8asSXZPQORufFUHBUXkosJCczzJwBHlX/K29S10xuks+mFncbOg== +"@leafygreen-ui/table/new@npm:@leafygreen-ui/table@12.0.10": + version "12.0.10" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/table/-/table-12.0.10.tgz#b6d6a1d55795cc428a1199e8a67938e5b32ed162" + integrity sha512-hooCstSi79y7t+Wj0DT4gdgegwp56DuqnBGBvXptpf/zXVoLXMCkYCZQbTxio0QMMH+seNijVEvu5m9SL0HVfA== dependencies: - "@leafygreen-ui/checkbox" "^12.0.8" - "@leafygreen-ui/emotion" "^4.0.4" - "@leafygreen-ui/hooks" "^7.7.1" - "@leafygreen-ui/icon" "^11.13.1" - "@leafygreen-ui/icon-button" "^15.0.10" - "@leafygreen-ui/lib" "^10.3.3" - "@leafygreen-ui/palette" "^4.0.4" - "@leafygreen-ui/polymorphic" "^1.3.1" - "@leafygreen-ui/tokens" "^2.0.3" - "@leafygreen-ui/typography" "^16.3.0" + "@leafygreen-ui/checkbox" "^12.0.18" + "@leafygreen-ui/emotion" "^4.0.7" + "@leafygreen-ui/hooks" "^8.0.0" + "@leafygreen-ui/icon" "^11.23.0" + "@leafygreen-ui/icon-button" "^15.0.17" + "@leafygreen-ui/lib" "^11.0.0" + "@leafygreen-ui/palette" "^4.0.7" + "@leafygreen-ui/polymorphic" "^1.3.6" + "@leafygreen-ui/tokens" "^2.2.0" + "@leafygreen-ui/typography" "^17.0.0" "@tanstack/react-table" "^8.7.3" lodash "^4.17.21" polished "^4.2.2" react-keyed-flatten-children "^1.3.0" - react-transition-group "^4.4.1" + react-transition-group "^4.4.5" react-virtual "^2.10.4" "@leafygreen-ui/table@10.0.1": @@ -3821,6 +3869,13 @@ dependencies: "@leafygreen-ui/palette" "^4.0.7" +"@leafygreen-ui/tokens@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@leafygreen-ui/tokens/-/tokens-2.2.0.tgz#8cae3fc84bd54e9d579ab6bd2a43fad3f9050fd9" + integrity sha512-hmRT1Sz6J9tv84ty1YPs1zmFewOCt/TghfbR0So5UtA5S2q4sVqjPZEpSvLmlxmtXIyl77fjU+uZYHpW2EID6w== + dependencies: + "@leafygreen-ui/palette" "^4.0.7" + "@leafygreen-ui/tooltip@9.1.6": version "9.1.6" resolved "https://registry.yarnpkg.com/@leafygreen-ui/tooltip/-/tooltip-9.1.6.tgz#0a750a3d043a0049b5c74bd317aa026073e7a377"