Chrome Status Dashboard
Перейти к файлу
jrobbins f76f8cc59a
Work around GAE deadline for feature popularity
This request was never succeeding because it was taking longer than GAE's 60s deadline.

There is no deadline when it is run as a cron, which allows it to succeed and put data into memcache for user requests to access.

This change has already been deployed for about a week.
2019-10-28 13:09:38 -07:00
cloudstorage Fixes #219 2015-07-10 10:01:36 -07:00
customtags Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
data Update devrel_team.yaml 2018-08-01 12:29:31 -07:00
http2push@7b63c8d258 Add experimental features to shipping samples 2016-04-08 15:19:12 +05:30
scripts Fixes #517. Moves to gcloud 2017-10-17 09:57:53 -07:00
static Followup fix for #654. 2019-08-14 11:29:42 -07:00
templates Followup fix for #654. 2019-08-14 11:29:42 -07:00
travis Use Lighthouse CI module (#466) 2017-06-13 15:44:10 -07:00
.babelrc Preload, babel support, metrics/user timing lib 2016-08-05 17:59:09 -07:00
.bowerrc update to polymer 1.2.3 2015-11-17 09:11:51 -08:00
.editorconfig Adds eslint. Fixes #350 (#351) 2016-07-19 15:19:06 -07:00
.eslintignore Preload, babel support, metrics/user timing lib 2016-08-05 17:59:09 -07:00
.eslintrc Modernize deps. Gulp4 2018-06-04 14:56:45 -07:00
.gitignore Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
.gitmodules Add http2push-gae 2015-10-13 15:13:53 -07:00
.travis.yml Update travis 2017-07-03 10:56:36 -07:00
Gruntfile.js Use Gulp for build instead of Grunt (#349) 2016-07-20 12:49:10 -07:00
LICENSE Apache2 license 2016-07-08 13:09:02 -07:00
README.md Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
README.txt Added cron job to fetch chromium histograms 2015-02-10 18:31:50 +01:00
admin.py Merge pull request #648 from GoogleChrome/usage-logging 2019-06-20 10:48:31 -07:00
app.yaml Prevent unauthenticated users from accessing handler 2018-03-28 10:34:22 -07:00
appengine_config.py Feature owners: db notifications and task queue. 2017-07-02 21:25:30 -07:00
blink_handler.py List of features for each blink component owner (#504) 2017-09-11 17:57:54 -07:00
bower.json ESLint cleanup. Rev Polymer 1.9.3 and iron-list 1.4.6 2017-08-06 10:35:40 -07:00
bulkloader.yaml Some changes to the saved bulkdata to better match what's in production now. 2014-08-01 12:51:28 -04:00
bulkloader_helpers.py bulk loader scripts 2013-07-21 16:50:20 -05:00
common.py Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
config.rb Init commit of chromium feature dashboard 2013-03-07 10:29:38 -08:00
cron.yaml Work around GAE deadline for feature popularity 2019-10-28 13:09:38 -07:00
gcloud-client-secret.json.enc Travis Lighthouse setup 2017-03-31 19:45:04 -07:00
gulpfile.babel.js Modernize deps. Gulp4 2018-06-04 14:56:45 -07:00
import.csv Some changes to the saved bulkdata to better match what's in production now. 2014-08-01 12:51:28 -04:00
index.yaml Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
metrics.py Fix #556 2018-06-04 11:41:41 -07:00
models.py Followup fix for #654. 2019-08-14 11:29:42 -07:00
notifier.py Fix formatting for real (#546) 2018-04-04 11:35:51 -07:00
notifier.yaml Fixes #517. Moves to gcloud 2017-10-17 09:57:53 -07:00
package.json Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
push_manifest_features.json Reduce h2 push'd resources. Preload instead. Fixes #345 (#346) 2016-07-19 21:12:32 -07:00
push_manifest_metrics.json Reduce h2 push'd resources. Preload instead. Fixes #345 (#346) 2016-07-19 21:12:32 -07:00
queue.yaml HTML emails to feature owners 2017-08-06 19:24:18 -07:00
requirements.txt Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
schedule.py Fix stable/beta adjustment on schedule 2017-09-14 10:00:52 -07:00
server-delay.py Delay endpoint for testing 2017-04-19 13:19:12 -07:00
server.py Fix broken /samples.json handler after refactor 2017-08-15 10:01:27 -07:00
settings.py Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00
skip_files.yaml Cleanup new deploy, shared skip_files, fixes for prod 2017-07-02 22:14:35 -07:00
users.py Blink component ownners /admin/blink endpoint 2017-06-30 16:03:49 -07:00
util.py Break up features into multiple memcache keys 2017-06-05 22:03:17 -07:00
yarn.lock Update django to 1.11 (LTS). #668 2019-08-14 11:59:14 -07:00

README.md

Chrome Platform Status

Lighthouse score: 100/100

chromestatus.com

Get the code

git clone --recursive https://github.com/GoogleChrome/chromium-dashboard

Installation

First, install the Google App Engine SDK for Python.

You'll also need pip, node, npm, and gulp:

npm install -g bower gulp
npm install

This will also pull down bower_components and run gulp to build the site.

Developing

To start the main server and the notifier backend, run:

./scripts/start_server.sh
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'
  FIREBASE_SERVER_KEY: <SERVER_KEY>
  DJANGO_SECRET: <django_key>

The FIREBASE_SERVER_KEY is the Firebase server key obtained from the Firebase console. The DJANGO_SECRET should be a unique value (e.g. an UUID), and if possible maintained across deployments.

FCM setup

If you want to test push notification features, you'll need to create a file named .fcm_server_key in the main project root. Copy in the FCM server key obtained from the Firebase console.

When ./scripts/start_server.sh is run, it will populate this value as an environment variable.

Notes

  • Locally, the /feature list pulls from prod (https://www.chromestatus.com/features.json). Opening one of the features will 404 because the entry is not actually in the local db. If you want to test local entries, modify templates/features.html to pull locally and add some db entries by signing in to the app (bottom link). Make sure to check the "sign in as admin" box when doing so. Note that you can also simply go to http://127.0.0.1:8080/ instead of localhost to pull locally.

Chromestatus gets the list of Blink components from a separate app running on Firebase. See source.

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.

VULCANIZE - False, will run the site without vulcanizing the Polymer elements.

SEND_EMAIL - False will turn off email notifications to feature owners.

SEND_PUSH_NOTIFICATIONS - False will turn off sending push notifications for all users.

Deploying

Note you need to have admin privileges on the cr-status cloud project to be able to deploy the site.

Run the helper script:

./scripts/deploy_site.sh <YYYY-MM-DD>

Where <YYYY-MM-DD> is today's date, which will be used as the deployment's version number. This will build the site and deploy it to GAE.

Lastly, open the Google Developer Console 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.

LICENSE

Copyright (c) 2013-2016 Google Inc. All rights reserved.

Apache2 License.

Analytics