2015-08-03 19:59:03 +03:00
Chrome Platform Status
2013-03-07 22:18:10 +04:00
==================
2022-03-22 20:12:21 +03:00
[chromestatus.com ](https://chromestatus.com/ )
2014-02-18 17:00:38 +04:00
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.
2022-02-03 01:51:37 +03:00
1. Install global CLIs in the home directory
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.
2022-02-16 00:31:27 +03:00
1. pip, node, npm, and gunicorn.
2021-06-03 03:59:55 +03:00
1. Gulp `npm install --global gulp-cli`
2022-02-03 01:51:37 +03:00
1. We recommend using an older node version, e.g. node 10
1. Use `node -v` to check the default node version
2. `nvm use 12` to switch to node 12
3. `cd` into the Chromestatus repo and install npm dependencies `npm ci`
4. Create a virtual environment.
1. `sudo apt install python3.9-venv`
2021-09-22 21:00:11 +03:00
1. `python3 -m venv cs-env`
2022-02-03 01:51:37 +03:00
5. Install pip for python2
1. curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
1. python2 get-pip.py
2022-02-16 00:31:27 +03:00
6. Install other dependencies
2022-02-03 01:51:37 +03:00
1. `npm run deps`
1. `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`
2022-03-19 02:43:25 +03:00
If you encounter 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
2022-03-19 02:43:25 +03:00
- When installing the GAE SDK, make sure to get the version for python 3.
- 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 `ps aux | grep gunicorn` and then use the unix `kill -9` command to terminate those jobs.
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
2022-03-19 02:43:25 +03:00
Chromestatus currently gets the list of Blink components from the file `hack_components.py` .
2019-02-12 03:07:34 +03:00
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
2022-03-19 02:43:25 +03:00
Copyright (c) 2013-2022 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)