Conversation
…, ushort, uint, long, ulong, float, double, decimal) and enhance domain abstractions with interfaces for fixed and variable step sizes
…step domains, including handling of edge cases and boundary conditions
There was a problem hiding this comment.
Pull request overview
This PR introduces a new domain layer (abstractions, default domains, and domain extensions) alongside CI/CD workflow changes and expanded test coverage.
Changes:
- Added Domain.* projects (Abstractions/Default/Extensions) plus new Domain.Default/Domain.Extensions test projects.
- Updated core range APIs (e.g.,
Rangeimmutability,RangeValuenull-handling) and expanded factory methods (Range.Create). - Added/updated GitHub Actions workflows and documentation/benchmark artifacts.
Reviewed changes
Copilot reviewed 134 out of 136 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/intervals-net.yml |
Builds/tests Intervals.NET and uploads coverage to Codecov. |
.github/workflows/domain-abstractions.yml |
Adds CI/CD workflow for Domain.Abstractions. |
.github/workflows/domain-default.yml |
Adds CI/CD workflow for Domain.Default and its tests. |
.github/workflows/domain-extensions.yml |
Adds CI/CD workflow for Domain.Extensions and its tests. |
src/Intervals.NET/Range.cs |
Makes Range<T> properties get-only (prevents with-mutation). |
src/Intervals.NET/RangeValue.cs |
Adds explicit handling for nullable finite values in CompareTo/GetHashCode. |
src/Intervals.NET/Factories/RangeFactory.cs |
Broadens factory constraints to IComparable<T> and adds Create(...) factory. |
src/Intervals.NET/Parsers/RangeStringParser.cs |
Refactors parse flow and multi-comma separator handling. |
src/Domain/Intervals.NET.Domain.Default/** |
Adds many default domain implementations (numeric/date/time/business days). |
src/Domain/Intervals.NET.Domain.Extensions/** |
Adds domain-aware range operations (Shift, Expand, etc.). |
tests/** |
Adds new tests and new test projects for domain packages. |
Comments suppressed due to low confidence (1)
.github/workflows/intervals-net.yml:20
DOTNET_VERSIONis set to8.x.x, which is not a valid version specifier foractions/setup-dotnet(it expects values like8.xor8.0.x). This will likely break CI environment setup; update the version string accordingly.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...main/Intervals.NET.Domain.Default/Calendar/StandardDateOnlyBusinessDaysVariableStepDomain.cs
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default/Numeric/IntegerFixedStepDomain.cs
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default.Numeric/ULongFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default.Numeric/UIntFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
tests/Intervals.NET.Domain.Extensions.Tests/Fixed/RangeDomainExtensionsTests.cs
Outdated
Show resolved
Hide resolved
tests/Intervals.NET.Tests/RangeInterpolatedStringParserTests.cs
Outdated
Show resolved
Hide resolved
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment Thanks for integrating Codecov - We've got you covered ☂️ |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 134 out of 136 changed files in this pull request and generated 8 comments.
Comments suppressed due to low confidence (2)
.github/workflows/intervals-net.yml:15
on.pull_request.pathsdoes not include.github/workflows/intervals-net.yml, so PRs that only change this workflow file will not run CI. Include the workflow path here as well if you want workflow changes validated before merge.
.github/workflows/intervals-net.yml:20actions/setup-dotnetdoes not accept8.x.xas a validdotnet-versionspec. This will cause the workflow to fail to provision the SDK. Use8.xor8.0.x(or pin an exact version).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/Domain/Intervals.NET.Domain.Default.Numeric/FloatFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default.Numeric/SByteFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default.Numeric/ByteFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default.Numeric/ShortFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 134 out of 136 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...main/Intervals.NET.Domain.Default/Calendar/StandardDateOnlyBusinessDaysVariableStepDomain.cs
Show resolved
Hide resolved
src/Domain/Intervals.NET.Domain.Default.Numeric/ULongFixedStepDomain.cs
Outdated
Show resolved
Hide resolved
… distance calculations for fixed-step domains
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 134 out of 136 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request introduces significant improvements to the CI/CD pipeline and test coverage for the Intervals.NET solution. The main highlights include the addition of dedicated GitHub Actions workflows for each domain project, major enhancements to test coverage (from ~86% to 95%+), and updates to the solution file to reflect the new structure and artifacts. These changes collectively improve build reliability, test robustness, and maintainability.
CI/CD Workflow Enhancements:
Domain.Abstractions,Domain.Default, andDomain.Extensions, each with build, test, and NuGet publish steps, ensuring isolated and targeted CI/CD for each domain package. (.github/workflows/domain-abstractions.yml, .github/workflows/domain-default.yml, .github/workflows/domain-extensions.yml) [1] [2] [3]Test Coverage Improvements:
COVERAGE_IMPROVEMENTS.md. The new tests target previously untested code paths, edge cases, and error handling, especially in parsing, range construction, and state machine logic. (COVERAGE_IMPROVEMENTS.md)Solution Structure Updates:
Intervals.NET.slnto include new workflow files, domain projects, and benchmark reports, reflecting the expanded solution structure and ensuring all relevant artifacts are tracked. (Intervals.NET.sln) [1] [2] [3]Most Important Changes:
CI/CD Pipeline Improvements
Domain.Abstractions,Domain.Default, andDomain.Extensionsprojects, each with build, test, and NuGet publishing jobs, enabling modular and maintainable CI/CD. [1] [2] [3]Intervals.NETworkflow to include code coverage collection, Codecov integration, and improved build/test steps; triggers are now more targeted to relevant file changes. [1] [2] [3]Test Coverage and Quality
COVERAGE_IMPROVEMENTS.md.Solution and Artifact Management
Intervals.NET.slnto include new workflow files, domain projects, and benchmark report artifacts, ensuring all new components are tracked and organized within the solution. [1] [2] [3]