{"id":14984205,"url":"https://github.com/googlechrome/chromium-dashboard","last_synced_at":"2025-05-14T18:06:21.102Z","repository":{"id":7315307,"uuid":"8633551","full_name":"GoogleChrome/chromium-dashboard","owner":"GoogleChrome","description":"Chrome Status Dashboard","archived":false,"fork":false,"pushed_at":"2025-05-12T21:09:29.000Z","size":64462,"stargazers_count":672,"open_issues_count":491,"forks_count":413,"subscribers_count":93,"default_branch":"main","last_synced_at":"2025-05-13T05:11:11.943Z","etag":null,"topics":["chrome","dashboard","features","metrics","samples","web"],"latest_commit_sha":null,"homepage":"https://www.chromestatus.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GoogleChrome.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-03-07T18:18:10.000Z","updated_at":"2025-05-12T15:35:20.000Z","dependencies_parsed_at":"2023-01-14T11:45:14.861Z","dependency_job_id":"f61f13dc-9eb8-4aa2-9e27-4ea3e7cc95bf","html_url":"https://github.com/GoogleChrome/chromium-dashboard","commit_stats":{"total_commits":3524,"total_committers":67,"mean_commits":52.59701492537314,"dds":0.7375141884222474,"last_synced_commit":"e495689d167f3db618ee7ceb36f787e0a280f237"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleChrome%2Fchromium-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleChrome%2Fchromium-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleChrome%2Fchromium-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleChrome%2Fchromium-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoogleChrome","download_url":"https://codeload.github.com/GoogleChrome/chromium-dashboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","dashboard","features","metrics","samples","web"],"created_at":"2024-09-24T14:08:38.063Z","updated_at":"2025-05-14T18:06:21.056Z","avatar_url":"https://github.com/GoogleChrome.png","language":"Python","readme":"Chrome Platform Status\n==================\n\n### Mission\n\n[chromestatus.com](https://chromestatus.com/) is the official tool used for for tracking feature launches in Blink (the browser engine that powers Chrome and many other web browsers).  This tool guides feature owners through our [launch process](https://www.chromium.org/blink/launching-features/) and serves as a primary source for developer information that then ripples throughout the web developer ecosystem.\n\n### Get the code\n\nFor a one-click setup that leverages devcontainers, check out the devcontainer\n[README](.devcontainer/README.md). Otherwise, to continue setting up locally:\n\n    git clone https://github.com/GoogleChrome/chromium-dashboard\n\n### Installation\n1. Install gcloud and needed components:\n    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](https://github.com/OpenAPITools/openapi-generator-cli).\n    1. [Google App Engine SDK for Python](https://cloud.google.com/appengine/docs/standard/python3/setting-up-environment). Make sure to select Python 3.\n    1. `gcloud init`\n    1. `gcloud components install cloud-datastore-emulator`\n    1. `gcloud components install beta`\n1. Install other developer tools commands\n    1. node and npm.\n    1. Gulp: `npm install --global gulp-cli`\n    1. Python virtual environment: `sudo apt install python3.11-venv`\n1. We recommend using an older node version, e.g. node 18\n    1. Use `node -v` to check the default node version\n    2. `nvm use 18` to switch to node 18\n1. `cd chromium-dashboard`\n1. Install JS an python dependencies: `npm run setup`\n    1. Note: Whenever we make changes to package.json or requirements.txt, you will need to run `npm run clean-setup`.\n\n\nIf you encounter any error during the installation process, the section **Notes** (later in this README.md) may help.\n\n### Developing\n\nTo start the main server and the notifier backend, run:\n\n```bash\nnpm start\n```\nThen visit `http://localhost:7777/`.\n\nTo start front end code watching (sass, js lint check, babel, minify files), run\n\n```bash\nnpm run watch\n```\n\nTo run lint \u0026 lit-analyzer:\n\n```bash\nnpm run lint\n```\n\nTo run unit tests:\n\n```bash\nnpm test\n```\n\nThis will start a local datastore emulator, run unit tests, and then shut down the emulator.\n\nTo update test_html_rendering.html, modify the `test_html_rendering` method in\nthe corresponding test file, uncomment the line that looks like:\n\n```python\n # TESTDATA.make_golden(template_text, 'test_html_rendering.html')\n```\n\nThen run the test again (and maybe one more time), and then you can revert\nyour change of the test files.\n\nTo run the Playwright visual tests (aka end-to-end tests), the command to use is:\n```bash\nnpm run pwtests\n```\n\nIf there are errors, they will be displayed in the console.\nIf you need to update any of the screenshot images, you will see differences in\nthe `packages/playwright/test-results` directory, and if they look correct,\nthen you can update _all_ images for all tests with:\n```bash\nnpm run pwtests-update\n```\n\nThe updated images are also added to the __screenshots__ directory.  Images that\ndid not need to be updated do not show up as having been changed.\nIf you change the test file names, or the test method names, or the screenshot\nimage file names, then new files will be generated, and you will need to manually delete the old files.  You could simply delete all screenshots and\nupdate all, but that will take a fairly long time.\n\nYou can update images for just one test file by adding `--filename=some_pwtest.js`\nto the `pwtests-update` command.  The `some_pwtest.js` name does not need to be\na full path.\n\nIf there are error reported by the GitHub CI playwright action, you can look at\nthe error log, but if the problem is a difference in some of the images, you\nshould probably download the artifact `.zip` file containing all the differences.\n\nThere is some additional information for developers in developer-documentation.md.\n\n### Origin Trials\nTo test the functionality of this application locally that interacts with data from the Origin Trials API, an API key will need to be acquired. To do this, run the following command:\n\n```bash\nnpm run dev-ot-key\n```\n\nNote: *Only developers with access to the cr-status-staging GCP project will be able to successfully run this command. If you need to test this and you don't have access, open an issue.*\n\n**Notes**\n\n- If you get an error saying `No module named protobuf` or `No module named six` or `No module named enum` , try installing them locally with `pip install six enum34 protobuf`.\n\n- When installing the GAE SDK, make sure to get the version for python 3.\n\n- If you run the server locally, and then you are disconnected from your terminial window, the jobs might remain running which will prevent you from starting the server again.  To work around this, use `npm run stop-emulator; npm stop`.  Or, use `ps aux | grep gunicorn` and/or `ps aux | grep emulator`, then use the unix `kill -9` command to terminate those jobs.\n\n- If you need to test or debug anything to do with dependencies, you can get a clean start by running `npm run clean-setup`.\n\n- Occasionally, the Google Cloud CLI will requires an update, which will cause a failure when trying to run the development server with `npm start`. An unrelated error message `Failed to connect to localhost port 15606 after 0 ms: Connection refused` will appear. Running the `gcloud components update` command will update as needed and resolve this issue.\n\n#### Blink components\n\nChromestatus currently gets the list of Blink components from the file `hack_components.py`.\n\n#### Seed the blink component owners\n\nVisit http://localhost:7777/admin/blink/populate_blink to see the list of Blink component owners.\n\n#### Debugging / settings\n\n[`settings.py`](https://github.com/GoogleChrome/chromium-dashboard/blob/master/settings.py) contains a list\nof globals for debugging and running the site locally.\n\n### Deploying\n\nIf you have uncommitted local changes, the appengine version name will end with `-tainted`.\nIt is OK to test on staging with tainted versions, but everything should be committed\n(and thus not tainted) before staging a version that can later be pushed to prod.\n\n**Note** you need to have admin privileges on the `cr-status-staging` and `cr-status`\ncloud projects to be able to deploy the site.\n\nRun the npm target:\n\n    npm run staging\n\nOpen the [Google Developer\nConsole for the staging site](https://console.cloud.google.com/appengine/versions?project=cr-status-staging)\nand flip to the new version by selecting from the list and clicking *MIGRATE TRAFFIC*. Make sure to do this for both the 'default' service as well as for the 'notifier' service.\n\nAlternatively, run `npm run staging-rc` to  upload the same code to a version named `rc` for \"Release candidate\".  This is the only version that you can test using Google Sign-In at `https://rc-dot-cr-status-staging.appspot.com`.\n\nIf manual testing on the staging server looks good, then repeat the same steps to deploy to prod:\n\n    npm run deploy\n\nOpen the [Google Developer\nConsole for the production site](https://console.cloud.google.com/appengine/versions?project=cr-status)\n\nThe production site should only have versions that match versions on staging.\n\n### LICENSE\n\nCopyright (c) 2013-2022 Google Inc. All rights reserved.\n\nApache2 License.\n\n\n[![Analytics](https://ga-beacon.appspot.com/UA-39048143-2/GoogleChrome/chromium-dashboard/README)](https://github.com/igrigorik/ga-beacon)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglechrome%2Fchromium-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgooglechrome%2Fchromium-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglechrome%2Fchromium-dashboard/lists"}