| Index: chrome/common/extensions/docs/server2/README
|
| diff --git a/chrome/common/extensions/docs/server2/README b/chrome/common/extensions/docs/server2/README
|
| index 92689044753d4692ef6e60ed1b5a8a23c8688cff..2315d922db3524ce3e89663df28b5a0b427881a4 100644
|
| --- a/chrome/common/extensions/docs/server2/README
|
| +++ b/chrome/common/extensions/docs/server2/README
|
| @@ -20,40 +20,53 @@ be sufficient. If for some reason you want to test against the app engine SDK:
|
|
|
| 3. View docs at http://localhost:8080/(apps|extensions)/<doc_name>
|
|
|
| +NOTE: The dev server will not work right way: you need to populate its
|
| +Datastore. You will need a local datastore cache in the working directory where
|
| +you started the dev server, and you will need to manually instruct the dev
|
| +server to pull data from that file:
|
|
|
| ---------------------------------------------
|
| -Using Google Cloud Storage content providers
|
| + 1. Run './update_cache.py --no-push --save-file=FOOCACHE'. This will take
|
| + a very long time (30-40 minutes). It is advisable that you keep a copy
|
| + of this file around if you plan use the dev server often. It can be
|
| + updated much faster (< 3 minutes) in that case by also including
|
| + --load-file=FOOCACHE on subsequent update_cache.py runs.
|
|
|
| -With preview.py:
|
| + You MUST have branch heads fetched in your local repo in order for your
|
| + local data set to be populated correctly. You can accomplish this by
|
| + running:
|
|
|
| - 1. create a directory "[...]/server2/local_debug/gcs/<bucketname>" for every
|
| - gcs bucket referenced in content_providers.json
|
| + gclient sync --with_branch_heads
|
| + git fetch origin
|
|
|
| - 2. copy files to the respective local bucket directories. Preview.py has
|
| - no access to the real Google Cloud Storage.
|
| + You may also specify --commit=<commitish> when running update_cache.py in
|
| + order to update the cache from a specific commit. This may be a commit ID,
|
| + or a partial commit ID, or a local branch ref, etc. To test local changes,
|
| + you MUST commit them locally and use the local commit to update your cache.
|
|
|
| -With start_dev_server.py:
|
| + 2. Once you have a cache (e.g. FOOCACHE) in the working directory of your
|
| + dev server, visit the URL:
|
|
|
| - 1. Install gsutils from https://developers.google.com/storage/docs/gsutil
|
| + http://localhost:8080/_update_cache/FOOCACHE
|
|
|
| - 2. Set gsutil accordingly to the official instructions.
|
| + The server should take about a minute to fully populate its Datastore
|
| + from the data in your FOOCACHE file. Now you have a working dev server!
|
|
|
| - 3. Make sure you have permission to the GCS buckets specified in
|
| - content_providers.json by running "gsutil ls gs://bucketname"
|
|
|
| - 4. Get an oauth token (see instructions at the comment of
|
| - gcs_file_system_provider.py) and save it to the file
|
| - "[...]/server2/local_debug/gcs_debug.conf"
|
| +------------------------------------------------------------
|
| +Using Google Cloud Storage content providers with preview.py
|
| +
|
| + 1. create a directory "[...]/server2/local_debug/gcs/<bucketname>" for every
|
| + gcs bucket referenced in content_providers.json
|
| +
|
| + 2. copy files to the respective local bucket directories. Preview.py has
|
| + no access to the real Google Cloud Storage.
|
|
|
| -Remember that the step 4 needs to be repeated every 10 minutes or so,
|
| -because the oauth access token expires quickly.
|
|
|
| --------------------
|
| Deploying the Server
|
|
|
| You will need to have access to the http://chrome-apps-doc.appspot.com app.
|
| -Contact aa@chromium.org, erikkay@chromium.org, miket@chromium.org,
|
| -kalman@chromium.org, or ernestd@chromium.org to obtain access.
|
| +Contact kalman@chromium.org or rockot@chromium.org to obtain access.
|
|
|
| Once you have access:
|
|
|
| @@ -75,3 +88,39 @@ Once you have access:
|
| If you get an error about too many versions when deploying, go into this
|
| view and delete the version which was deployed the longest time ago. Then
|
| try to deploy again.
|
| +
|
| +
|
| +----------------------
|
| +Updating the Datastore
|
| +
|
| +Even when the server code hasn't changed, new data is constantly flowing into
|
| +the chromium repo and some of that data includes changes to new or existing
|
| +content hosted by the server. In order for the front-end to reflect these
|
| +changes, new data must be pushed into the project's Datastore.
|
| +
|
| +This is done periodically by a Compute Engine instance running the
|
| +update_cache.py tool. While it is possible to push from other hosts if you
|
| +get all the right credentials in all the right places, it is strongly
|
| +discouraged and also therefore not documented.
|
| +
|
| +To force a push safely from the VM, navigate to the developer console under
|
| +Compute -> Compute Engine -> VM instances and open SSH for the "git-processor"
|
| +instance. From within the SSH session, first switch to user "git-processor":
|
| +
|
| + sudo su - git-processor
|
| +
|
| +You can run './update-docs.sh' from the home directory there. This will
|
| +automatically fetch any new objects from the upstream repository and then
|
| +perform a full update if there are pending changes.
|
| +
|
| +It's almost never necessary to use this tool. For one interesting example,
|
| +consider the case where no new commits are landing in the chrome repository
|
| +but a change was just pushed to one of the GCS providers (like say, the
|
| +chromedocs-multidevice bucker). In this case, you may want to force an update
|
| +of only the content_providers data.
|
| +
|
| + ./update_docs.sh --data-source=content_providers --force
|
| +
|
| +This will safely do the push for you, ensuring that the automated job
|
| +does not collide with your own.
|
| +
|
|
|