Skip to content

[doc-sync] Fix stale API references and labels in README #37

Description

@github-actions

Caution

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

Summary

This PR corrects three inaccurate API references and two stale labels in README.md that have been out of sync with the actual codebase.


Changes

1. Replace non-existent SortExpressionComparer<T> in quick-start example

SortExpressionComparer<T> is explicitly listed as a Known Gap in docs/LibraryParity.md — it was not ported from DynamicData. The quick-start code example referenced it, which would fail to compile for any user copying the snippet.

Fix: replaced with Comparer<Person>.Create(...), which is the documented alternative.

2. Replace non-existent SortAsync in the operators table

SortAsync does not exist in R3Ext.DynamicData. The fused sort-and-bind operator is SortAndBind (implemented in Cache/ObservableCacheEx.SortAndBind.cs).

Fix: updated table cell from `Sort`, `SortAsync` to `Sort`, `SortAndBind`.

3. Fix MergeChangeSetMergeChangeSets

The correct operator name is MergeChangeSets (plural), matching the public API in List/ObservableListEx.MergeChangeSets.cs.

Fix: corrected the spelling in the operators table.

4. Remove stale (NEW!) labels from project structure tree

The (NEW!) markers on R3Ext.DynamicData/ and R3Ext.DynamicData.Tests/ in the project structure section were carried over from when the DynamicData port was first introduced. The package is now established and fully integrated; the labels are misleading.

Fix: removed both (NEW!) labels.


Related

  • Fixes identified by reviewing the 53d312aa rename commit (June 12 2026) and correlating against the live codebase.
  • docs/LibraryParity.md already documents the SortExpressionComparer<T> gap; this PR makes the README consistent with that.
  • Previous doc-sync branches (doc-sync/fix-readme-api-inaccuracies-*, doc-sync/fix-readme-inaccuracies-*) identified the same three API issues but were never opened as PRs.

Generated by 📚 Documentation Sync · sonnet46 4.1M ·


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-docs-july-2026-aa490b74c31f36a7.

Click here to create the pull request

To fix the permissions issue, go to SettingsActionsGeneral and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ

Show patch preview (68 of 68 lines)
From 2704181858590c6e22670a4d5bf2044ab36c6b06 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Tue, 7 Jul 2026 10:06:15 +0000
Subject: [PATCH] docs: fix stale API references and stale labels in README
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Replace non-existent SortExpressionComparer<T>.Ascending() with
  Comparer<T>.Create() in the quick-start code example (SortExpressionComparer
  is a known gap documented in LibraryParity.md)
- Replace non-existent SortAsync with SortAndBind in the operators table
- Fix MergeChangeSet → MergeChangeSets (correct operator name)
  R3Ext.DynamicData.Tests entries in the project structure tree

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 README.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 9fbbfc7..17ad77f 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`, `Max`           
... (truncated)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions