diff --git a/.prettierrc b/.prettierrc index 3ad6ff50e58..6b742b20e6d 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,5 +5,5 @@ "semi": true, "singleQuote": false, "printWidth": 120, - "jsxBracketSameLine": true + "bracketSameLine": true } diff --git a/app/alert/alert.css b/app/alert/alert.css index 21dff428247..7e789d25f8c 100644 --- a/app/alert/alert.css +++ b/app/alert/alert.css @@ -5,7 +5,9 @@ left: 50%; margin-top: 32px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.27), 0 3px 5px rgba(0, 0, 0, 0.12); + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.27), + 0 3px 5px rgba(0, 0, 0, 0.12); } .alert-banner.hidden { diff --git a/app/auth/auth_service.ts b/app/auth/auth_service.ts index dcb3367d9d2..8706f18e8b6 100644 --- a/app/auth/auth_service.ts +++ b/app/auth/auth_service.ts @@ -98,10 +98,13 @@ export class AuthService { const sessionDuration = Number(this.getCookie("Session-Duration-Seconds") || 0); const refreshFrequencySeconds = sessionDuration ? sessionDuration / 2 : TOKEN_REFRESH_INTERVAL_SECONDS; console.info(`Refreshing access token every ${refreshFrequencySeconds} seconds.`); - setInterval(() => { - if (this.user) this.refreshToken(); - // Calling setInterval with a number larger than a 32 bit int causes refresh spamming - }, Math.min(refreshFrequencySeconds * 1000, 86400000)); // One day in ms + setInterval( + () => { + if (this.user) this.refreshToken(); + // Calling setInterval with a number larger than a 32 bit int causes refresh spamming + }, + Math.min(refreshFrequencySeconds * 1000, 86400000) + ); // One day in ms } refreshToken() { diff --git a/app/components/dialog/dialog.css b/app/components/dialog/dialog.css index 5a478fd2169..1fdb9d00f7c 100644 --- a/app/components/dialog/dialog.css +++ b/app/components/dialog/dialog.css @@ -13,7 +13,9 @@ width: 640px; background: white; border-radius: 8px; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.27), 0 3px 5px rgba(0, 0, 0, 0.12); + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.27), + 0 3px 5px rgba(0, 0, 0, 0.12); padding: 16px 0; --dialog-side-padding: 24px; diff --git a/app/components/popup/popup.css b/app/components/popup/popup.css index 6a61b066650..91bb7192cec 100644 --- a/app/components/popup/popup.css +++ b/app/components/popup/popup.css @@ -16,7 +16,9 @@ border-radius: 4px; background: white; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.27), 0 3px 5px rgba(0, 0, 0, 0.12); + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.27), + 0 3px 5px rgba(0, 0, 0, 0.12); } .popup.anchor-right { diff --git a/app/components/search_bar/search_bar.css b/app/components/search_bar/search_bar.css index ca88ab80073..859863d5e0f 100644 --- a/app/components/search_bar/search_bar.css +++ b/app/components/search_bar/search_bar.css @@ -19,7 +19,9 @@ .search-bar-container.focused .search-bar { background-color: #fff; border: 1px solid #e5e7eb; - box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); + box-shadow: + 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -2px rgba(0, 0, 0, 0.1); } .search-bar-results { diff --git a/app/invocation/invocation.css b/app/invocation/invocation.css index 54d5a8a4ccf..c364fed3d58 100644 --- a/app/invocation/invocation.css +++ b/app/invocation/invocation.css @@ -1140,11 +1140,15 @@ .invocation-query-graph-card { padding: 0; background: #fafafa; - box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.2), 0px 1px 6px rgba(0, 0, 0, 0.1); + box-shadow: + 0px 1px 4px rgba(0, 0, 0, 0.2), + 0px 1px 6px rgba(0, 0, 0, 0.1); } .invocation-query-graph-card:hover { - box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.2), 0px 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: + 0px 2px 6px rgba(0, 0, 0, 0.2), + 0px 1px 10px rgba(0, 0, 0, 0.1); } svg.invocation-query-graph { diff --git a/app/invocation/invocation.tsx b/app/invocation/invocation.tsx index cd8e5c525a2..424f0b72450 100644 --- a/app/invocation/invocation.tsx +++ b/app/invocation/invocation.tsx @@ -399,7 +399,7 @@ export default class InvocationComponent extends React.Component { model={this.state.model} invocationId={this.props.invocationId} tab={this.props.tab} - files={completed?.buildEvent ? this.state.model.getFiles(completed.buildEvent) ?? [] : []} + files={completed?.buildEvent ? (this.state.model.getFiles(completed.buildEvent) ?? []) : []} configuredEvent={this.state.model.configuredMap.get(targetLabel)} skippedEvent={this.state.model.skippedMap.get(targetLabel)} completedEvent={completed} diff --git a/app/invocation/invocation_action_card.tsx b/app/invocation/invocation_action_card.tsx index 33f7ea83000..23450e04b7a 100644 --- a/app/invocation/invocation_action_card.tsx +++ b/app/invocation/invocation_action_card.tsx @@ -900,8 +900,8 @@ export default class InvocationActionCardComponent extends React.Component {this.state.executeResponse && ( diff --git a/app/invocation/invocation_action_tree_node.tsx b/app/invocation/invocation_action_tree_node.tsx index f93e67ae320..4cdac1a8f05 100644 --- a/app/invocation/invocation_action_tree_node.tsx +++ b/app/invocation/invocation_action_tree_node.tsx @@ -77,15 +77,17 @@ export default class TreeNodeComponent extends React.Component { {expanded && (
- {this.props.treeShaToChildrenMap.get(digestString)?.map((child: TreeNode) => ( - - ))} + {this.props.treeShaToChildrenMap + .get(digestString) + ?.map((child: TreeNode) => ( + + ))}
)} diff --git a/app/invocation/invocation_cache_card.tsx b/app/invocation/invocation_cache_card.tsx index f97602cf592..62ee80d1035 100644 --- a/app/invocation/invocation_cache_card.tsx +++ b/app/invocation/invocation_cache_card.tsx @@ -309,9 +309,7 @@ function renderBreakdown(data: any[] | undefined, title: string, subtitle: strin - {data?.map((_, index) => ( - - ))} + {data?.map((_, index) => )} diff --git a/app/invocation/invocation_targets_card.tsx b/app/invocation/invocation_targets_card.tsx index fbb26daa729..bc78ddef323 100644 --- a/app/invocation/invocation_targets_card.tsx +++ b/app/invocation/invocation_targets_card.tsx @@ -97,11 +97,13 @@ export default class TargetsCardComponent extends React.Component ))} - {this.props.pageSize && events.length > this.props.pageSize * this.state.numPages && !!this.state.numPages && ( -
- See more {this.props.presentVerb} -
- )} + {this.props.pageSize && + events.length > this.props.pageSize * this.state.numPages && + !!this.state.numPages && ( +
+ See more {this.props.presentVerb} +
+ )} ); diff --git a/app/picker/picker.css b/app/picker/picker.css index 14aeb38582c..b7b8d9623c0 100644 --- a/app/picker/picker.css +++ b/app/picker/picker.css @@ -3,7 +3,9 @@ } .picker { - box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); + box-shadow: + 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -2px rgba(0, 0, 0, 0.1); background-color: #fff; max-width: 450px; width: 80vw; diff --git a/app/root/root.css b/app/root/root.css index 6cdd30186de..1ae9a2dc0d8 100644 --- a/app/root/root.css +++ b/app/root/root.css @@ -1725,7 +1725,9 @@ code .comment { margin-top: 4px; border-radius: 8px; border-top: 0; - box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1), 0px 1px 6px rgba(0, 0, 0, 0.05); + box-shadow: + 0px 1px 4px rgba(0, 0, 0, 0.1), + 0px 1px 6px rgba(0, 0, 0, 0.05); } .dense .card .details { diff --git a/app/service/rpc_service.ts b/app/service/rpc_service.ts index 014051324e9..c28a798ac99 100644 --- a/app/service/rpc_service.ts +++ b/app/service/rpc_service.ts @@ -563,28 +563,24 @@ type RpcMethodNames = keyof Omit = protobufjs.rpc.Service & - { - // Loop over all methods in the service, except for the ones inherited from the base - // service (we don't want to modify those at all). - [MethodName in RpcMethodNames]: Service[MethodName] extends BaseUnaryRpcMethod< - infer Request, - infer Response - > - ? /* Unary RPC: transform the generated method's return type from Promise to CancelablePromise. */ - UnaryRpcMethod - : /* Server-streaming RPC: keep the original method as-is. */ - Service[MethodName]; - }; +type CancelableService = protobufjs.rpc.Service & { + // Loop over all methods in the service, except for the ones inherited from the base + // service (we don't want to modify those at all). + [MethodName in RpcMethodNames]: Service[MethodName] extends BaseUnaryRpcMethod + ? /* Unary RPC: transform the generated method's return type from Promise to CancelablePromise. */ + UnaryRpcMethod + : /* Server-streaming RPC: keep the original method as-is. */ + Service[MethodName]; +}; type FetchPromiseType = T extends "" ? string : T extends "text" - ? string - : T extends "arraybuffer" - ? ArrayBuffer - : T extends "stream" - ? Response - : never; + ? string + : T extends "arraybuffer" + ? ArrayBuffer + : T extends "stream" + ? Response + : never; export default new RpcService(); diff --git a/app/target/action_card.tsx b/app/target/action_card.tsx index bfada5c9ddc..270865bc6d5 100644 --- a/app/target/action_card.tsx +++ b/app/target/action_card.tsx @@ -199,9 +199,7 @@ export default class ActionCardComponent extends React.Component { {action?.type} command exited with code {action?.exitCode}
- {action?.commandLine.map((commandLineArg) => ( -
{commandLineArg}
- ))} + {action?.commandLine.map((commandLineArg) =>
{commandLineArg}
)}
diff --git a/app/target/target_test_document_card.tsx b/app/target/target_test_document_card.tsx index bed6d95e527..884711ed1fb 100644 --- a/app/target/target_test_document_card.tsx +++ b/app/target/target_test_document_card.tsx @@ -34,8 +34,9 @@ export default class TargetTestDocumentCardComponent extends React.Component log.name == "test.xml") - ?.uri; + let testXMLUrl = this.props.buildEvent?.testResult?.testActionOutput.find( + (log: any) => log.name == "test.xml" + )?.uri; if (!testXMLUrl) { this.setState({ testDocument: undefined }); diff --git a/app/target/target_test_log_card.tsx b/app/target/target_test_log_card.tsx index 6da501f2ff6..158fc9a3fd2 100644 --- a/app/target/target_test_log_card.tsx +++ b/app/target/target_test_log_card.tsx @@ -89,8 +89,9 @@ export default class TargetTestLogCardComponent extends React.Component log.name == "test.log") - ?.uri; + let testLogUrl = this.props.buildEvent?.testResult?.testActionOutput.find( + (log: any) => log.name == "test.log" + )?.uri; if (!testLogUrl) { return; diff --git a/app/terminal/ansi.tsx b/app/terminal/ansi.tsx index 57dec48239f..285e7b8b19a 100644 --- a/app/terminal/ansi.tsx +++ b/app/terminal/ansi.tsx @@ -153,7 +153,8 @@ export default function parseAnsi(text: string): AnsiTextSpan[] { return linkSpans; } -const LINK_REGEX = /(http(s)?:\/\/)(www\.)?([-a-zA-Z0-9@:%._\+~#=]{2,256})(\.[a-z]{2,6}|:[0-9]+)\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g; +const LINK_REGEX = + /(http(s)?:\/\/)(www\.)?([-a-zA-Z0-9@:%._\+~#=]{2,256})(\.[a-z]{2,6}|:[0-9]+)\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g; function parseLinks(span: AnsiTextSpan): AnsiTextSpan[] { let matches = [...span.text.matchAll(LINK_REGEX)]; diff --git a/app/trace/trace_viewer_panel.ts b/app/trace/trace_viewer_panel.ts index 7287d21b95a..ab7ff189786 100644 --- a/app/trace/trace_viewer_panel.ts +++ b/app/trace/trace_viewer_panel.ts @@ -34,7 +34,11 @@ export default class Panel { filter = ""; - constructor(readonly model: PanelModel, readonly canvas: HTMLCanvasElement, private fontFamily: string) { + constructor( + readonly model: PanelModel, + readonly canvas: HTMLCanvasElement, + private fontFamily: string + ) { this.ctx = canvas.getContext("2d")!; this.container = canvas.parentElement!; } diff --git a/app/util/animation_loop.ts b/app/util/animation_loop.ts index e51095e5e40..65c0db39567 100644 --- a/app/util/animation_loop.ts +++ b/app/util/animation_loop.ts @@ -6,7 +6,10 @@ import { TimeDelta } from "./time_delta"; export class AnimationLoop { private dt = new TimeDelta(); - constructor(private callback: (dt: number) => void, private enabled_ = false) { + constructor( + private callback: (dt: number) => void, + private enabled_ = false + ) { if (enabled_) { this.start(); } diff --git a/app/util/async.ts b/app/util/async.ts index 047d304da8f..78449fc2dfc 100644 --- a/app/util/async.ts +++ b/app/util/async.ts @@ -11,7 +11,10 @@ export class CancelablePromise implements Promise { /** The parent promise in the chain. */ private parent: CancelablePromise | null = null; - constructor(private promise: PromiseLike, { oncancelled = undefined }: { oncancelled?: () => void } = {}) { + constructor( + private promise: PromiseLike, + { oncancelled = undefined }: { oncancelled?: () => void } = {} + ) { this.oncancelled = oncancelled; } diff --git a/app/util/errors.ts b/app/util/errors.ts index af105089b63..e16ae49c89f 100644 --- a/app/util/errors.ts +++ b/app/util/errors.ts @@ -11,7 +11,10 @@ export type ErrorCode = Omit; // (app.streaming_http_enabled), remove this in favor of directly using the // errors returned by RPCs. export class BuildBuddyError extends Error { - constructor(public code: ErrorCode, public description: string) { + constructor( + public code: ErrorCode, + public description: string + ) { super(description); } diff --git a/app/util/git.ts b/app/util/git.ts index 694c2785040..b1c49d41076 100644 --- a/app/util/git.ts +++ b/app/util/git.ts @@ -28,7 +28,11 @@ export function normalizeRepoURL(url: string): string { /** RepoURL represents a structured git repo URL. */ export class RepoURL { - constructor(public host: string, public owner: string, public repo: string) {} + constructor( + public host: string, + public owner: string, + public repo: string + ) {} static parse(url: string): RepoURL | undefined { try { diff --git a/docs/cli-plugins.md b/docs/cli-plugins.md index 64156759359..4e455783f5a 100644 --- a/docs/cli-plugins.md +++ b/docs/cli-plugins.md @@ -324,16 +324,16 @@ if __name__ == "__main__": The CLI exposes certain environment variables to your plugins. -#### \$BUILD_WORKSPACE_DIRECTORY +#### $BUILD_WORKSPACE_DIRECTORY This is the path to the Bazel workspace in which the CLI is run. It is the root path, containing the bazel `WORKSPACE`, `WORKSPACE.bazel`, `MODULE`, or `MODULE.bazel` file. -#### \$PLUGIN_TEMPDIR +#### $PLUGIN_TEMPDIR This is a temporary directory that can be used by your plugin to store temporary files. These files will be cleaned up after the invocation is complete. -#### \$USER_CONFIG_DIR +#### $USER_CONFIG_DIR This is a long-lived directory you can use to store user preferences, like whether or not a user always wants to automatically apply a particular fix. @@ -343,7 +343,7 @@ config dir, if needed, using something like you'll need to decide how to handle differences in preferences across different versions of your plugin. -#### \$EXEC_ARGS_FILE +#### $EXEC_ARGS_FILE This is the path of a file that contains the args that would be passed to an executable built by bazel as a result of a `bazel run` command. Specifically, diff --git a/enterprise/app/code/code.css b/enterprise/app/code/code.css index 648fcea009d..0df7663a426 100644 --- a/enterprise/app/code/code.css +++ b/enterprise/app/code/code.css @@ -411,7 +411,11 @@ background-color: #fff; padding: 8px 0; border-radius: 8px; - box-shadow: 0 0 0 1px #0000000f, 0 1px 1px -0.5px #0000000f, 0 3px 3px -1.5px #0000000f, 0 6px 6px -3px #0000000f; + box-shadow: + 0 0 0 1px #0000000f, + 0 1px 1px -0.5px #0000000f, + 0 3px 3px -1.5px #0000000f, + 0 6px 6px -3px #0000000f; } .code-editor .context-menu div { diff --git a/enterprise/app/code/code_pull_request.ts b/enterprise/app/code/code_pull_request.ts index c2d3bdd8dae..a3defcc3b19 100644 --- a/enterprise/app/code/code_pull_request.ts +++ b/enterprise/app/code/code_pull_request.ts @@ -175,8 +175,8 @@ export async function createCommit(state: Required, treeCreated: boolean, const message = treeCreated ? changes.commit : typeof changes.emptyCommit === "string" - ? changes.emptyCommit - : changes.commit; + ? changes.emptyCommit + : changes.commit; // https://developer.github.com/v3/git/commits/#create-a-commit const latestCommit = await rpc_service.service.createGithubCommit( diff --git a/enterprise/app/code/monaco.css b/enterprise/app/code/monaco.css index accd84db3d1..afd4d889946 100644 --- a/enterprise/app/code/monaco.css +++ b/enterprise/app/code/monaco.css @@ -1906,7 +1906,8 @@ } .monaco-editor .diff-hidden-lines .center { background: var(--vscode-diffEditor-unchangedRegionBackground); - box-shadow: inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow), + box-shadow: + inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow), inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow); color: var(--vscode-diffEditor-unchangedRegionForeground); display: block; @@ -4392,8 +4393,16 @@ color: #ccc; } .monaco-editor { - font-family: -apple-system, BlinkMacSystemFont, Segoe WPC, Segoe UI, HelveticaNeue-Light, system-ui, Ubuntu, - Droid Sans, sans-serif; + font-family: + -apple-system, + BlinkMacSystemFont, + Segoe WPC, + Segoe UI, + HelveticaNeue-Light, + system-ui, + Ubuntu, + Droid Sans, + sans-serif; --monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; } diff --git a/enterprise/app/filter/filter_util.tsx b/enterprise/app/filter/filter_util.tsx index e56af52311d..8328fb6a58d 100644 --- a/enterprise/app/filter/filter_util.tsx +++ b/enterprise/app/filter/filter_util.tsx @@ -478,9 +478,9 @@ export function statusToString(status: invocation_status.OverallStatus) { } export function statusFromString(value: string) { - return (invocation_status.OverallStatus[ + return invocation_status.OverallStatus[ value.toUpperCase().replace(/-/g, "_") as any - ] as unknown) as invocation_status.OverallStatus; + ] as unknown as invocation_status.OverallStatus; } export function parseRoleParam(paramValue: string | null): string[] { diff --git a/enterprise/app/quota/namespace.tsx b/enterprise/app/quota/namespace.tsx index 842c70e69d0..c866c51f810 100644 --- a/enterprise/app/quota/namespace.tsx +++ b/enterprise/app/quota/namespace.tsx @@ -263,9 +263,7 @@ export default class NamespaceComponent extends React.Component assigned.bucket?.name || "") .filter((name) => name !== DEFAULT_BUCKET_NAME) - .map((name) => ( - - ))} + .map((name) => )} diff --git a/enterprise/app/repo/repo.css b/enterprise/app/repo/repo.css index 0358dcfef56..ba6060f6dce 100644 --- a/enterprise/app/repo/repo.css +++ b/enterprise/app/repo/repo.css @@ -1,6 +1,17 @@ .create-repo-page { - font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, - Droid Sans, Helvetica Neue, sans-serif; + font-family: + system-ui, + -apple-system, + BlinkMacSystemFont, + Segoe UI, + Roboto, + Oxygen, + Ubuntu, + Cantarell, + Fira Sans, + Droid Sans, + Helvetica Neue, + sans-serif; display: flex; align-items: center; justify-content: center; @@ -9,7 +20,9 @@ } .create-repo-page .card { - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1); + box-shadow: + 0 1px 3px 0 rgba(0, 0, 0, 0.1), + 0 1px 2px -1px rgba(0, 0, 0, 0.1); border: 1px solid hsl(240 5.9% 90%); border-radius: 16px; } diff --git a/enterprise/app/repo/repo.tsx b/enterprise/app/repo/repo.tsx index dc56aaecba6..3da5cc74e4a 100644 --- a/enterprise/app/repo/repo.tsx +++ b/enterprise/app/repo/repo.tsx @@ -206,9 +206,8 @@ export default class RepoComponent extends React.Component { // Log an error here, but let's keep going since sometimes the Github UI // doesn't redirect after a permissions change, and the user has to X out diff --git a/enterprise/app/root/root.tsx b/enterprise/app/root/root.tsx index f94632690fe..94c5e888278 100644 --- a/enterprise/app/root/root.tsx +++ b/enterprise/app/root/root.tsx @@ -104,9 +104,12 @@ class ImpersonationComponent extends React.Component { - this.setState({ apiKey: undefined }); - }, 45 * 60 * 1000); + window.setTimeout( + () => { + this.setState({ apiKey: undefined }); + }, + 45 * 60 * 1000 + ); return response.apiKey!.value; } diff --git a/enterprise/app/tap/flakes.tsx b/enterprise/app/tap/flakes.tsx index 9c398cdfa24..8bbd52d4a93 100644 --- a/enterprise/app/tap/flakes.tsx +++ b/enterprise/app/tap/flakes.tsx @@ -369,7 +369,7 @@ export default class FlakesComponent extends React.Component { ); } - let tableData = singleTarget ? [] : this.state.tableData?.stats ?? []; + let tableData = singleTarget ? [] : (this.state.tableData?.stats ?? []); let sortFn: (a: target.AggregateTargetStats, b: target.AggregateTargetStats) => number; if (this.state.tableSort === "Flakes") { sortFn = (a, b) => { diff --git a/enterprise/app/trends/trends.css b/enterprise/app/trends/trends.css index 5cd9fd58493..74d7e91464a 100644 --- a/enterprise/app/trends/trends.css +++ b/enterprise/app/trends/trends.css @@ -53,7 +53,9 @@ background-color: rgba(255, 255, 255, 0.95); border-radius: 8px; padding: 16px; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); + box-shadow: + 0 3px 6px rgba(0, 0, 0, 0.16), + 0 3px 6px rgba(0, 0, 0, 0.23); pointer-events: none; z-index: 1; } diff --git a/enterprise/app/workflows/workflows.css b/enterprise/app/workflows/workflows.css index ff5f9f863d1..782766f83ad 100644 --- a/enterprise/app/workflows/workflows.css +++ b/enterprise/app/workflows/workflows.css @@ -419,7 +419,9 @@ box-shadow: none; } to { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.27), 0 3px 12px rgba(0, 0, 0, 0.05); + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.27), + 0 3px 12px rgba(0, 0, 0, 0.05); } } @@ -587,7 +589,9 @@ background-color: rgba(255, 255, 255, 0.95); border-radius: 8px; padding: 16px; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); + box-shadow: + 0 3px 6px rgba(0, 0, 0, 0.16), + 0 3px 6px rgba(0, 0, 0, 0.23); pointer-events: none; z-index: 1; } diff --git a/package.json b/package.json index db565691657..43d3851f558 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "moment": "^2.29.4", "monaco-editor": "0.47.0", "path-browserify": "^1.0.1", - "prettier": "2.1.1", + "prettier": "3.3.3", "protobufjs": "^7.2.5", "react": "^16.8.6", "react-date-range": "^1.3.0", diff --git a/tools/checkstyle/checkstyle.sh b/tools/checkstyle/checkstyle.sh index bbb3fadd913..00aeeff8099 100755 --- a/tools/checkstyle/checkstyle.sh +++ b/tools/checkstyle/checkstyle.sh @@ -59,7 +59,7 @@ run ProtoFormat \ run PrettierFormat \ env PRETTIER_PATH="$PRETTIER_PATH" \ - tools/prettier/prettier.sh --loglevel=warn --check + tools/prettier/prettier.sh --log-level=warn --check wait diff --git a/website/blog/bazels-remote-caching-and-remote-execution-explained.md b/website/blog/bazels-remote-caching-and-remote-execution-explained.md index 4ecbcb60045..b44dffb02cd 100644 --- a/website/blog/bazels-remote-caching-and-remote-execution-explained.md +++ b/website/blog/bazels-remote-caching-and-remote-execution-explained.md @@ -403,6 +403,7 @@ It behaves the same way as [`--remote_header`][remote_header]. or test logs. [^9]: Available in [Bazel 5.0](https://github.com/bazelbuild/bazel/commit/bfc24139d93f8643686d91596ba347df2e01966a). + [^10]: Available in [Bazel 5.0](https://github.com/bazelbuild/bazel/commit/ef42d1365d0f508d3d817997b5049639a72100ab). ## That's it, for now diff --git a/website/blog/how-to-migrate-an-ios-app-to-bazel.md b/website/blog/how-to-migrate-an-ios-app-to-bazel.md index e61ae474347..2988df50949 100644 --- a/website/blog/how-to-migrate-an-ios-app-to-bazel.md +++ b/website/blog/how-to-migrate-an-ios-app-to-bazel.md @@ -1106,6 +1106,7 @@ There are pros and cons to using the disk cache: - A history of being buggy [^blob]: A "blob" is an [REAPI][reapi] term for artifacts that are stored in a cache. + [^disk-cache-max-size]: [Bazel issue #5139](https://github.com/bazelbuild/bazel/issues/5139). With those in mind, diff --git a/website/blog/redpoint-infrared-100.md b/website/blog/redpoint-infrared-100.md index eac80c27f09..2de4c68437c 100644 --- a/website/blog/redpoint-infrared-100.md +++ b/website/blog/redpoint-infrared-100.md @@ -23,4 +23,4 @@ All companies included on the first annual InfraRed 100 are included [here](http **About BuildBuddy:** BuildBuddy provides an open-core suite of enterprise features for Bazel, including a Remote Build Execution service, a shared build artifact cache, and a build & test result UI. It's available as a fully-managed cloud service or as an easy to deploy on-prem solution. BuildBuddy is based in San Francisco, backed by Y Combinator, and founded by two ex-Googlers deeply passionate about making developers more productive. For more information visit: https://buildbuddy.io/ -**About Redpoint Ventures:** Redpoint has partnered with visionary founders to create new markets and redefine existing ones since 1999. We invest in startups across the seed, early and growth phases, and we’re proud to have backed over 578 companies—including Snowflake, Looker, Kustomer, Twilio, 2U, DraftKings, Duo Security, HashiCorp, Stripe, Guild, HomeAway, Heroku, Netflix, and Sonos—with 181 IPOs and M+A exits. Redpoint manages \$7.2 billion across multiple funds. For more information visit: https://www.redpoint.com/ +**About Redpoint Ventures:** Redpoint has partnered with visionary founders to create new markets and redefine existing ones since 1999. We invest in startups across the seed, early and growth phases, and we’re proud to have backed over 578 companies—including Snowflake, Looker, Kustomer, Twilio, 2U, DraftKings, Duo Security, HashiCorp, Stripe, Guild, HomeAway, Heroku, Netflix, and Sonos—with 181 IPOs and M+A exits. Redpoint manages $7.2 billion across multiple funds. For more information visit: https://www.redpoint.com/ diff --git a/website/blog/welcoming-george-li-head-of-sales.md b/website/blog/welcoming-george-li-head-of-sales.md index cb04916b75e..997b5129a71 100644 --- a/website/blog/welcoming-george-li-head-of-sales.md +++ b/website/blog/welcoming-george-li-head-of-sales.md @@ -8,7 +8,7 @@ tags: [company, team] To fulfill our mission of bringing the world's best developer tools to every company, we're building a team that's ready to work with the world's best enterprises. That's why we're excited to share today that [**George Li**](https://www.linkedin.com/in/gli/) is joining BuildBuddy to lead our enterprise sales efforts as our Head of Sales. -George joins us from Looker where he served as Head of APAC Sales Engineering. He joined Google Cloud through their [acquisition](https://techcrunch.com/2020/02/13/google-closes-2-6b-looker-acquisition/) of Looker in February, having helped the company grow to a \$2.6B valuation. +George joins us from Looker where he served as Head of APAC Sales Engineering. He joined Google Cloud through their [acquisition](https://techcrunch.com/2020/02/13/google-closes-2-6b-looker-acquisition/) of Looker in February, having helped the company grow to a $2.6B valuation. ![](../static/img/blog/welcome-george.png) diff --git a/website/src/css/general.css b/website/src/css/general.css index 9e3fab2b66f..e3def47cf5c 100644 --- a/website/src/css/general.css +++ b/website/src/css/general.css @@ -29,8 +29,19 @@ } html { - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", - "Droid Sans", "Helvetica Neue", sans-serif; + font-family: + system-ui, + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + Oxygen, + Ubuntu, + Cantarell, + "Fira Sans", + "Droid Sans", + "Helvetica Neue", + sans-serif; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; padding: 0; @@ -126,16 +137,23 @@ article svg[aria-hidden="true"] { .pagination-nav__link { width: 100%; - box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.12), 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), - 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), 0px 6px 6px -3px rgba(0, 0, 0, 0.12); + box-shadow: + 0px 0px 0px 1px rgba(0, 0, 0, 0.12), + 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), + 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), + 0px 6px 6px -3px rgba(0, 0, 0, 0.12); border: 0; padding: 24px; border-radius: 8px; } .pagination-nav__link:hover { width: 100%; - box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.12), 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), - 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), 0px 6px 6px -3px rgba(0, 0, 0, 0.12), 0px 8px 12px -6px rgba(0, 0, 0, 0.12), + box-shadow: + 0px 0px 0px 1px rgba(0, 0, 0, 0.12), + 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), + 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), + 0px 6px 6px -3px rgba(0, 0, 0, 0.12), + 0px 8px 12px -6px rgba(0, 0, 0, 0.12), 0px 10px 24px -12px rgba(0, 0, 0, 0.12); } diff --git a/website/src/css/markdown.css b/website/src/css/markdown.css index 3886c0886fe..3fba09f34f0 100644 --- a/website/src/css/markdown.css +++ b/website/src/css/markdown.css @@ -47,7 +47,9 @@ html[data-theme="dark"] .markdown a { a code { background-image: none !important; - box-shadow: -4px 0px 0px 0px white, 4px 0px 0px 0px white; + box-shadow: + -4px 0px 0px 0px white, + 4px 0px 0px 0px white; margin: 0 4px; } diff --git a/website/src/css/nav.css b/website/src/css/nav.css index 05dc92a7e11..1028eb91d52 100644 --- a/website/src/css/nav.css +++ b/website/src/css/nav.css @@ -80,7 +80,9 @@ html[data-theme="dark"] .menu { } .aa-Form:focus-within { - box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 2px, inset rgba(0, 0, 0, 0.1) 0 0 0 2px !important; + box-shadow: + rgba(0, 0, 0, 0.1) 0 0 0 2px, + inset rgba(0, 0, 0, 0.1) 0 0 0 2px !important; } .dsla-search-wrapper { @@ -324,6 +326,9 @@ a.menu__link.menu__link--active.menu__link--sublist { } .dropdown__menu { - box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.06), 0px 1px 1px -0.5px rgba(0, 0, 0, 0.06), - 0px 3px 3px -1.5px rgba(0, 0, 0, 0.06), 0px 6px 6px -3px rgba(0, 0, 0, 0.06); + box-shadow: + 0px 0px 0px 1px rgba(0, 0, 0, 0.06), + 0px 1px 1px -0.5px rgba(0, 0, 0, 0.06), + 0px 3px 3px -1.5px rgba(0, 0, 0, 0.06), + 0px 6px 6px -3px rgba(0, 0, 0, 0.06); } diff --git a/website/src/pages/plugins.module.css b/website/src/pages/plugins.module.css index 96b2a0d1a83..e65e8bc8b43 100644 --- a/website/src/pages/plugins.module.css +++ b/website/src/pages/plugins.module.css @@ -20,7 +20,9 @@ .featuredPlugin .plugin { background-color: #fff; cursor: pointer; - box-shadow: 9px 4px 16px rgb(46 41 51 / 8%), 0px 8px 24px rgb(71 63 79 / 16%); + box-shadow: + 9px 4px 16px rgb(46 41 51 / 8%), + 0px 8px 24px rgb(71 63 79 / 16%); } .pluginTitle { diff --git a/website/theme/BlogPostItem/styles.module.css b/website/theme/BlogPostItem/styles.module.css index ed607341272..b5937e7113d 100644 --- a/website/theme/BlogPostItem/styles.module.css +++ b/website/theme/BlogPostItem/styles.module.css @@ -88,8 +88,11 @@ h1 { } .articleGrid { - box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.12), 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), - 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), 0px 6px 6px -3px rgba(0, 0, 0, 0.12); + box-shadow: + 0px 0px 0px 1px rgba(0, 0, 0, 0.12), + 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), + 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), + 0px 6px 6px -3px rgba(0, 0, 0, 0.12); padding: 32px 24px; border-radius: 16px; cursor: pointer; @@ -111,7 +114,11 @@ h1 { } .articleGrid:hover { - box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.12), 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), - 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), 0px 6px 6px -3px rgba(0, 0, 0, 0.12), 0px 8px 12px -6px rgba(0, 0, 0, 0.12), + box-shadow: + 0px 0px 0px 1px rgba(0, 0, 0, 0.12), + 0px 1px 1px -0.5px rgba(0, 0, 0, 0.12), + 0px 3px 3px -1.5px rgba(0, 0, 0, 0.12), + 0px 6px 6px -3px rgba(0, 0, 0, 0.12), + 0px 8px 12px -6px rgba(0, 0, 0, 0.12), 0px 10px 24px -12px rgba(0, 0, 0, 0.12); } diff --git a/yarn.lock b/yarn.lock index 80b24d5de1c..95e24c572bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -862,10 +862,10 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -prettier@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" - integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== +prettier@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== prop-types@15, prop-types@^15.5.10, prop-types@^15.7.2: version "15.7.2"