-
Notifications
You must be signed in to change notification settings - Fork 81
Proposal: testing strategy using the Dart stable SDK #2226
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
Comments
I don't think you need the You could have a job which runs on stable, and just does a |
That makes sense for testing that Webdev works as expected. The actual problem in this case was the Dart stable SDK was incompatible with the DWDS version Webdev was using. We have DWDS tests that would have caught the issue (see https://github.com/dart-lang/webdev/actions/runs/6149799798/job/16686493467?pr=2228) but not any Webdev tests. So ideally we could leverage our existing DWDS tests, instead of adding a Webdev integration test that would require interacting with DevTools to set a breakpoint, etc. We could potentially use |
I think we can just have a cron job using latest stable SDK and pulling the webdev using pub global activate, and running the webdev e2e tests (they include some evaluation so i think the bug would have been detected in this scenario, of if not we can easily add a test for it). All we need to know if we have a working webdev for the latest sdk, am I right? |
Ah interesting, we do have evaluation tests in webdev (https://github.com/dart-lang/webdev/blob/master/webdev/test/e2e_test.dart#L472). It doesn't look like they detected this particular regression: https://github.com/dart-lang/webdev/actions/runs/6149799798/job/16686493467?pr=2228 I think running the webdev e2e tests on a cron job would be a good first step. However, I also think this regression is a good reason to add more comprehensive stable testing for both our Webdev and DWDS releases |
Ah, I've realized the problem with this approach. Because we are almost developing Webdev with an SDK constraint that includes the current stable (for example, right now Dart stable is at 3.1.3 but our SDK constraint is ^3.2.0-36.0.dev), we can't run any tests in Webdev if we are on Dart stable:
|
You should be able to This would only really work for true integration tests (tests which are actually separate packages where you can just run any version of webdev from within that package, and not necessarily the local version). |
Unfortunately we don't have true integration tests in Webdev. I think I've figured out a different way to get Stable test coverage, I've opened up #2251. It adds a daily Github workflow that will:
I think we should be able to expand it to add stable testing for DWDS as well (by parsing the DWDS version in the checked-out Webdev pubspec). |
Follow up to dart-lang/sdk#53459
We currently run Webdev and DWDS tests on the main and dev channels of the Dart SDK, but not the stable channel. This is because feature development in DWDS/Webdev often requires never versions of the SDK than what's on the stable channel. However, this means that breakages when using the stable channel might not be caught (see dart-lang/sdk#53459).
We could add testing for our latest stable releases against the latest stable Dart SDK by:
latest-dev
and the latest release using a stable SDK constraint aslatest-stable
(Note: we could also use pre-release versions for versions depending on unstable Dart SDK versions)latest-stable
latest-stable
SDK constraintslatest-dev
SDK constraintslatest-stable
DWDS/Webdev versionsThe text was updated successfully, but these errors were encountered: