Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 11 additions & 3 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env:

jobs:
build:
runs-on: windows-2022
runs-on: windows-latest
outputs:
nbgv: ${{ steps.nbgv.outputs.SemVer2 }}
steps:
Expand All @@ -21,14 +21,22 @@ jobs:
fetch-depth: 0
lfs: true

- name: Setup .NET 6/7/8/9
uses: actions/setup-dotnet@v5
- name: Setup .NET (With cache)
uses: actions/setup-dotnet@v5.0.1
with:
dotnet-version: |
6.0.x
7.0.x
8.0.x
9.0.x
10.0.x
cache: true
cache-dependency-path: |
**/Directory.Packages.props
**/*.sln
**/*.csproj
**/global.json
**/nuget.config

- name: NBGV
id: nbgv
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env:

jobs:
release:
runs-on: windows-2022
runs-on: windows-latest
environment:
name: release
outputs:
Expand All @@ -22,15 +22,23 @@ jobs:
with:
fetch-depth: 0

- name: Setup .NET 6/7/8/9
uses: actions/setup-dotnet@v5
- name: Setup .NET (With cache)
uses: actions/setup-dotnet@v5.0.1
with:
dotnet-version: |
6.0.x
7.0.x
8.0.x
9.0.x

10.0.x
cache: true
cache-dependency-path: |
**/Directory.Packages.props
**/*.sln
**/*.csproj
**/global.json
**/nuget.config

- name: NBGV
id: nbgv
uses: dotnet/nbgv@master
Expand Down
9 changes: 2 additions & 7 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<Project>
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591;1701;1702;1705;VSX1000</NoWarn>
<NoWarn>$(NoWarn);1591;1701;1702;1705;VSX1000;CA1510</NoWarn>
<Platform>AnyCPU</Platform>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
Expand Down Expand Up @@ -35,11 +35,6 @@
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

<!-- MonoAndroid doesn't seem to want to allow debugging for maintainers -->
<PropertyGroup Condition=" $(TargetFramework.StartsWith('MonoAndroid')) ">
<DebugType>Full</DebugType>
</PropertyGroup>

