Skip to content

Release v4.0.0 — .NET 10 support and new extensions#48

Merged
NavneetHegde merged 1 commit intomainfrom
release/4.0
Feb 19, 2026
Merged

Release v4.0.0 — .NET 10 support and new extensions#48
NavneetHegde merged 1 commit intomainfrom
release/4.0

Conversation

@NavneetHegde
Copy link
Owner

Summary

  • Bump version to 4.0.0 and add net10.0 target framework (.NET 8, 9, 10)
  • Update CI/CD to build, test, and publish NuGet package from .NET 10
  • Add new String extensions: Reverse, ContainsIgnoreCase, Left, Right, WordCount, EnsureStartsWith, EnsureEndsWith, FromShortGuid
  • Add new DateTime extensions: IsWeekday, IsBetween, ToUnixTimestamp, StartOfMonth, EndOfMonth, StartOfWeek, DaysInMonth
  • Add new Integer extensions: IsBetween, IsPositive, IsNegative
  • Add new Decimal extensions: IsPositive, IsNegative

Breaking Changes

  • ToSHA256Hash now returns lowercase hex (was Base64), matching ToMD5Hash
  • ToCurrency now defaults to InvariantCulture (was CurrentCulture)

Fixes

  • IsEmail / IsJson parameter changed to string? for nullable consistency
  • IsInteger now trims input before parsing, consistent with ParseToInt
  • ToKebabCase now uses compiled/source-generated regex instead of inline Regex.Replace
  • FromBase64 narrows exception catch to FormatException
  • ToSHA256Hash null check changed to IsNullOrEmpty for consistency with ToMD5Hash

Test plan

  • All 336 tests pass on .NET 8, 9, and 10
  • New extension methods have corresponding [Theory]/[InlineData] tests
  • CI workflow triggers on push to release/4.0

🤖 Generated with Claude Code

- Bump version to 4.0.0 and add net10.0 target framework
- Update CI/CD to build, test, and publish from .NET 10
- Add String: Reverse, ContainsIgnoreCase, Left, Right, WordCount, EnsureStartsWith, EnsureEndsWith, FromShortGuid
- Add DateTime: IsWeekday, IsBetween, ToUnixTimestamp, StartOfMonth, EndOfMonth, StartOfWeek, DaysInMonth
- Add Integer: IsBetween, IsPositive, IsNegative
- Add Decimal: IsPositive, IsNegative
- Fix ToSHA256Hash to return lowercase hex (breaking change); ToCurrency defaults to InvariantCulture (breaking change)
- Fix IsEmail/IsJson parameter nullability, IsInteger trims input, ToKebabCase uses compiled regex
- Add AGENTS.md, CLAUDE.md, and docs

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@NavneetHegde NavneetHegde changed the base branch from release/3.2 to main February 19, 2026 05:54
@NavneetHegde NavneetHegde merged commit 3501dbf into main Feb 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant