2015-08-03 19:59:03 +03:00
Chrome Platform Status
2013-03-07 22:18:10 +04:00
==================
2018-02-27 09:28:59 +03:00
[![Lighthouse score: 100/100 ](https://lighthouse-badge.appspot.com/?score=100&category=PWA )](https://github.com/ebidel/lighthouse-badge)
2018-02-01 01:04:17 +03:00
2014-02-18 17:00:38 +04:00
[chromestatus.com ](http://chromestatus.com/ )
2015-10-14 01:13:53 +03:00
### Get the code
2021-05-26 21:07:04 +03:00
git clone https://github.com/GoogleChrome/chromium-dashboard
2015-10-14 01:13:53 +03:00
2015-11-17 20:11:51 +03:00
### Installation
2021-07-09 22:38:30 +03:00
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.
2019-05-22 21:51:38 +03:00
1. Install global CLIs
2021-09-22 21:00:11 +03:00
1. [Google App Engine SDK for Python ](https://cloud.google.com/appengine/docs/standard/python3/setting-up-environment ). Make sure to select Python 3.
2019-05-22 21:51:38 +03:00
1. pip, node, npm.
2021-06-03 03:59:55 +03:00
1. Gulp `npm install --global gulp-cli`
2019-11-12 01:32:32 +03:00
1. Install npm dependencies `npm ci`
2021-09-22 21:00:11 +03:00
1. Create a virtual environment.
1. `apt install python3.9-venv`
1. `python3 -m venv cs-env`
1. `source cs-env/bin/activate`
2021-04-13 04:18:29 +03:00
1. Install other dependencies `npm run deps` and `npm run dev-deps`
2019-05-22 21:13:09 +03:00
2021-09-22 21:00:11 +03:00
You will need to activate the venv in every shell that you use.
1. `source cs-env/bin/activate`
2021-07-09 22:38:30 +03:00
If you face any error during the installation process, the section **Notes** (later in this README.md) may help.
2021-05-29 01:00:52 +03:00
2018-07-17 21:16:04 +03:00
##### Add env_vars.yaml
Create a file named `env_vars.yaml` in the root directory and fill it with:
```yaml
env_variables:
DJANGO_SETTINGS_MODULE: 'settings'
2021-03-17 02:17:55 +03:00
DJANGO_SECRET: 'this-is-a-secret'
2021-02-25 00:31:01 +03:00
```
2018-07-17 21:16:04 +03:00
2019-05-22 21:51:38 +03:00
### Developing
To start the main server and the notifier backend, run:
```bash
npm start
```
2021-04-29 01:17:39 +03:00
Then visit `http://localhost:8080/` .
2019-05-22 21:51:38 +03:00
2019-06-27 23:52:25 +03:00
To start front end code watching (sass, js lint check, babel, minify files), run
2019-05-22 21:51:38 +03:00
```bash
npm run watch
```
2019-11-12 01:32:32 +03:00
To run lint & lit-analyzer:
```bash
npm run lint
```
2020-01-30 21:57:22 +03:00
To run unit tests:
```bash
2021-07-22 01:36:48 +03:00
npm test
2020-01-30 21:57:22 +03:00
```
2021-07-22 01:36:48 +03:00
This will start a local datastore emulator, run unit tests, and then shut down the emulator.
2019-11-12 01:32:32 +03:00
2019-05-22 21:51:38 +03:00
There are some developing information in developer-documentation.md.
2017-08-03 20:26:56 +03:00
2021-03-16 04:26:43 +03:00
**Notes**
2017-08-03 20:26:56 +03:00
2021-05-29 01:00:52 +03:00
- 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` .
2021-04-13 04:18:29 +03:00
2021-03-16 04:26:43 +03:00
- When installing the GAE SDK, make sure to get the version for python 2.7. It is no longer the default version.
2017-08-03 20:26:56 +03:00
2016-07-11 21:37:51 +03:00
2019-02-12 03:07:34 +03:00
#### Blink components
Chromestatus gets the list of Blink components from a separate [app running on Firebase ](https://blinkcomponents-b48b5.firebaseapp.com/blinkcomponents ). See [source ](https://github.com/ebidel/blink-components ).
2017-06-27 00:45:36 +03:00
#### Seed the blink component owners
2017-10-18 05:54:11 +03:00
Visit http://localhost:8080/admin/blink/populate_blink to see the list of Blink component owners.
2017-06-27 00:45:36 +03:00
2016-07-11 21:37:51 +03:00
#### Debugging / settings
[`settings.py` ](https://github.com/GoogleChrome/chromium-dashboard/blob/master/settings.py ) contains a list
of globals for debugging and running the site locally.
2016-07-08 22:41:10 +03:00
### Deploying
2021-02-25 00:16:30 +03:00
If you have uncommited local changes, the appengine version name will end with `-tainted` .
It is OK to test on staging with tainted versions, but everything should be committed
(and thus not tainted) before staging a version that can later be pushed to prod.
2016-07-08 22:41:10 +03:00
2021-02-25 00:16:30 +03:00
**Note** you need to have admin privileges on the `cr-status-staging` and `cr-status`
cloud projects to be able to deploy the site.
2016-07-08 22:41:10 +03:00
2021-02-25 00:16:30 +03:00
Run the npm target:
2016-07-08 22:41:10 +03:00
2021-02-25 00:16:30 +03:00
npm run staging
2016-07-08 22:41:10 +03:00
2021-02-25 00:16:30 +03:00
Open the [Google Developer
Console for the staging site](https://console.cloud.google.com/appengine/versions?project=cr-status-staging)
2019-06-14 23:20:27 +03:00
and 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.
2016-07-08 22:41:10 +03:00
2021-05-08 00:03:08 +03:00
Each deployment also uploads 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` .
2021-02-25 00:16:30 +03:00
If manual testing on the staging server looks good, then repeat the same steps to deploy to prod:
npm run deploy
Open the [Google Developer
Console for the production site](https://console.cloud.google.com/appengine/versions?project=cr-status)
The production site should only have versions that match versions on staging.
2013-03-29 22:11:54 +04:00
### LICENSE
2017-02-16 02:05:51 +03:00
Copyright (c) 2013-2016 Google Inc. All rights reserved.
2013-03-29 22:14:00 +04:00
2016-07-08 23:37:44 +03:00
Apache2 License.
2014-01-02 23:47:39 +04:00
[![Analytics ](https://ga-beacon.appspot.com/UA-39048143-2/GoogleChrome/chromium-dashboard/README )](https://github.com/igrigorik/ga-beacon)