-
Notifications
You must be signed in to change notification settings - Fork 537
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
Rationalize ISummaryConfiguration & ISummaryRuntimeOptions #9990
Comments
I suppose 1 and 2 can be easily done on main. @vladsud in order to change ISummaryConfiguration and/or ISummaryRuntimeOptions we will need to change the protocol-definitions and probably do the change on next. Should I proceed? If we decide to do it, I would probably move these fields from ISummaryRuntimeOptions to ISummaryConfiguration: disableSummaries?: boolean; And ISummaryConfiguration, ISummaryRuntimeOptions would be:
|
Once your PR #9965 hits 100% saturation, we will remove ISummaryConfiguration from protocol altogether. We do not need to wait for it, we can define new version of ISummaryConfiguration in container-runtime layer and start using it, i.e. place it next to ISummaryRuntimeOptions. I think we should simplify further. I do not like partiality of settings - this will never work (as they work in tandem). So, we either overwrite all settings, or none of them. So summaryConfigOverrides should be optional, but not partial. If it's provided, it overwrites defaults, if it's not provided - it does not overwrite defaults. I'd suggest removing ISummarizerOptions, and figure out how to incorporate disableHeuristics into summaryConfigOverrides. In other places we do something like that: interface ISummaryConfigurationCore {
idleTime: number;
maxTime: number;
maxOps: number;
maxAckWaitTime: number;
maxOpsSinceLastSummary?: number;
};
type ISummaryConfiguration=
{
state: "disabled";
// We should check, but my cursory glance suggests there is no way to run a summary in this mode.
} | {
state: "disableHeuristics";
maxAckWaitTime: number;
// whatever other settings are used in this mode - I assume maxAckWaitTime is used.
} | ({ state: "enabled";} & ISummaryConfigurationCore); In other words - it should not be possible to pass (or require) data that are not used. need better names for interfaces - "Core" is just an example of how to slice it. |
Please note that's a breaking change, so it likely needs to go to next branch (or whatever it's called). |
@vladsud we also have the IClientConfiguration that contains the summary get from the server. Should I remove it as well? Perhaps, we can do it in 2 steps and keep it for now (and use the original one under ISummaryConfigurationOld). Thoughts ?
|
I'd recommend opening a bug and do it in a month. |
filed #10050 to track the removal. |
@NicholasCouri, Can you please summarize what's left here? |
Once PR #9965 is in, we should look closer to ISummaryRuntimeOptions:
The text was updated successfully, but these errors were encountered: