-
Notifications
You must be signed in to change notification settings - Fork 211
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
build_web_compilers shouldn't have an upper SDK bound. #3598
Comments
The upper bound isn't just there for no reason... we have a somewhat tight upper bound as an agreement with the web compiler team, because it allows those tools (and others) to make breaking changes to their command line arguments, etc. If we are notified in advance of the version change, we could pre-emptively bump the max SDK limit ahead of time? |
New versions have been published that allow 3.3.x, not closing this for now though since I think there is more discussion to be had for future releases. |
Fwiw - we have a similar situation with |
Thanks for the quick answers. Yeah we'll definitely need to have solutions here and I'm happy to help find them :) Because right now it can be pretty impossible to start work on the next dart version and we need to significantly reduce issues like this |
I am definitely happy to do a pre-emptive bump. It typically should not take more than a day of turnaround time. I just don't know how to coordinate that with the releases. These pre-emptive version bumps could go out even a couple weeks before the actual release. |
go/dash-team-releases has a lot of information and a spreadsheet where you can register yourself for action items that must be taken during a release. :) Once the 3.3 bump goes through, I'll learn more about the classes of problems that people need solved and try to make this process easier for everyone :) |
I added a row to the release checklist template under the dart_internal bump |
Is that sufficient to close this issue? Presumably I will get assigned a task for future releases? |
mmm - something seems odd to me from the checklist process, I believe this needs to happen before we bump the version in the SDK, but currently we are thinking about this in terms of the release steps after the bump. |
This is happening again for the 3.4 version bump. Please publish a version with build_web_compilers that supports 3.4 :) @itsjustkevin I think this release step somehow didn't get onto the release instructions, can you work with these build_web_compilers folks can get into the release procedures? This should ideally happen before we do the final merge to beta, where we do the main version bump immediately after. Can you give us a deeper explanation of why this package needs an upper sdk constraint and why alternatives aren't possible? It's a bit of an antipattern whenever packages need to do this and this package is the only such package that causes problems for our release bumps -- a process that's already too complicated and risky. You mentioned something about needing to keep the package in sync with the Dart SDK and wanting to bypass the breaking change policy. Might it be possible to build a stable interface between this package and the dart sdk, so it can learn what it needs from the Dart SDK and support future releases? The breaking change policy is something of a feature in this regard rather than a problem since it encourages us to build stable interfaces that are durable. On the other hand, if this package is that tightly coupled with the Dart SDK, then perhaps it should be developed as part of the Dart SDK? That's where we got all the other packages that need the tight coupling. I'm curious to learn more so we can simplify and derisk our release procedures :) |
Thanks for tagging me @sortie, this may be a good time for a full review and revamp of the release checklist, as many processes have evolved. |
Yes, this is to give the web compiler team some flexibility for changes to the CLI. If we want to add more of the CLI to our breaking change policy I think it should be discussed with @sigmundch
We might be able to do that, potentially with this package or with a new package like |
Basically what Nate said, this package has a tight SDK dependency because it utilizes directly various tools shipped with the SDK. As an example, sometimes certain resources (SDK summaries for example), change their location or format. Sometimes snapshots are deleted entirely, and we move to utilizing Having the package be tightly versioned with the SDK helps to shield such breakage from our users, by ensuring they have a version compatible with their SDK. I do not believe we can reasonably move this package into the SDK, because we do not support SDK package dependencies for Dart, and this package is built upon lots of other pub packages so it cannot reasonably be a |
Also, to add to Nate & Jake's comments, I believe tightening breaking change policies for CLI APIs to avoid this issue would likely be too strict. The one policy I can imagine would be to bump Dart's major version every time we change internals of the CLI like those Jake mentioned (flags, snapshots, sdk file locations, etc). That seems a bit too much, and probably more trouble than the current approach (since it will require bumping a lot more packages out there). Usually tests on this package run on every dev release, so breakages are detected before they go out on the beta/stable channels. I believe that's sufficient to prepare ahead and adjust constraints early. By the time we are doing branch alignment for a minor version bump, we know already whether we need a new release with broader constraint or a new release with a non-overlapping constraint. @sortie / @itsjustkevin - aside from the technical ideas like creating a new library/package, is there anything you'd like to do to make the release process go smoother? For example, I believe now we have included a step of publishing this package in the release checklist, right? Is it at the right time in the process? Would it help to do the publishing at a different time (e.g. before the branch is created and branch alignment starts?) |
+1 I think this is a process issue and not a technical issue. We can publish these versions well in advance, we just need to be notified to do so. Afaik we don't have similar issues with |
I think the suggestion was to continue publishing on pub, but to move development to the SDK repo, so the SDK version bump and the change to the dependency constraint can happen together. If we think |
Ah, you still have to publish to pub though? I believe the tests that fail are pulling build_web_compilers from pub, as they are testing the true user experience end to end. If we used an override in the tests, we risk forgetting to publish prior to the real release, and we lose general validation of dependency constraints. |
Somebody needs to fix build_web_compilers so it doesn't have an upper sdk limit because it blocks our ability to make releases. Right now if we bump the sdk version, the test will fail, blocking out ability to update the sdk version after cutting a stable release.
The tests
are failing on configurations
https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket/8768040075748241681/+/u/test_results/new_test_failures__logs_
The text was updated successfully, but these errors were encountered: