Chrome 平台状态
任务
chromestatus.com 是用于跟踪 Blink(驱动 Chrome 及许多其他 Web 浏览器的浏览器引擎)中功能发布的官方工具。该工具引导功能负责人完成我们的 发布流程,并作为开发者信息的主要来源,进而影响整个 Web 开发者生态系统。
获取代码
如需使用 devcontainers 进行一键设置,请参阅 devcontainer README。否则,若要继续在本地进行设置:
git clone https://github.com/GoogleChrome/chromium-dashboard
Installation
- Install gcloud and needed components:
- 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.
- Google App Engine SDK for Python. Make sure to select Python 3.
gcloud initgcloud components install cloud-datastore-emulatorgcloud components install beta
- Install other developer tools commands
- node and npm.
- Python virtual environment:
sudo apt install python3.11-venv
- We recommend using node version 24
- Use
node -vto check the default node version nvm use 24to switch to node 24
- Use
cd chromium-dashboard- Install JS an python dependencies:
make setup- Note: Whenever we make changes to package.json or requirements.txt, you will need to run
make clean-setup.
- Note: Whenever we make changes to package.json or requirements.txt, you will need to run
如果在安装过程中遇到任何错误,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 protobuf或No module named six或No 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,然后使用 unixkill -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-staging 和 cr-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.