[Feature]: Make Avg, StdDev, Maximum and Minimum refresh-aware, consistent with Sum
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
Direzione di ricerca
Read the implementation of Sum and the changes in linked pull request #1219, then trace Avg, StdDev, Maximum, Minimum, Count, IsEmpty and IsNotEmpty through the ForAggregation pipeline. Compare their refresh behavior and decide which operators need stateful projections, immutable variants, or documentation; done means the aggregates behave consistently with the agreed 10.0 model and the release notes describe the behavior and memory impact.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the functionality desired 🐞
The changeset aggregates ignore Refresh. They go through the internal ForAggregation() pipeline, which drops refresh changes, so when an item is mutated in place and refreshed, the aggregate keeps the stale value.
#1167 makes Sum refresh-aware (and adds SumImmutable for the stateless behaviour). Once it merges, Sum will be the only aggregate that honours Refresh, which is inconsistent with Filter, Sort and Group, and with each other: Sum and Avg over the same pipeline would disagree after a refresh.
The remaining aggregates should follow the same model for 10.0.
The steps the functionality will provide
Avg(AvgEx): re-evaluate the selector onRefresh, using stored per-item projections likeSum.StdDev(StdDevEx): same.Maximum/Minimum(MaxEx): same; a refresh can move the extreme value, so the current max/min must be recomputed when the refreshed item held it.Count/IsEmpty/IsNotEmpty(CountEx): no selector, soRefreshcannot change the result. Confirm and document; no behaviour change expected.- Decide per operator whether to add an
*Immutablestateless variant, matchingSumImmutable. - Share one internal stateful helper rather than duplicating the cache and list bookkeeping per operator.
Considerations
Follow-up to #1167. This is a behavioural change (refresh now alters emitted values, and per-subscription memory becomes O(n)), so it should land in 10.0 alongside the Sum change and be called out in the release notes.
- Lingua principale
- C#
- Stelle
- 1.9k
- Fork
- 194
- Merge medio
- 12m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di reactivemarbles/DynamicData
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
reactivemarbles/DynamicData#1229 ·
I maintainer di solito rispondono entro 1 giorno
-
infrastructure
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
reactivemarbles/DynamicData#1089 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: ChangeAwareList merges an insert one slot before a pending AddRange, corrupting list order downstreamForse già presa @dwcullop l’ha presa 9 giorni fa. Apertabug
Difficoltà 3/5 Mezza giornata Idoneità per principianti 63/100
reactivemarbles/DynamicData#1225 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
reactivemarbles/DynamicData#1196 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: RemoveKey loses entry identity for equal values and produces invalid list indexesForse già presa @dwcullop l’ha presa 51 giorni fa. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
reactivemarbles/DynamicData#1182 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di reactivemarbles/DynamicData
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
immichFrame/ImmichFrame#735 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dimitar-radenkov/Pointframe#318 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
DotHarness/dotcraft#546 ·
I maintainer di solito rispondono entro 1 giorno
-
a-corriger bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
christian-raj/S-Aloha#303 · 1 commento ·
-
Input editor says "Apply Changes" even when no changes have been made.Forse già presa @hcooper l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
MobiFlight/MobiFlight-Connector#3526 ·
I maintainer di solito rispondono entro 1 giorno