Skip to content

[MV3] Prepare extension for release #1886

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions dwds/debug_extension_mv3/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
## Building

> Note: First make the script executable: `chmod +x tool/build_extension.sh`

- For development: `./tool/build_extension.sh`
- For release: `./tool/build_extension.sh 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.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).
13 changes: 13 additions & 0 deletions dwds/debug_extension_mv3/tool/build_extension.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,24 @@
# Builds the unminifed dart2js app (see DDC issue: https://github.com/dart-lang/sdk/issues/49869):
# ./tool/build_extension.sh


prod="false"

case "$1" in
prod)
prod="true"
shift;;
esac

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Building dart2js-compiled extension to /compiled directory."
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
dart run build_runner build web --output build --release

if [ $prod == true ]; then
exit 1
fi

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Updating manifest.json in /compiled directory."
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
Expand Down
4 changes: 2 additions & 2 deletions dwds/debug_extension_mv3/web/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "MV3 Dart Debug Extension",
"version": "1.0",
"name": "Dart Debug Extension",
"version": "1.31",
"manifest_version": 3,
"devtools_page": "static_assets/devtools.html",
"action": {
Expand Down