Skip to content

Feature/implement new domain layer for adding step logic#1

Merged
blaze6950 merged 8 commits intomainfrom
feature/implement-new-domain-layer-for-adding-step-logic
Jan 30, 2026
Merged

Feature/implement new domain layer for adding step logic#1
blaze6950 merged 8 commits intomainfrom
feature/implement-new-domain-layer-for-adding-step-logic

Conversation

@blaze6950
Copy link
Collaborator

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:

  • Added separate GitHub Actions workflows for Domain.Abstractions, Domain.Default, and Domain.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]
  • Updated the main Intervals.NET workflow to collect code coverage using XPlat Code Coverage, upload reports to Codecov, and improve test invocation and artifact handling. The workflow now triggers only on relevant file changes. (.github/workflows/intervals-net.yml, previously ci-cd.yml) [1] [2] [3]

Test Coverage Improvements:

  • Added 50 new unit tests, raising coverage from ~86% to 95%+, with comprehensive documentation in 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:

  • Updated Intervals.NET.sln to 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

  • Added dedicated GitHub Actions workflows for Domain.Abstractions, Domain.Default, and Domain.Extensions projects, each with build, test, and NuGet publishing jobs, enabling modular and maintainable CI/CD. [1] [2] [3]
  • Enhanced the main Intervals.NET workflow 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

  • Increased overall test coverage from ~86% to 95%+ by adding 50 new unit tests, focusing on edge cases, error handling, and internal logic; documented improvements in COVERAGE_IMPROVEMENTS.md.

Solution and Artifact Management

  • Updated Intervals.NET.sln to include new workflow files, domain projects, and benchmark report artifacts, ensuring all new components are tracked and organized within the solution. [1] [2] [3]

Mykyta Zotov added 3 commits January 28, 2026 04:21
…, 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
@blaze6950 blaze6950 self-assigned this Jan 30, 2026
Copilot AI review requested due to automatic review settings January 30, 2026 00:33
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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., Range immutability, RangeValue null-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_VERSION is set to 8.x.x, which is not a valid version specifier for actions/setup-dotnet (it expects values like 8.x or 8.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.

@codecov-commenter
Copy link

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 ☂️

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.paths does 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:20
  • actions/setup-dotnet does not accept 8.x.x as a valid dotnet-version spec. This will cause the workflow to fail to provision the SDK. Use 8.x or 8.0.x (or pin an exact version).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

… distance calculations for fixed-step domains
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@blaze6950 blaze6950 merged commit c11327f into main Jan 30, 2026
8 checks passed
@blaze6950 blaze6950 deleted the feature/implement-new-domain-layer-for-adding-step-logic branch January 30, 2026 01:45
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.

3 participants