You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Protected files were modified in this change.
This pull request is in request_review mode and requires explicit human scrutiny before merge.
Protected files: README.md
What changed
Three inaccuracies in README.md's Reactive Collections (R3Ext.DynamicData) section, identified by cross-referencing the documentation against the actual source code and docs/LibraryParity.md.
1. SortExpressionComparer<T> code example — non-existent type
The quick-start code snippet used SortExpressionComparer<Person>.Ascending(p => p.Name):
SortExpressionComparer<T> is explicitly listed in docs/LibraryParity.md Known Gaps as not ported — the Sort operators accept IComparer<T> directly. Fixed to use Comparer<T>.Create(...), the recommended pattern per the parity doc.
2. SortAsync in the operator table — operator does not exist
The table listed Sort, SortAsync under Sorting. There is no SortAsync method anywhere in R3Ext.DynamicData. The fused sort+bind operator that does exist is SortAndBind (which has its own entry in docs/MigrationMatrix.md). Fixed to Sort, SortAndBind.
3. MergeChangeSet → MergeChangeSets — wrong method name
The table listed MergeChangeSet (singular). The actual public method in R3Ext.DynamicData/List/ObservableListEx.MergeChangeSets.cs is MergeChangeSets (plural).
Source correlation
No commits landed on main in the past 7 days; these pre-existing inaccuracies were surfaced by auditing the current codebase state against each documentation file. The SortExpressionComparer issue predates the June 12 rename commit and was never corrected.
This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch doc-sync/fix-readme-inaccuracies-bebd7e981ca9b714.
To fix the permissions issue, go to Settings → Actions → General and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ
Show patch preview (50 of 50 lines)
From be505b23b3fa2db6d84669c2231e6f2e82074fb3 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Sun, 28 Jun 2026 09:50:48 +0000
Subject: [PATCH] docs: fix three inaccuracies in README DynamicData section
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Replace non-existent SortExpressionComparer<T> in code example with
Comparer<T>.Create(...) — the supported pattern per LibraryParity.md
Known Gaps (SortExpressionComparer was never ported)
- Replace SortAsync with SortAndBind in the operator table — SortAsync
does not exist; SortAndBind is the fused sort+bind operator that does
- Fix MergeChangeSet → MergeChangeSets to match the actual method name
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 9fbbfc7..814f48c 100644
--- a/README.md+++ b/README.md@@ -113,7 +113,7 @@ var cache = new SourceCache<Person, int>(p => p.Id);
// Observe changes with automatic caching
cache.Connect()
.Filter(p => p.IsActive)
- .Sort(SortExpressionComparer<Person>.Ascending(p => p.Name))+ .Sort(Comparer<Person>.Create((a, b) => string.Compare(a.Name, b.Name, StringComparison.Ordinal)))
.Transform(p => new PersonViewModel(p))
.Bind(out var items) // Bind to ObservableCollection
.Subscribe();
@@ -139,10 +139,10 @@ cache.Connect()
| ------------------- | ---------------------------------------------- |
| **Filtering** | `Filter`, `FilterOnObservable`, `AutoRefresh` |
| **Transformation** | `Transform`, `TransformMany`, `TransformAsync` |
-| **Sorting** | `Sort`, `SortAsync` |+| **Sorting** | `Sort`, `SortAndBind` |
| **Grouping** | `Group`, `GroupWithImmutableState`, `GroupOn` |
| **Aggregation** | `Count`, `Sum`, `Avg`, `Min`, `Ma
... (truncated)
Caution
Protected files were modified in this change.
This pull request is in
request_reviewmode and requires explicit human scrutiny before merge.Protected files:
README.mdWhat changed
Three inaccuracies in
README.md's Reactive Collections (R3Ext.DynamicData) section, identified by cross-referencing the documentation against the actual source code anddocs/LibraryParity.md.1.
SortExpressionComparer<T>code example — non-existent typeThe quick-start code snippet used
SortExpressionComparer<Person>.Ascending(p => p.Name):SortExpressionComparer<T>is explicitly listed indocs/LibraryParity.mdKnown Gaps as not ported — theSortoperators acceptIComparer<T>directly. Fixed to useComparer<T>.Create(...), the recommended pattern per the parity doc.2.
SortAsyncin the operator table — operator does not existThe table listed
Sort,SortAsyncunder Sorting. There is noSortAsyncmethod anywhere inR3Ext.DynamicData. The fused sort+bind operator that does exist isSortAndBind(which has its own entry indocs/MigrationMatrix.md). Fixed toSort,SortAndBind.3.
MergeChangeSet→MergeChangeSets— wrong method nameThe table listed
MergeChangeSet(singular). The actual public method inR3Ext.DynamicData/List/ObservableListEx.MergeChangeSets.csisMergeChangeSets(plural).Source correlation
No commits landed on
mainin the past 7 days; these pre-existing inaccuracies were surfaced by auditing the current codebase state against each documentation file. TheSortExpressionComparerissue predates the June 12 rename commit and was never corrected.Note
This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch
doc-sync/fix-readme-inaccuracies-bebd7e981ca9b714.Click here to create the pull request
To fix the permissions issue, go to Settings → Actions → General and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ
Show patch preview (50 of 50 lines)