<PropertyGroup Condition="$(IsTestProject) OR $(IsBenchmarkProject)">
<IsPackable>false</IsPackable>
Expand All @@ -63,7 +58,7 @@
<PackageReference Include="Nerdbank.GitVersioning" Version="3.9.50" PrivateAssets="all" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework) == 'netstandard2.0'">
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.5" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.10" />
</ItemGroup>
<ItemGroup Condition="!$(IsTestProject) AND !$(IsBenchmarkProject)">
<PackageReference Include="stylecop.analyzers" Version="1.2.0-beta.556" PrivateAssets="all" />
Expand Down
40 changes: 2 additions & 38 deletions src/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,11 @@
<Product>$(AssemblyName) ($(TargetFramework))</Product>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('uap'))">
<DefineConstants>$(DefineConstants);WINDOWS_UWP;P_LINQ</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('net4'))">
<DefineConstants>$(DefineConstants);P_LINQ;SUPPORTS_BINDINGLIST</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('netstandard'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;PORTABLE;P_LINQ;SUPPORTS_BINDINGLIST</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="($(TargetFramework) == 'netstandard2.0') OR ($(TargetFramework) == 'netstandard2.1')">
<DefineConstants>$(DefineConstants);SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('netcoreapp'))">
<DefineConstants>$(DefineConstants);NETCOREAPP;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="($(TargetFramework) == 'netcoreapp3.0') OR ($(TargetFramework) == 'netcoreapp3.1')">
<DefineConstants>$(DefineConstants);SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('net5'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;PORTABLE;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('net6'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;PORTABLE;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('net7'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;PORTABLE;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('net8'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;PORTABLE;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="$(TargetFramework.StartsWith('net9'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;PORTABLE;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
<PropertyGroup Condition="$(TargetFramework.StartsWith('netstandard')) or $(TargetFramework.StartsWith('net6')) or $(TargetFramework.StartsWith('net7')) or $(TargetFramework.StartsWith('net8')) or $(TargetFramework.StartsWith('net9')) or $(TargetFramework.StartsWith('net10'))">
<DefineConstants>$(DefineConstants);NETSTANDARD;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE</DefineConstants>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,6 @@ namespace DynamicData.Binding
protected virtual void OnPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null) { }
protected virtual void SetAndRaise<T>(ref T backingField, T newValue, [System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null) { }
protected virtual void SetAndRaise<T>(ref T backingField, T newValue, System.Collections.Generic.IEqualityComparer<T>? comparer, [System.Runtime.CompilerServices.CallerMemberName] string? propertyName = null) { }
[System.Obsolete("This never worked properly in the first place")]
public System.IDisposable SuspendNotifications(bool invokePropertyChangeEventWhenDisposed = true) { }
}
public class BindingListAdaptor<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] T> : DynamicData.IChangeSetAdaptor<T>
where T : notnull
Expand Down Expand Up @@ -469,7 +467,7 @@ namespace DynamicData.Binding
public static bool operator !=(DynamicData.Binding.PropertyValue<TObject, TValue>? left, DynamicData.Binding.PropertyValue<TObject, TValue>? right) { }
public static bool operator ==(DynamicData.Binding.PropertyValue<TObject, TValue>? left, DynamicData.Binding.PropertyValue<TObject, TValue>? right) { }
}
public struct SortAndBindOptions : System.IEquatable<DynamicData.Binding.SortAndBindOptions>
public readonly struct SortAndBindOptions : System.IEquatable<DynamicData.Binding.SortAndBindOptions>
{
public SortAndBindOptions() { }
public int InitialCapacity { get; init; }
Expand Down Expand Up @@ -1344,10 +1342,6 @@ namespace DynamicData
public static System.IObservable<DynamicData.IChangeSet<TObject, TKey>> FilterOnObservable<TObject, TKey>(this System.IObservable<DynamicData.IChangeSet<TObject, TKey>> source, System.Func<TObject, TKey, System.IObservable<bool>> filterFactory, System.TimeSpan? buffer = default, System.Reactive.Concurrency.IScheduler? scheduler = null)
where TObject : notnull
where TKey : notnull { }
[System.Obsolete("Use AutoRefresh(), followed by Filter() instead")]
public static System.IObservable<DynamicData.IChangeSet<TObject, TKey>> FilterOnProperty<TObject, TKey, TProperty>(this System.IObservable<DynamicData.IChangeSet<TObject, TKey>> source, System.Linq.Expressions.Expression<System.Func<TObject, TProperty>> propertySelector, System.Func<TObject, bool> predicate, System.TimeSpan? propertyChangedThrottle = default, System.Reactive.Concurrency.IScheduler? scheduler = null)
where TObject : System.ComponentModel.INotifyPropertyChanged
where TKey : notnull { }
[System.Obsolete("This can cause unhandled exception issues so do not use")]
public static System.IObservable<T> FinallySafe<T>(this System.IObservable<T> source, System.Action finallyAction) { }
public static System.IObservable<DynamicData.Change<TObject, TKey>> Flatten<TObject, TKey>(this System.IObservable<DynamicData.IChangeSet<TObject, TKey>> source)
Expand Down Expand Up @@ -2528,7 +2522,6 @@ namespace DynamicData
public static System.IObservable<DynamicData.IChangeSet<T>> Xor<T>(this System.IObservable<DynamicData.IChangeSet<T>> source, params System.IObservable<DynamicData.IChangeSet<T>>[] others)
where T : notnull { }
}
public static class ObsoleteEx { }
public class PageContext<TObject> : System.IEquatable<DynamicData.PageContext<TObject>>
{
public PageContext(DynamicData.Operators.IPageResponse Response, System.Collections.Generic.IComparer<TObject> Comparer, DynamicData.SortAndPageOptions Options) { }
Expand Down
80 changes: 0 additions & 80 deletions src/DynamicData.Tests/Cache/FilterOnPropertyFixture.cs

This file was deleted.

4 changes: 2 additions & 2 deletions src/DynamicData.Tests/DynamicData.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="MSBuild.Sdk.Extras">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net9.0</TargetFrameworks>
<NoWarn>$(NoWarn);CS0618;CA1801;CA1812;CA1816;CA1062;CA1063;CS8767;CS8602;CS8618;IDE1006</NoWarn>
Expand All @@ -11,7 +11,7 @@

<ItemGroup>
<PackageReference Include="Bogus" Version="35.*" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.*" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.*" />
<PackageReference Include="xunit" Version="$(XunitVersion)" />
<PackageReference Include="xunit.runner.console" Version="$(XunitVersion)" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.*" />
Expand Down
5 changes: 2 additions & 3 deletions src/DynamicData.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31808.319
# Visual Studio Version 18
VisualStudioVersion = 18.1.11312.151 d18.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamicData", "DynamicData\DynamicData.csproj", "{FE903921-6C55-40E3-9A16-4127ECACC12C}"
EndProject
Expand All @@ -12,7 +12,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".other", ".other", "{DFCC45
..\.github\workflows\ci-build.yml = ..\.github\workflows\ci-build.yml
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
global.json = global.json
..\nuget.config = ..\nuget.config
..\README.md = ..\README.md
..\.github\workflows\release.yml = ..\.github\workflows\release.yml
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/AggregateEnumerator.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/AggregateItem.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/AggregateType.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/AggregationEx.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/Avg.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/AvgEx.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/CountEx.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
6 changes: 2 additions & 4 deletions src/DynamicData/Aggregation/IAggregateChangeSet.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand All @@ -8,6 +8,4 @@ namespace DynamicData.Aggregation;
/// A change set which has been shaped for rapid online aggregations.
/// </summary>
/// <typeparam name="T">The type of the item.</typeparam>
public interface IAggregateChangeSet<T> : IEnumerable<AggregateItem<T>>
{
}
public interface IAggregateChangeSet<T> : IEnumerable<AggregateItem<T>>;
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/MaxEx.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/StdDev.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/StdDevEx.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Aggregation/SumEx.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Alias/ObservableCacheAlias.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Alias/ObservableListAlias.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Attributes.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011-2023 Roland Pheasant. All rights reserved.
// Copyright (c) 2011-2025 Roland Pheasant. All rights reserved.
// Roland Pheasant licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

Expand Down
Loading
Loading