Skip to content

Commit

Permalink
Remove Ix and Rx.
Browse files Browse the repository at this point in the history
  • Loading branch information
StephenCleary committed Dec 9, 2023
1 parent 97561a5 commit f433084
Show file tree
Hide file tree
Showing 17 changed files with 19 additions and 981 deletions.
7 changes: 5 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# Changelog
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [6.3.0] - TBD
## [7.0.0] - TBD
### Changed
- The Rx and Ix extension methods have been removed.

### Fixed
- Changed `netcoreapp2.0` support to `netcoreapp3.0` to avoid high-security vulnerabilities. Technically, this is a breaking change, but I'm treating it as a fix since the vulnerabilities will never be patched.
- Changed `netcoreapp2.0` support to `netcoreapp3.0` to avoid high-security vulnerabilities.

## [6.2.2] - 2021-09-25
### Changed
Expand Down
50 changes: 4 additions & 46 deletions Nito.Comparers.sln
Original file line number Diff line number Diff line change
@@ -1,37 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30204.135
# Visual Studio Version 17
VisualStudioVersion = 17.8.34316.72
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BC7CC3DD-D397-484C-80AD-D220DA2A26AA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{F901251B-06CA-40F5-8F17-6E2BDBC82082}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nito.Comparers.Linq", "src\Nito.Comparers.Linq\Nito.Comparers.Linq.csproj", "{838AB69B-F21C-4FC1-B5D2-1B8202865EE0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nito.Comparers.Rx", "src\Nito.Comparers.Rx\Nito.Comparers.Rx.csproj", "{0F586282-CAD8-44BF-8C53-DB6E482CD672}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nito.Comparers.Ix", "src\Nito.Comparers.Ix\Nito.Comparers.Ix.csproj", "{11E5D52A-8B5E-40E9-9811-25F6DA215378}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests", "test\UnitTests\UnitTests.csproj", "{CB8B8D2F-9FBA-4EEA-ABF7-63F2300987D7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nito.Comparers.Core", "src\Nito.Comparers.Core\Nito.Comparers.Core.csproj", "{A59E8416-844C-4489-9761-3A5F0BDD6A46}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Linq.UnitTests", "test\Linq.UnitTests\Linq.UnitTests.csproj", "{710E0022-B4F7-44AD-B160-6A0FD1630B02}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ix.UnitTests", "test\Ix.UnitTests\Ix.UnitTests.csproj", "{7A40EBB3-6A23-4DD7-AE3A-A719CB844A9A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Rx.UnitTests", "test\Rx.UnitTests\Rx.UnitTests.csproj", "{C75C05AE-38DF-4610-B1B8-D020C41648FC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "metapackages", "metapackages", "{587831A7-8DD8-4404-9BDC-F04B7CBF1F30}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nito.Comparers", "src\Nito.Comparers\Nito.Comparers.csproj", "{B41E8870-D364-43A0-A980-4C6B784B59EA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Comparers", "src\Comparers\Comparers.csproj", "{E478BC39-BF61-4E3F-9112-02F7FD95EC88}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Comparers.Ix", "src\Comparers.Ix\Comparers.Ix.csproj", "{5BDEC41F-1122-48BF-8A8C-45DFB46FB78F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nito.Comparers", "src\Nito.Comparers\Nito.Comparers.csproj", "{B41E8870-D364-43A0-A980-4C6B784B59EA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Comparers.Rx", "src\Comparers.Rx\Comparers.Rx.csproj", "{FF0A27F6-6997-41C3-9951-C21B92A8FB5D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Comparers", "src\Comparers\Comparers.csproj", "{E478BC39-BF61-4E3F-9112-02F7FD95EC88}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -43,14 +31,6 @@ Global
{838AB69B-F21C-4FC1-B5D2-1B8202865EE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{838AB69B-F21C-4FC1-B5D2-1B8202865EE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{838AB69B-F21C-4FC1-B5D2-1B8202865EE0}.Release|Any CPU.Build.0 = Release|Any CPU
{0F586282-CAD8-44BF-8C53-DB6E482CD672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F586282-CAD8-44BF-8C53-DB6E482CD672}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F586282-CAD8-44BF-8C53-DB6E482CD672}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F586282-CAD8-44BF-8C53-DB6E482CD672}.Release|Any CPU.Build.0 = Release|Any CPU
{11E5D52A-8B5E-40E9-9811-25F6DA215378}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11E5D52A-8B5E-40E9-9811-25F6DA215378}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11E5D52A-8B5E-40E9-9811-25F6DA215378}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11E5D52A-8B5E-40E9-9811-25F6DA215378}.Release|Any CPU.Build.0 = Release|Any CPU
{CB8B8D2F-9FBA-4EEA-ABF7-63F2300987D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB8B8D2F-9FBA-4EEA-ABF7-63F2300987D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB8B8D2F-9FBA-4EEA-ABF7-63F2300987D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -63,14 +43,6 @@ Global
{710E0022-B4F7-44AD-B160-6A0FD1630B02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{710E0022-B4F7-44AD-B160-6A0FD1630B02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{710E0022-B4F7-44AD-B160-6A0FD1630B02}.Release|Any CPU.Build.0 = Release|Any CPU
{7A40EBB3-6A23-4DD7-AE3A-A719CB844A9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A40EBB3-6A23-4DD7-AE3A-A719CB844A9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A40EBB3-6A23-4DD7-AE3A-A719CB844A9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A40EBB3-6A23-4DD7-AE3A-A719CB844A9A}.Release|Any CPU.Build.0 = Release|Any CPU
{C75C05AE-38DF-4610-B1B8-D020C41648FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C75C05AE-38DF-4610-B1B8-D020C41648FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C75C05AE-38DF-4610-B1B8-D020C41648FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C75C05AE-38DF-4610-B1B8-D020C41648FC}.Release|Any CPU.Build.0 = Release|Any CPU
{B41E8870-D364-43A0-A980-4C6B784B59EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B41E8870-D364-43A0-A980-4C6B784B59EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B41E8870-D364-43A0-A980-4C6B784B59EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -79,31 +51,17 @@ Global
{E478BC39-BF61-4E3F-9112-02F7FD95EC88}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E478BC39-BF61-4E3F-9112-02F7FD95EC88}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E478BC39-BF61-4E3F-9112-02F7FD95EC88}.Release|Any CPU.Build.0 = Release|Any CPU
{5BDEC41F-1122-48BF-8A8C-45DFB46FB78F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BDEC41F-1122-48BF-8A8C-45DFB46FB78F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BDEC41F-1122-48BF-8A8C-45DFB46FB78F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BDEC41F-1122-48BF-8A8C-45DFB46FB78F}.Release|Any CPU.Build.0 = Release|Any CPU
{FF0A27F6-6997-41C3-9951-C21B92A8FB5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF0A27F6-6997-41C3-9951-C21B92A8FB5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF0A27F6-6997-41C3-9951-C21B92A8FB5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF0A27F6-6997-41C3-9951-C21B92A8FB5D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{838AB69B-F21C-4FC1-B5D2-1B8202865EE0} = {BC7CC3DD-D397-484C-80AD-D220DA2A26AA}
{0F586282-CAD8-44BF-8C53-DB6E482CD672} = {BC7CC3DD-D397-484C-80AD-D220DA2A26AA}
{11E5D52A-8B5E-40E9-9811-25F6DA215378} = {BC7CC3DD-D397-484C-80AD-D220DA2A26AA}
{CB8B8D2F-9FBA-4EEA-ABF7-63F2300987D7} = {F901251B-06CA-40F5-8F17-6E2BDBC82082}
{A59E8416-844C-4489-9761-3A5F0BDD6A46} = {BC7CC3DD-D397-484C-80AD-D220DA2A26AA}
{710E0022-B4F7-44AD-B160-6A0FD1630B02} = {F901251B-06CA-40F5-8F17-6E2BDBC82082}
{7A40EBB3-6A23-4DD7-AE3A-A719CB844A9A} = {F901251B-06CA-40F5-8F17-6E2BDBC82082}
{C75C05AE-38DF-4610-B1B8-D020C41648FC} = {F901251B-06CA-40F5-8F17-6E2BDBC82082}
{B41E8870-D364-43A0-A980-4C6B784B59EA} = {587831A7-8DD8-4404-9BDC-F04B7CBF1F30}
{E478BC39-BF61-4E3F-9112-02F7FD95EC88} = {587831A7-8DD8-4404-9BDC-F04B7CBF1F30}
{5BDEC41F-1122-48BF-8A8C-45DFB46FB78F} = {587831A7-8DD8-4404-9BDC-F04B7CBF1F30}
{FF0A27F6-6997-41C3-9951-C21B92A8FB5D} = {587831A7-8DD8-4404-9BDC-F04B7CBF1F30}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {660229D6-E1E9-47A5-AB64-F6977C60986D}
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The last comparison library you'll ever need! Wide platform support; fluent synt

## Creating Comparers

Install the [`Nito.Comparers` NuGet package](https://www.nuget.org/packages/Nito.Comparers). By default, this includes the [extension package for LINQ](https://www.nuget.org/packages/Nito.Comparers.Linq) support. There are also extension packages available for [System.Reactive (Rx)](https://www.nuget.org/packages/Nito.Comparers.Rx) and [System.Interactive (Ix)](https://www.nuget.org/packages/Nito.Comparers.Ix) support.
Install the [`Nito.Comparers` NuGet package](https://www.nuget.org/packages/Nito.Comparers). By default, this includes the [extension package for LINQ](https://www.nuget.org/packages/Nito.Comparers.Linq) support.

The comparer types are in the namespace `Nito.Comparers`.

Expand Down Expand Up @@ -98,7 +98,7 @@ List<IEnumerable<Person>> groups = ...;
groups.Sort(nameComparer.Sequence());
```

There's also natural extensions for LINQ, Rx, and Ix that allow you to define comparers on-the-fly (particularly useful for anonymous types):
There's also natural extensions for LINQ that allow you to define comparers on-the-fly (particularly useful for anonymous types):

```c#
IEnumerable<Person> people = ...;
Expand Down
2 changes: 1 addition & 1 deletion doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ The Comparers library has four main parts:
1. Comparer implementations. You can use the `ComparerBuilder` and `EqualityComparerBuilder` classes to [create comparer instances with a fluent API](key-comparers.md).
1. Extension methods for comparers. The `ComparerExtensions` and `EqualityComparerExtensions` classes provide [extensions that can be used to modify any comparer](comparer-extensions.md) (including custom or built-in comparers).
1. Assistance for a type defining its own default comparer. The `ComparableBase` and `EquatableBase` classes help [derived classes define a reasonable default comparer](default-comparers-for-your-types.md).
1. Extension methods for LINQ to Objects/Rx/Ix. All operators that take a comparer get overloads that allow a fluent API syntax for defining a comparer right within the LINQ query. This is particularly useful for [defining comparers over anonymous types](comparers-for-anonymous-types.md).
1. Extension methods for LINQ to Objects. All operators that take a comparer get overloads that allow a fluent API syntax for defining a comparer right within the LINQ query. This is particularly useful for [defining comparers over anonymous types](comparers-for-anonymous-types.md).

Every full comparer provided by this library implements `IFullComparer<T>`, which derives from all four interfaces `IComparer<T>`, `IComparer`, `IEqualityComparer<T>`, and `IEqualityComparer`. Every equality comparer provided by this library implements `IFullEqualityComparer<T>`, which derives from both `IEqualityComparer<T>` and `IEqualityComparer`.

Expand Down
4 changes: 2 additions & 2 deletions doc/comparers-for-anonymous-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ var sample = people.Select(x => new { GivenName = x.FirstName, Surname = x.LastN
var comparer = ComparerBuilder.For(() => sample).OrderBy(x => x.Surname);
```

All LINQ-to-Objects, System.Reactive, and System.Interactive methods that take comparers (or equality comparers) have overloads that permit the fluent comparer API right within the LINQ expression:
All LINQ-to-Objects methods that take comparers (or equality comparers) have overloads that permit the fluent comparer API right within the LINQ expression:

```C#
var trimmed = people.Select(x => new { GivenName = x.FirstName, Surname = x.LastName })
.Distinct(c => c.EquateBy(x => x.Surname));
```

Note that these overloads are in the `Nito.Comparers.Linq` namespace, and there are different NuGet packages for the [System.Reactive](https://www.nuget.org/packages/Nito.Comparers.Rx/) and [System.Interactive](https://www.nuget.org/packages/Nito.Comparers.Ix/) overloads.
Note that these overloads are in the `Nito.Comparers.Linq` namespace.
3 changes: 3 additions & 0 deletions doc/upgrade-notes/v6-to-v7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Upgrading from v6 to v7

Extension methods for Rx and Ix have been removed.
14 changes: 0 additions & 14 deletions src/Comparers.Ix/Comparers.Ix.csproj

This file was deleted.

14 changes: 0 additions & 14 deletions src/Comparers.Rx/Comparers.Rx.csproj

This file was deleted.

111 changes: 0 additions & 111 deletions src/Nito.Comparers.Ix/Linq/IxEnumerableExtensions.cs

This file was deleted.

Loading

0 comments on commit f433084

Please sign in to comment.