You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: dwds/CONTRIBUTING.md
+41-1Lines changed: 41 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -17,5 +17,45 @@ You need to do the following:
17
17
*`rm webdev/webdev/pubspec.lock`
18
18
* Then, from `/webdev/webdev` run `dart pub get`
19
19
20
+
## Changes required when submitting a PR
21
+
* Make sure you update the `CHANGELOG.md` with a description of the change
22
+
* If DWDS / Webdev was just released, then you will need to update the version in the `CHANGELOG`, and the `pubspec.yaml` file as well (eg, https://github.com/dart-lang/webdev/pull/1462)
23
+
* For any directories you’ve touched, `run dart run build_runner` build to check in the any file that should be built. This will make sure the integration tests are run against the built files.
24
+
20
25
## Release steps
21
-
TODO
26
+
27
+
### Step 1: Roll DWDS into g3
28
+
> *NOTE: You must be a Googler to do this step. If you are not, please ask someone for help.*
29
+
* See directions at: go/roll-dwds
30
+
* Wait a few days after rolling into g3 before continuing to step 2. We do so to have time to catch new bugs internally before publishing externally. Look for any new exceptions at go/ddt-web-dashboard
31
+
32
+
## Step 2: Publish DWDS to pub
33
+
* Make sure you are on the Dart stable SDK version (check with `dart --version`)
34
+
* From each of the subdirectories (`/dwds`, `/frontend_server_client`, `/frontend_server_common`, and `/webdev`) update dependencies with `dart pub upgrade`
35
+
* Update the version number in `dwds/pubspec.yaml` and `dwds/CHANGELOG.md`
36
+
* From `/dwds` run `dart run build_runner build`, this will build and update the version in `/dwds/lib/src/version.dart`
37
+
* Submit a PR with those changes (example PR: https://github.com/dart-lang/webdev/pull/1456). *Note: Ensure your PR doesn’t have any dependency overrides.*
38
+
* Once the PR is submitted, pull from master and `run dart pub publish`
39
+
* Finally, go to https://github.com/dart-lang/webdev/releases and create a new release, eg https://github.com/dart-lang/webdev/releases/tag/dwds-v12.0.0. You might need to delete some of the content of the autogenerated notes.
40
+
> *Note: To have the right permissions for publishing, you need to be invited to the tools.dart.dev. A member of the Dart team should be able to add you at https://pub.dev/publishers/tools.dart.dev/admin.*
41
+
42
+
## Step 3: Publish Webdev to pub
43
+
> *Note: DWDS is a dependency of Webdev, which is why DWDS must be published before Webdev can be published.*
44
+
* Make sure you are on the Dart stable SDK version (check with `dart --version`)
45
+
* Update the DWDS version in `/webdev/pubspec.yaml` to match the newly released DWDS version, and update the Webdev version to the new version number. Also, comment out the dependency_override so that Webdev is now depending on the version of DWDS on pub (which should have just been published) instead of the local version.
46
+
* Update `/webdev/CHANGELOG.md` to match the new webdev version
47
+
* From `/webdev`, run `dart pub upgrade`
48
+
* From `/webdev` run `dart run build_runner build`, this will build and update the version in `webdev/lib/src/version.dart`
49
+
* Submit a PR with those changes (example PR: https://github.com/dart-lang/webdev/pull/1498)
50
+
* Once the PR is submitted, pull from master and run `dart pub publish`
51
+
* Finally, go to https://github.com/dart-lang/webdev/releases and create a new release, eg https://github.com/dart-lang/webdev/releases/tag/webdev-v2.7.8. You might need to delete some of the content of the autogenerated notes.
52
+
53
+
## Whenever the Dart SDK is updated
54
+
Whenever Dart SDK is updated to a new major or minor version (~every 2 weeks), any PR submissions to Webdev are blocked by the min_sdk_test until the Dart min SDK constraint is updated. Therefore, whenever your PR gets blocked by the test, you need to:
55
+
1. Create a new PR that updates all the min SDK constraints to the new version, eg: https://github.com/dart-lang/webdev/pull/1463.
56
+
2. From each of the subdirectories (`/dwds`, `/frontend_server_client`, `/frontend_server_common`, and `/webdev`) update dependencies with `dart pub upgrade`
57
+
3. Make sure to update the `CHANGELOG` to include the new version number
58
+
4. Submit your PR. At this point, you technically will be able to submit the PR that was blocked, but the point of the test is to make sure that DWDS and Webdev get released after a Dart stable release. Therefore, follow the steps above to publish DWDS and Webdev.
59
+
> ### Why is this necessary?
60
+
> This is so that we don’t need to support older versions of the SDK and test against them, therefore every time the Dart SDK is bumped to a new major or minor version, DWDS and Webdev’s min Dart SDK constraint needs to to be changed and DWDS and Webdev have to be released.
61
+
> Since DWDS is dependent on DDC and the runtime API, if we had a looser min constraint we would need to run tests for all earlier stable releases of the SDK that match the constraint, which would have differences in functionality and therefore need different tests.
0 commit comments