Skip to content

Releases: CommunityToolkit/dotnet

8.1.0 Preview 2

13 Dec 17:44
Compare
Choose a tag to compare
8.1.0 Preview 2 Pre-release
Pre-release

Breaking changes (since 8.1.0 Preview 1) 💥

  • The StreamExtensions.Read<T> method now throws an EndOfStreamException when reaching end of stream

What's Changed (since 8.0.0) 🆕

  • Use Nullable.GetValueRefOrDefaultRef where possible by @Sergio0694 in #499
  • Bump NuGet packages to latest stable versions by @Sergio0694 in #501
  • Drop .NET Core 3.1 TFM by @Sergio0694 in #502
  • Fix IBufferWriterExtensions type of exception thrown documentation by @pziezio in #497
  • Move all source files into src\subfolder by @Sergio0694 in #507
  • Use PolySharp for polyfills, and centralize shared MSBuild properties by @Sergio0694 in #510
  • Replace Unsafe.SizeOf<T>() with sizeof(T) by @Sergio0694 in #511
  • Replace Unsafe.NullRef<T>() with ref *(T*)null by @Sergio0694 in #512
  • Fix StreamExtensions.Read<T> when using buffered streams by @Sergio0694 in #520
  • Use ref fields on .NET 7 for all span-like types by @Sergio0694 in #519
  • Add analyzer for incorrect [INotifyPropertyChanged] and [ObservableObject] use by @Sergio0694 in #531
  • Add analyzer for references to fields with [ObservableProperty] by @Sergio0694 in #532
  • Use Stream.ReadExactly on .NET 7 by @Sergio0694 in #535

New Contributors

Full Changelog: v8.1.0-preview1...v8.1.0-preview2

8.1.0 Preview 1

03 Nov 00:56
Compare
Choose a tag to compare
8.1.0 Preview 1 Pre-release
Pre-release

Breaking changes (since 8.0.0) 💥

  • All Ref<T>-like types in the HighPerformance package are now .NET 7 only
  • Removed a .NET Standard 2.0 only overload for LockExtensions (which was marked as preview)

What's Changed (since 8.0.0) 🆕

New Contributors

Full Changelog: v8.0.0...v8.1.0-preview1

8.0.0

04 Aug 15:25
96517ea
Compare
Choose a tag to compare

Breaking changes (since 7.1.x) 💥

  • #292: Add FlowExceptionsToTaskScheduler command option
  • #288: Rename attributes, enable class-level support
    • [AlsoNotifyChangeFor] ---> [NotifyPropertyChangedFor]
    • [AlsoNotifyCanExecuteFor] ---> [NotifyCanExecuteChangedFor]
    • [AlsoValidateProperty] ---> [NotifyDataErrorInfo]
    • [AlsoBroadcastChange] ---> [NotifyPropertyChangeRecipients]
    • [ICommand] ---> [RelayCommand]
  • #248: Block [ObservableProperty] on properties causing conflicts
  • #267: property validation is now opt-in, and [NotifyDataErrorInfo] is needed
  • #169: Revamp observable collection APIs
  • #183: Remove SpinLock extension taking an object
  • #190: Change IndexOf APIs to return -1 if not found
  • #173: Remove obsolete APIs
  • #151: Move collection types to MVVM Toolkit
  • #131: Remove CanExecute checks from Execute logic
  • #113: Propagate task exceptions to TaskScheduler.UnobservedTaskException
  • #127: Switch async commands to default to no concurrent execution
  • #79: Add [RequiresPreviewFeatures] to unsafe APIs (HighPerformance)
  • #77: Strip source generator attributes by default (MVVM Toolkit)
  • #63: Switch source generators to incremental generators (MVVM Toolkit)
  • #60: Add null checks for parameters of public APIs (MVVM Toolkit)
  • #42: Switch .NET 5 target to .NET 6
  • Remove .NET Standard 1.4, .NET Core 2.1 and .NET 5 targets.
  • Switch setters in attribute properties to init-only. (MVVM Toolkit)
  • Move NullabilityExtensions to CommunityToolkit.HighPerformance namespace. (HighPerformance)

Improvements (since 7.1.x) ✨

  • #285: Properly forward nullability annotations for [ICommand]
  • #277: Add diagnostic for duplicate ICommand-s in base types
  • #279: Add support for "On" prefix for command methods
  • #284: Use ".g.cs" extension for all generated files
  • #267: Add [AlsoValidateProperty] attribute
  • #181: Fix [ICommand] generator crashing with overloads, add diagnostics
  • #161: Allow Task-returns on methods with [ICommand]
  • #179: Make NullabilityAttributesGenerator incremental
  • #141: Extend source generator diagnostics in several scenarios
  • #119: [ObservableProperty] generates partial OnPropertyChanging/Changed methods
  • #128: Add cancel command support
  • #135: Add [DynamicallyAccessedMembers] annotations
  • #122: Fix async command event notifications
  • #124: Add to generated observable properties
  • #64: Add NullableExtensions.DangerousGetValueOrNullReference (HighPerformance)
  • #30: Add concurrency control to AsyncRelayCommand types (MVVM Toolkit)
  • #48: Enable INotifyPropertyChanging AppContext switch (MVVM Toolkit)
  • #50: Add [ICommand] CanExecute property (MVVM Toolkit)
  • #29: Add [CallerArgumentExpression] to Guard APIs (Diagnostics)
  • #66: Add vectorized Count support for nint/nuint (HighPerformance)
  • #70: Add interpolated handler overload for Guard.IsTrue/IsFalse (Diagnostics)
  • #53: Add [AlsoNotifyCanExecuteFor] attribute (MVVM Toolkit)
  • #78: Remove class constraint from Guard.Is[Not]Null APIs (Diagnostics)
  • #76: Add trimming support
  • #68: Add [StackTraceHidden] attribute to internal ThrowHelper type (Diagnostics)
  • #69: Remove [Pure] attribute usages
  • #67: Add missing trailing dot to exception messages (Diagnostics)
  • #47: Switch all generated code to global:: (MVVM Toolkit)
  • #31: Improve header for generated files (MVVM Toolkit)
  • #59: Optimize StrongReferenceMessenger (MVVM Toolkit)
  • #44: Optimize WeakReferenceMessenger (MVVM Toolkit)

NOTE: for a full list of all changes in past previews, see the changelog for 8.0.0 Preview1-4.

What's Changed (since 8.0.0-Preview4) 🆕

New Contributors

Full Changelog: v8.0.0-preview4...v8.0.0

8.0.0 Preview 4

07 Jun 10:30
Compare
Choose a tag to compare
8.0.0 Preview 4 Pre-release
Pre-release

Changes:

Breaking Changes 💥:

  • #292: Add FlowExceptionsToTaskScheduler command option
  • #288: Rename attributes, enable class-level support
    • [AlsoNotifyChangeFor] ---> [NotifyPropertyChangedFor]
    • [AlsoNotifyCanExecuteFor] ---> [NotifyCanExecuteChangedFor]
    • [AlsoValidateProperty] ---> [NotifyDataErrorInfo]
    • [AlsoBroadcastChange] ---> [NotifyPropertyChangeRecipients]
    • [ICommand] ---> [RelayCommand]
  • #248: Block [ObservableProperty] on properties causing conflicts
  • #267: property validation is now opt-in, and [NotifyDataErrorInfo] is needed

Improvements ✨:

  • #285: Properly forward nullability annotations for [ICommand]
  • #277: Add diagnostic for duplicate ICommand-s in base types
  • #279: Add support for "On" prefix for command methods
  • #284: Use ".g.cs" extension for all generated files
  • #267: Add [AlsoValidateProperty] attribute

Bugs 🐛:

  • #254: Latest preview assemblies are not signed
  • #224: [ObservableProperty] Mvvm SourceGenerator does not work for Generics

Others:

  • #290: Update Company and Authors metadata items
  • #289: Strong-name sign assemblies
  • #275: Fix ICommand generator with inherited CanExecute members
  • #276: Fix source generators for types in global namespace
  • #278: Enable trim analyzers in MVVM Toolkit again
  • #281: Remove temporary strings in source generators formatting
  • #237: Typos
  • #258: Fix [ICommand] CanExecute with inherited generated property
  • #261: Fix build errors with generic generation target types
  • #260: Disable source generators for abstract types
  • #250: Fix [AlsoBroadcastChange] not working when followed by other attributes
  • #249: Make source generators culture invariant
  • #247: Remove [Conditional] from MVVM Toolkit attributes
  • #236: Fix ObservableValidator duplicate generated partial declarations
  • #211: Fix generation of nested types that are not classes

This list of changes was auto generated.

8.0.0 Preview 3

07 Apr 11:02
Compare
Choose a tag to compare
8.0.0 Preview 3 Pre-release
Pre-release

Changes:

Breaking Changes 💥:

  • #169: Revamp observable collection APIs
  • #183: Remove SpinLock extension taking an object
  • #190: Change IndexOf APIs to return -1 if not found
  • #173: Remove obsolete APIs
  • #151: Move collection types to MVVM Toolkit

Improvements ✨:

  • #181: Fix [ICommand] generator crashing with overloads, add diagnostics
  • #161: Allow Task-returns on methods with [ICommand]
  • #179: Make NullabilityAttributesGenerator incremental
  • #141: Extend source generator diagnostics in several scenarios

Others:

  • #202: Fix incorrect MVVMTK0015 with inherited members
  • #184: Fix MissingMethodExceptions for Stream extensions
  • #160: Fix nullability annotations in generated properties
  • #152: Add new [AlsoBroadcastChange] attribute
  • #139: Fix async relay command CanExecute raised with no concurrency

This list of changes was auto generated.

8.0.0 Preview 2

10 Mar 22:18
Compare
Choose a tag to compare
8.0.0 Preview 2 Pre-release
Pre-release

Changes:

Breaking Changes 💥:

  • #131: Remove CanExecute checks from Execute logic
  • #113: Propagate task exceptions to TaskScheduler.UnobservedTaskException
  • #127: Switch async commands to default to no concurrent execution

New features 🆕:

  • #119: [ObservableProperty] generates partial OnPropertyChanging/Changed methods
  • #128: Add cancel command support

Improvements ✨:

  • #135: Add [DynamicallyAccessedMembers] annotations
  • #122: Fix async command event notifications
  • #124: Add to generated observable properties

Bugs 🐛:

  • #13: MVVM Source Generators: CS1028 Error if #region block
  • #45: StrongReferenceMessenger.Unregister[All] fixes

Others:

  • #132: Remove [DebuggerNonUserCode] from visible members
  • #134: Remove ArrayPoolBufferWriter explicit constructor
  • #130: Fixed typos in Span2D implicit operators
  • #120: Fix IRecipient generator for partial recipient declarations
  • #111: Fix AsyncRelayCommand with allowConcurrentExecutions == false not raising CanExecuteChanged
  • #110: Fix [ObservableRecipient] with inherited base attributes

This list of changes was auto generated.

8.0.0 Preview 1

25 Jan 11:13
Compare
Choose a tag to compare
8.0.0 Preview 1 Pre-release
Pre-release

Changes:

Breaking Changes 💥:

  • #79: Add [RequiresPreviewFeatures] to unsafe APIs (HighPerformance)
  • #77: Strip source generator attributes by default (MVVM Toolkit)
  • #63: Switch source generators to incremental generators (MVVM Toolkit)
  • #60: Add null checks for parameters of public APIs (MVVM Toolkit)
  • #42: Switch .NET 5 target to .NET 6
  • Remove .NET Standard 1.4, .NET Core 2.1 and .NET 5 targets.
  • Switch setters in attribute properties to init-only. (MVVM Toolkit)
  • Move NullabilityExtensions to CommunityToolkit.HighPerformance namespace. (HighPerformance)

New features 🆕:

  • #64: Add NullableExtensions.DangerousGetValueOrNullReference (HighPerformance)
  • #30: Add concurrency control to AsyncRelayCommand types (MVVM Toolkit)
  • #48: Enable INotifyPropertyChanging AppContext switch (MVVM Toolkit)
  • #50: Add [ICommand] CanExecute property (MVVM Toolkit)
  • #29: Add [CallerArgumentExpression] to Guard APIs (Diagnostics)
  • #66: Add vectorized Count support for nint/nuint (HighPerformance)
  • #70: Add interpolated handler overload for Guard.IsTrue/IsFalse (Diagnostics)
  • #53: Add [AlsoNotifyCanExecuteFor] attribute (MVVM Toolkit)

Improvements ✨:

  • #78: Remove class constraint from Guard.Is[Not]Null APIs (Diagnostics)
  • #76: Add trimming support
  • #68: Add [StackTraceHidden] attribute to internal ThrowHelper type (Diagnostics)
  • #69: Remove [Pure] attribute usages
  • #67: Add missing trailing dot to exception messages (Diagnostics)
  • #47: Switch all generated code to global:: (MVVM Toolkit)
  • #31: Improve header for generated files (MVVM Toolkit)
  • #59: Optimize StrongReferenceMessenger (MVVM Toolkit)
  • #44: Optimize WeakReferenceMessenger (MVVM Toolkit)

Bug fixes 🐛:

  • #13: MVVM Source Generators: CS1028 Error if #region block (MVVM Toolkit)
  • #45: StrongReferenceMessenger.Unregister[All] fixes (MVVM Toolkit)
  • #65: Fix RuntimeHelpers.IsReferenceOrContainsReferences polyfill (HighPerformance)

Documentation 📃:

  • #84: Fix linter issues with ReadMe
  • #58: Small Typo In ObservableProperty XML Docs

Others:

  • #92: Disable generation of header files if no targets are present (MVVM Toolkit)
  • #91: Update .targets for MVVM Toolkit to fix .wapproj issues (MVVM Toolkit)
  • #90: Update base version number to reflect upcoming version
  • #88: Bump NuGet package reference versions
  • #89: Fix conflicting generation of nullability attributes (MVVM Toolkit)
  • #87: Calculate the current C# compiler version (MVVM Toolkit)
  • #75: Minor code style tweaks
  • #6: Update readme build number and add contributor image
  • #4: Test CI Setup

This list of changes was auto generated.