| ## Building |
| |
| - For development: `dart run tool/build_extension.dart` |
| - For release: ` dart run tool/build_extension.dart --prod` |
| |
| The dart2js-compiled extension will be located in the `/compiled` directory. |
| |
| ## Local Development |
| |
| ### \[For Googlers\] Create an `extension_key.txt` file: |
| |
| - Create a `extension_key.txt` file at the root of `/debug_extension`. Paste in |
| the value of one of the whitelisted developer keys into this txt file. |
| IMPORTANT: DO NOT COMMIT THE KEY. It will be copied into the `manifest.json` |
| when you build the extension. |
| |
| ### Build and upload your local extension |
| |
| - Build the extension following the instructions above |
| - Visit chrome://extensions |
| - Toggle "Developer mode" on |
| - Click the "Load unpacked" button |
| - Select the extension directory: `/compiled` |
| |
| ### Debug your local extension |
| |
| - Click the Extensions puzzle piece, and pin the Dart Debug Extension with the |
| dev icon (unpin the published version so you don't confuse them) |
| - You can now use the extension normally by clicking it when a local Dart web |
| application has loaded in a Chrome tab |
| - To debug, visit chrome://extensions and click "Inspect view on background |
| page" to open Chrome DevTools for the extension |
| - More debugging information can be found in the |
| [Chrome Developers documentation](https://developer.chrome.com/docs/extensions/mv3/devguide/) |
| |
| ## Release process |
| |
| - Update the version in `web/manifest_mv2.json`, `web/manifest_mv3.json`, `pubspec.yaml`, and in the |
| `CHANGELOG`. |
| - Follow the instructions above to build the release version of the extension. |
| |
| > \*At this point, you should manually verify that everything is working by |
| > following the steps in [Local Development](#local-development), except load |
| > the extension from the `compiled` directory. You will need to add an extension |
| > key to the `manifest.json` file in `compiled` to test locally. |
| |
| - Open a PR to submit the version change. |
| - Once submitted, pull the changes down to your local branch, and create a zip |
| of the `compiled` directory. **Remove the Googler extension key that was added |
| by the builder to the `manifest.json` file.** |
| - Rename the zip `version_XX.XX.XX.zip` (eg, `version_1.24.0.zip`) and add it to |
| the go/dart-debug-extension-zips folder |
| |
| > _You must be a Googler to do this. Ask for help if not._ |
| |
| - Go to the |
| [Chrome Web Store Developer Dashboard](https://chrome.google.com/webstore/devconsole). |
| - At the top-right, under Publisher, select dart-bat. |
| |
| > _If you don’t see dart-bat as an option, you will need someone on the Dart |
| > team to add you to the dart-bat Google group._ |
| |
| - Under Items, select the "Dart Debug Extension". |
| - Go to “Package” then select “Upload new package”. |
| |
| > _The first time you do this, you will be asked to pay a $5 registration fee. |
| > The registration fee can be expensed._ |
| |
| - Upload the zip file you created in step 4. |
| - Save as draft, and verify that the new version is correct. |
| - Publish. The extension will be published immediately after going through the |
| review process. |
| |
| ## Rollback process |
| |
| > The Chrome Web Store Developer Dashboard does not support rollbacks. Instead |
| > you must re-publish an earlier version. This means that the extension will |
| > still have to go through the review process, which can take anywhere from a |
| > few hours (most common) to a few days. |
| |
| - Find the previous version you want to rollback to in the |
| go/dart-debug-extension-zips folder. |
| |
| > _You must be a Googler to do this. Ask for help if not._ |
| |
| - Unzip the version you have chosen, and in `manifest.json` edit the version |
| number to be the next sequential version after the current "bad" version (eg, |
| the bad version is `1.28.0` and you are rolling back to version `1.27.0`. |
| Therefore you change `1.27.0` to `1.29.0`). |
| - Re-zip the directory and rename it to the new version number. Add it to the |
| go/dart-debug-extension-zips folder. |
| - Now, follow steps 6 - 11 in [Release process](#release-process). |