Skip to content
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 daemon ChangeProvider cleanup #3470

Merged
merged 7 commits into from Mar 10, 2023
Merged

Build daemon ChangeProvider cleanup #3470

merged 7 commits into from Mar 10, 2023

Conversation

jakemac53
Copy link
Contributor

Removes all methods from ChangeProvider, and extract only the relevant ones into separate subclasses which are now public (AutoChangeProvider vs ManualChangeProvider).

Previously these modes were conflated and the different impls provided essentially no-op implementations of the non-applicable apis.

This should fix the failures we are seeing on the bots, because the daemon was shutting down early due to an empty stream given by the manual change provider. This was broken in #3411, but we only recently published that change, and weren't using dependency overrides for the tests that were actually broken, so we only saw it after the publish.

@jakemac53
Copy link
Contributor Author

Note that there will be some minor breakage in the internal roll, should be easy to update atomically though with the roll CL.

@jakemac53 jakemac53 changed the title Build daemon cleanup Build daemon ChangeProvider cleanup Mar 10, 2023
@jakemac53
Copy link
Contributor Author

Also open to discussing whether we should explore a different, non-breaking change here. But I don't think there are a lot of clients of this package so the breaking change is likely ok?

///
/// The [collectChanges] method is a no-op for this implementation.
class AutoChangeProvider implements ChangeProvider {
class AutoChangeProviderImpl implements AutoChangeProvider {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh, I wish I had a better suggestion than "Impl" 😢

build_daemon/lib/daemon.dart Outdated Show resolved Hide resolved
@grouma
Copy link
Member

grouma commented Mar 10, 2023

Also open to discussing whether we should explore a different, non-breaking change here. But I don't think there are a lot of clients of this package so the breaking change is likely ok?

I assume you will handle pulling this into Google3? There's only one internal client which is used by a couple tools.

@jakemac53
Copy link
Contributor Author

I assume you will handle pulling this into Google3? There's only one internal client which is used by a couple tools.

Yes, its just the one client I could see that will need an update but it is very minor

@jakemac53 jakemac53 merged commit dbab06b into master Mar 10, 2023
57 checks passed
@jakemac53 jakemac53 deleted the build-daemon-cleanup branch March 10, 2023 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants