ITADN
GoogleChrome/chromium-dashboard
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Chrome 平台状态

任务

chromestatus.com 是用于跟踪 Blink(驱动 Chrome 及许多其他 Web 浏览器的浏览器引擎)中功能发布的官方工具。该工具引导功能负责人完成我们的 发布流程,并作为开发者信息的主要来源,进而影响整个 Web 开发者生态系统。

获取代码

如需使用 devcontainers 进行一键设置,请参阅 devcontainer README。否则,若要继续在本地进行设置:

git clone https://github.com/GoogleChrome/chromium-dashboard

Installation

  1. Install gcloud and needed components:
    1. Before you begin, make sure that you have a java JRE (version 8 or greater) installed. JRE is required to use the DataStore Emulator and openapi-generator-cli.
    2. Google App Engine SDK for Python. Make sure to select Python 3.
    3. gcloud init
    4. gcloud components install cloud-datastore-emulator
    5. gcloud components install beta
  2. Install other developer tools commands
    1. node and npm.
    2. Python virtual environment: sudo apt install python3.11-venv
  3. We recommend using node version 24
    1. Use node -v to check the default node version
    2. nvm use 24 to switch to node 24
  4. cd chromium-dashboard
  5. Install JS an python dependencies: make setup
    1. Note: Whenever we make changes to package.json or requirements.txt, you will need to run make clean-setup.

如果在安装过程中遇到任何错误,Notes 部分(位于本 README.md 的后面)可能会有所帮助。

开发

要启动主服务器和通知器后端,请运行:

make start

然后访问 http://localhost:7777/

要启动前端代码监听(TypeScript、JavaScript 打包和压缩),请运行

make watch

要运行 lint & lit-analyzer:

make lint

要运行单元测试:

make test

这将启动一个本地数据存储模拟器,运行单元测试,然后关闭模拟器。

要更新 test_html_rendering.html,请修改对应测试文件中的 test_html_rendering 方法,取消注释如下所示的行:

 # TESTDATA.make_golden(template_text, 'test_html_rendering.html')

然后再次运行测试(也许再运行一次),之后你可以还原 测试文件的更改。

要运行 Playwright 视觉测试(又称端到端测试),使用的命令是:

make pwtests

如果有错误,它们将显示在控制台中。 如果需要更新任何截图图像,你会在 packages/playwright/test-results 目录中看到差异,如果它们看起来正确, 那么你可以使用以下命令更新所有测试的_所有_图像:

make pwtests-update

更新的图像也会添加到 screenshots 目录中。 不需要 更新的图像不会显示为已更改。 如果你更改了测试文件名、测试方法名或截图 图像文件名,则会生成新文件,你需要手动删除旧文件。 你可以简单地删除所有截图并 更新所有,但这将花费相当长的时间。

你可以通过在 pwtests-update 命令中添加 --filename=some_pwtest.js 来仅更新一个测试文件的图像。 some_pwtest.js 名称不需要是 完整路径。

如果 GitHub CI playwright 操作报告了错误,你可以查看 错误日志,但如果问题是某些图像的差异,你 应该下载包含所有差异的工件 .zip 文件。

developer-documentation.md 中有一些针对开发者的额外信息。

Gemini Code Assist

本项目针对 Gemini Code Assist 进行了优化。有关详细的架构背景、本地开发技巧以及专用 AI 技能,请参阅:

Origin Trials

要在本地测试此应用程序中与 Origin Trials API 数据交互的功能,需要获取一个 API 密钥。为此,请运行以下命令:

make dev-ot-key

注意:只有拥有 cr-status-staging GCP 项目访问权限的开发者才能成功运行此命令。如果你需要测试此命令但没有访问权限,请提交一个 issue。

备注

  • 如果你收到包含 No module named protobufNo module named sixNo module named enum 的错误,请尝试使用 pip install six enum34 protobuf 在本地安装它们。

  • 安装 GAE SDK 时,请确保获取适用于 python 3 的版本。

  • 如果你在本地运行服务器,然后与你的终端窗口断开连接,任务可能仍在运行,这将阻止你再次启动服务器。 要解决此问题,请使用 make stop-emulator; make stop。 或者,使用 ps aux | grep gunicorn 和/或 ps aux | grep emulator,然后使用 unix kill -9 命令终止这些任务。

  • 如果你需要测试或调试与依赖项相关的任何内容,可以通过运行 make clean-setup 来获得一个干净的开始。

  • 偶尔,Google Cloud CLI 需要更新,这会导致尝试使用 make start 运行开发服务器时失败。 会出现一个无关的错误消息 Failed to connect to localhost port 15606 after 0 ms: Connection refused。 运行 gcloud components update 命令将按需更新并解决此问题。

使用 Gemini 进行 WPT 覆盖率评估

请参阅此处文档。

Blink 组件

Chromestatus 目前从文件 hack_components.py 获取 Blink 组件列表。

填充 blink 组件负责人

访问 http://localhost:7777/admin/blink/populate_blink 查看 Blink 组件负责人列表。

调试 / 设置

settings.py 包含一个 用于调试和在本地运行站点的全局变量列表。

部署

如果存在未提交的本地更改,appengine 版本名称将以 -tainted 结尾。 在 staging 上使用受污染的版本进行测试是可以的,但在部署一个之后可以推送到 prod 的版本之前, 所有内容都应已提交(因此不受污染)。

注意 你需要在 cr-status-stagingcr-status 云项目上拥有管理员权限才能部署该站点。

运行 make 目标:

make staging

打开 staging 站点的 Google Developer Console 通过从列表中选择并点击 MIGRATE TRAFFIC 切换到新版本。请确保对 'default' 服务和 'notifier' 服务都执行此操作。

或者,运行 make staging-rc 将相同的代码上传到名为 rc 的版本,用于“Release candidate”。这是唯一可以使用 Google Sign-In 在 https://rc-dot-cr-status-staging.appspot.com 上进行测试的版本。

如果在 staging 服务器上的手动测试看起来正常,请重复相同的步骤以部署到 prod:

make deploy

打开 production 站点的 Google Developer Console

生产站点应仅包含与 staging 上版本匹配的版本。

LICENSE

Copyright (c) 2013-2022 Google Inc. All rights reserved.

Apache2 License.

Analytics