Skip to content

Audit internalized APIs: ensure all global configuration has public non-builder path #4303

@glennawatson

Description

@glennawatson

Context

Raised in #4296 by @ChaseFlorell. The v21+ builder migration internalized several configuration points. DefaultExceptionHandler is the one Chase hit (#4302), but we should audit all global configuration to ensure no other settings were locked behind internal without a public non-builder alternative.

Scope

Audit these global state holders and their configuration paths:

Class/Property Current Access Builder Method Needs Public API?
RxState.DefaultExceptionHandler internal setter WithExceptionHandler() Yes (#4302)
RxSchedulers.MainThreadScheduler ? WithMainThreadScheduler() Audit
RxSchedulers.TaskpoolScheduler ? WithTaskpoolScheduler() Audit
RxCacheSize ? WithSmallCacheLimit() / WithBigCacheLimit() Audit
Suspension host config ? WithSuspensionHost() Audit
IMessageBus ? WithMessageBus() Audit

Acceptance Criteria

  • All global settings that were previously publicly configurable have a public configuration path (builder OR direct)
  • Document which settings are builder-only by design vs. which have public alternatives
  • No breaking changes for existing builder users

Files to Audit

  • src/ReactiveUI/RxState.cs
  • src/ReactiveUI/RxSchedulers.cs
  • src/ReactiveUI/RxCacheSize.cs
  • src/ReactiveUI/Builder/ReactiveUIBuilder.cs
  • src/ReactiveUI/Mixins/BuilderMixins.cs

Related: #4296, #4302

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions