45f904e604 | ||
---|---|---|
.github | ||
api | ||
customtags | ||
data | ||
framework | ||
http2push@7b63c8d258 | ||
internals | ||
pages | ||
py2 | ||
scripts | ||
static | ||
templates | ||
.babelrc | ||
.coveragerc | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc | ||
.gcloudignore | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
LICENSE | ||
README.md | ||
app-py3.yaml | ||
appengine_config.py | ||
config.rb | ||
cron.yaml | ||
dev-default.yaml | ||
developer-documentation.md | ||
dispatch.yaml | ||
gcloud-client-secret.json.enc | ||
gulpfile.babel.js | ||
hack_components.py | ||
index.yaml | ||
main.py | ||
notifier.yaml | ||
package-lock.json | ||
package.json | ||
queue.yaml | ||
requirements.dev.txt | ||
requirements.txt | ||
settings.py | ||
testing_config.py |
README.md
Chrome Platform Status
Get the code
git clone https://github.com/GoogleChrome/chromium-dashboard
Installation
- Before you begin, make sure that you have a java JRE (version 8 or greater) installed. JRE is required to use the DataStore Emulator.
- Install global CLIs in the home directory
- Google App Engine SDK for Python. Make sure to select Python 3.
- pip, node, npm, and gunicorn.
- Gulp
npm install --global gulp-cli
- We recommend using an older node version, e.g. node 10
- Use
node -v
to check the default node version nvm use 12
to switch to node 12
- Use
cd
into the Chromestatus repo and install npm dependenciesnpm ci
- Create a virtual environment.
sudo apt install python3.9-venv
python3 -m venv cs-env
- Install pip for python2
- curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
- python2 get-pip.py
- Install other dependencies
npm run deps
npm run dev-deps
You will need to activate the venv in every shell that you use.
source cs-env/bin/activate
If you face any error during the installation process, the section Notes (later in this README.md) may help.
Add env_vars.yaml
Create a file named env_vars.yaml
in the root directory and fill it with:
env_variables:
DJANGO_SETTINGS_MODULE: 'settings'
DJANGO_SECRET: 'this-is-a-secret'
Developing
To start the main server and the notifier backend, run:
npm start
Then visit http://localhost:8080/
.
To start front end code watching (sass, js lint check, babel, minify files), run
npm run watch
To run lint & lit-analyzer:
npm run lint
To run unit tests:
npm test
This will start a local datastore emulator, run unit tests, and then shut down the emulator.
There are some developing information in developer-documentation.md.
Notes
-
If you get an error saying
No module named protobuf
orNo module named six
orNo module named enum
, try installing them locally withpip install six enum34 protobuf
. -
When installing the GAE SDK, make sure to get the version for python 2.7. It is no longer the default version.
Blink components
Chromestatus gets the list of Blink components from a separate app running on Firebase. See source.
Seed the blink component owners
Visit http://localhost:8080/admin/blink/populate_blink to see the list of Blink component owners.
Debugging / settings
settings.py
contains a list
of globals for debugging and running the site locally.
Deploying
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.
Note you need to have admin privileges on the cr-status-staging
and cr-status
cloud projects to be able to deploy the site.
Run the npm target:
npm run staging
Open the Google Developer Console for the staging site 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.
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
.
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
The production site should only have versions that match versions on staging.
LICENSE
Copyright (c) 2013-2016 Google Inc. All rights reserved.
Apache2 License.