Skip to content

chore: update copyright year to 2026, bump version to 7.5, automate release and copyright updates - #135

Merged
wforney merged 5 commits into
mainfrom
copilot/update-copyright-year-and-versions
Aug 13, 2026
Merged

chore: update copyright year to 2026, bump version to 7.5, automate release and copyright updates#135
wforney merged 5 commits into
mainfrom
copilot/update-copyright-year-and-versions

Conversation

Copilot AI commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Addresses stale copyright year, manual version bumping, and the lack of automated release triggering.

Copyright year

  • Directory.Build.props and README.md: 20252026

Version bump

  • Directory.Build.props: hardcoded major.minor 7.47.5

Release automation (release.yml)

  • Added push trigger on main so every merge produces a release; previously required manual workflow_dispatch
  • Upgraded actions/checkout@v3@v4
  • Semantic versioning via mathieudutour/github-tag-action already in place (conventional commits drive fix:→patch, feat:→minor, BREAKING CHANGE→major)

Annual copyright workflow (new: update-copyright.yml)

  • Runs on cron: '0 0 1 1 *' (Jan 1 UTC) and on workflow_dispatch
  • Replaces Copyright © <year> in both files using [System.IO.File]::WriteAllText (preserves trailing newlines)
  • Opens a PR on a year-specific branch (chore/update-copyright-year-<YYYY>) to avoid conflicts with prior years' open PRs

Copilot AI and others added 2 commits August 13, 2026 06:03
…elease and copyright updates

Co-authored-by: wforney <79032+wforney@users.noreply.github.com>
…s in update-copyright workflow

Co-authored-by: wforney <79032+wforney@users.noreply.github.com>
Copilot AI requested a review from wforney August 13, 2026 06:05
@wforney
wforney marked this pull request as ready for review August 13, 2026 06:07
Copilot AI lite review requested due to automatic review settings August 13, 2026 06:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 updates project metadata (copyright year and version prefix) and adjusts GitHub Actions workflows to automate releases on merges to main and automate annual copyright updates via a scheduled PR.

Changes:

  • Updated copyright year to 2026 in README.md and Directory.Build.props.
  • Bumped the Release build Version prefix from 7.4 to 7.5 in Directory.Build.props.
  • Added a scheduled workflow to open an annual copyright update PR, and enabled release workflow runs on push to main while upgrading actions/checkout to v4.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
README.md Updates the displayed copyright year in the License section.
Directory.Build.props Updates package metadata copyright year and bumps the Release Version prefix to 7.5.
.github/workflows/update-copyright.yml Adds a scheduled + manual workflow to update copyright years and open a PR.
.github/workflows/release.yml Triggers releases on pushes to main and upgrades actions/checkout to v4.
Suppressed comments (1)

.github/workflows/release.yml:36

  • Same concern in the release job: without fetching full history/tags, the tag/changelog calculation can be incomplete or incorrect. Configure checkout to fetch full history.
    - uses: actions/checkout@v4

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/update-copyright.yml Outdated
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

Summary

Summary
Generated on: 8/13/2026 - 6:28:20 AM
Parser: Cobertura
Assemblies: 4
Classes: 195
Files: 158
Line coverage: 42.4% (3213 of 7567)
Covered lines: 3213
Uncovered lines: 4354
Coverable lines: 7567
Total lines: 19611
Branch coverage: 25.1% (1087 of 4324)
Covered branches: 1087
Total branches: 4324
Method coverage: Feature is only available for sponsors

Coverage

SharedCode.Core - 27.3%
Name Line Branch
SharedCode.Core 27.3% 24.8%
SharedCode.AssemblyExtensions 100% 100%
SharedCode.Attributes.DataFormatAttribute 100% 100%
SharedCode.Attributes.DataWidthAttribute 100% 100%
SharedCode.Attributes.StringValueAttribute 100% 100%
SharedCode.BaseException 100% 50%
SharedCode.Calendar.DateTimeExtensions 10.8% 0.7%
SharedCode.Calendar.DateTimeOffsetExtensions 70.3% 44.2%
SharedCode.Calendar.DayOfWeekExtensions 90.9% 87.5%
SharedCode.Collections.ArrayExtensions 92% 73.3%
SharedCode.Collections.Generic.EnumerableExtensions 0% 0%
SharedCode.Collections.Generic.EnumerableExtensions 0% 0%
SharedCode.Collections.Generic.EnumerationUtilities 100%
SharedCode.Collections.ListExtensions 14.2% 12.5%
SharedCode.Collections.ObservableCollectionExtensions 0% 0%
SharedCode.Data.DataReaderExtensions 0% 0%
SharedCode.Data.DataRowExtensions 0% 0%
SharedCode.Data.DataTableExtensions 0% 0%
SharedCode.DateTimeExtensions 0% 0%
SharedCode.DateTimeOffsetExtensions 0% 0%
SharedCode.Domain.Error 88.8%
SharedCode.Domain.ErrorResult 90.9% 100%
SharedCode.Domain.ErrorResult 72.7% 50%
SharedCode.Domain.HttpErrorResult 50%
SharedCode.Domain.Result 100%
SharedCode.Domain.Result 88.8%
SharedCode.Domain.ValidationError 75%
SharedCode.Domain.ValidationErrorResult 80%
SharedCode.Enum 93.2% 83.9%
SharedCode.Enum 50%
SharedCode.EnumExtensions 100%
SharedCode.EventArgs 100%
SharedCode.EventHandlerExtensions 75% 75%
SharedCode.Events.DomainEvent 0%
SharedCode.ExceptionExtensions 51% 32.7%
SharedCode.Extensions 23.6% 14.4%
SharedCode.Extensions 23.6% 14.4%
SharedCode.FluentTimeSpan 66.2% 71.4%
SharedCode.FunctionExtensions 100% 83.3%
SharedCode.FunctionExtensions<T, TResult> 100% 83.3%
SharedCode.IntExtensions 100% 100%
SharedCode.IO.BufferedWriter 0% 0%
SharedCode.IO.DirectoryInfoExtensions 0% 0%
SharedCode.IO.FileInfoExtensions 0% 0%
SharedCode.IO.StreamExtensions 0% 0%
SharedCode.IO.TcpClientExtensions 0% 0%
SharedCode.Linq.CollectionExtensions 59.3% 52.3%
SharedCode.Linq.CollectionExtensions.SyncChanges 0%
SharedCode.Linq.CollectionExtensions<T, TKey> 59.3% 52.3%
SharedCode.Linq.CollectionExtensions 59.3% 52.3%
SharedCode.Linq.EnumerableExtensions 32.7% 26.1%
SharedCode.Linq.EnumerableExtensions<T, TKey> 32.7% 26.1%
SharedCode.Linq.EnumerableExtensions<T, TResult> 32.7% 26.1%
SharedCode.Linq.EnumerableExtensions 32.7% 26.1%
SharedCode.Linq.EnumerableExtensions<TKey, TValue> 32.7% 26.1%
SharedCode.Linq.EnumeratorExtensions 0% 0%
SharedCode.Linq.ExpressionExtensions 0% 0%
SharedCode.Linq.PredicateBuilder 0% 0%
SharedCode.Linq.Predicates 100% 100%
SharedCode.Linq.QueryableExtensions 0%
SharedCode.Linq.QueryableExtensions 0%
SharedCode.Models.Entity 100%
SharedCode.Models.Entity 75% 75%
SharedCode.Notifications.Notification 0% 0%
SharedCode.Notifications.NotificationService 0% 0%
SharedCode.Notifications.ObservableExtensions 0% 0%
SharedCode.Notifications.ObservableExtensions 0% 0%
SharedCode.Notifications.ProducerConsumer 0% 0%
SharedCode.NumberExtensions 100%
SharedCode.Problems.Problem 0% 0%
SharedCode.Problems.ProblemConstants.Types 0%
SharedCode.Problems.ProblemCreationExtensions 0%
SharedCode.Problems.ProblemException 0% 0%
SharedCode.Problems.ProblemJsonConverter 0% 0%
SharedCode.PropertySupport 83.3% 60%
SharedCode.Reflection.DeepCloneCache 0% 0%
SharedCode.Reflection.DeepCloneCache 0% 0%
SharedCode.Reflection.DeepCloneExpressionGenerator 0% 0%
SharedCode.Reflection.DeepCloneGenerator 0% 0%
SharedCode.Reflection.DeepCloneGenerator 0% 0%
SharedCode.Reflection.DeepCloneMsilHelper 0% 0%
SharedCode.Reflection.DeepCloneSafeTypes 0% 0%
SharedCode.Reflection.DeepCloneState 0% 0%
SharedCode.Reflection.DeepCloneState.MiniDictionary 0% 0%
SharedCode.Reflection.ExpressionGenerator 0% 0%
SharedCode.Reflection.GenericExtensions 0% 0%
SharedCode.Reflection.ShallowCloneGenerator 0% 0%
SharedCode.Reflection.ShallowCloneHelper 0% 0%
SharedCode.Reflection.ShallowCloneHelper.ShallowSafeObjectCloneHelper 0%
SharedCode.Security.Hasher 38.6% 44.4%
SharedCode.Specifications.Builders.CacheSpecificationBuilder 50%
SharedCode.Specifications.Builders.IncludableBuilderExtensions 0% 0%
SharedCode.Specifications.Builders.IncludableSpecificationBuilder<T, TPrope
rty>
50%
SharedCode.Specifications.Builders.OrderedBuilderExtensions 50% 25%
SharedCode.Specifications.Builders.OrderedSpecificationBuilder 100%
SharedCode.Specifications.Builders.SpecificationBuilder<T, TResult> 100%
SharedCode.Specifications.Builders.SpecificationBuilder 100%
SharedCode.Specifications.Builders.SpecificationBuilderExtensions 100% 58.3%
SharedCode.Specifications.Evaluators.InMemorySpecificationEvaluator 96.2% 78.5%
SharedCode.Specifications.Evaluators.OrderEvaluator 45.9% 36.2%
SharedCode.Specifications.Evaluators.OrderEvaluator 45.9% 36.2%
SharedCode.Specifications.Evaluators.PaginationEvaluator 50% 37.5%
SharedCode.Specifications.Evaluators.WhereEvaluator 66.6% 37.5%
SharedCode.Specifications.Exceptions.DuplicateOrderChainException 0%
SharedCode.Specifications.Exceptions.DuplicateSkipException 25%
SharedCode.Specifications.Exceptions.DuplicateTakeException 25%
SharedCode.Specifications.Exceptions.SelectorNotFoundException 25%
SharedCode.Specifications.IncludeExpressionInformation 69.2% 40%
SharedCode.Specifications.Specification<T, TResult> 100%
SharedCode.Specifications.Specification 100%
SharedCode.Text.StringBuilderExtensions 100% 100%
SharedCode.Text.StringExtensions 28.3% 28.9%
SharedCode.Text.StringExtensions 28.3% 28.9%
SharedCode.Threading.Tasks.TaskExtensions 92.8%
SharedCode.Threading.Tasks.TaskExtensions 92.8%
SharedCode.Threading.Tasks.ValueTaskExtensions 0%
SharedCode.Threading.Tasks.ValueTaskExtensions<TException, TResult> 0%
SharedCode.Threading.Tasks.ValueTaskExtensions 0%
SharedCode.Threading.Tasks.ValueTaskExtensions 0%
SharedCode.TypeExtensions 33.3% 36%
SharedCode.TypeExtensions 33.3% 36%
SharedCode.Utilities 0% 0%
SharedCode.ValueObject 80% 90.9%
SharedCode.Workflow.Rule 0%
SharedCode.Workflow.Rule 0%
SharedCode.Workflow.RuleSet 0%
SharedCode.Workflow.RuleSet 0%
SharedCode.Xml.XDocumentExtensions 0% 0%
System.Text.RegularExpressions.Generated 0% 0%
System.Text.RegularExpressions.Generated.RunnerFactory
System.Text.RegularExpressions.Generated.RunnerFactory.Runner
SharedCode.Core.Tests - 98.1%
Name Line Branch
SharedCode.Core.Tests 98.1% 77.4%
SharedCode.Tests.AssemblyExtensionsTests 100%
SharedCode.Tests.AssertExtensions 0% 0%
SharedCode.Tests.Attributes.AttributeTests 100% 100%
SharedCode.Tests.BaseExceptionTests 100%
SharedCode.Tests.Calendar.DateTimeExtensionsTests 96.3% 100%
SharedCode.Tests.Calendar.DateTimeOffsetCalendarExtensionsTests 100%
SharedCode.Tests.Calendar.DayOfWeekExtensionsTests 100%
SharedCode.Tests.Collections.ArrayExtensionsTests 100% 100%
SharedCode.Tests.Collections.EnumerationUtilitiesTests 100%
SharedCode.Tests.Domain.ErrorResultTests 100%
SharedCode.Tests.Domain.ResultTests 100%
SharedCode.Tests.EnumExtensionsTests 100%
SharedCode.Tests.EnumTTests 96.2% 90%
SharedCode.Tests.EventHandlerExtensionsTests 100%
SharedCode.Tests.ExceptionExtensionsTests 100%
SharedCode.Tests.ExtensionsTests 100% 100%
SharedCode.Tests.ExtensionsTests.SampleRecord 100%
SharedCode.Tests.FluentTimeSpanTests 100%
SharedCode.Tests.FunctionExtensionsTests 100%
SharedCode.Tests.IntExtensionsTests 100%
SharedCode.Tests.LambdaComparer 0% 0%
SharedCode.Tests.Linq.CollectionExtensionsTests 100% 100%
SharedCode.Tests.Linq.EnumerableExtensionsTests 100% 100%
SharedCode.Tests.Linq.PredicatesTests 100%
SharedCode.Tests.Models.EntityTests 100%
SharedCode.Tests.NumberExtensionsTests 100%
SharedCode.Tests.PropertySupportTests 100% 100%
SharedCode.Tests.PropertySupportTests.SampleClass 100%
SharedCode.Tests.Security.HasherTests 100%
SharedCode.Tests.Specifications.SpecificationTests 97.7% 100%
SharedCode.Tests.Specifications.SpecificationTests.BuilderExposingSpecifica
tion
100%
SharedCode.Tests.Specifications.SpecificationTests.DuplicateSkipSpecificati
on
66.6%
SharedCode.Tests.Specifications.SpecificationTests.DuplicateTakeSpecificati
on
66.6%
SharedCode.Tests.Specifications.SpecificationTests.SampleEntity 100%
SharedCode.Tests.Specifications.SpecificationTests.SampleEntitySpecificatio
n
100% 100%
SharedCode.Tests.Specifications.SpecificationTests.SampleProjectionSpecific
ation
100% 100%
SharedCode.Tests.Specifications.SpecificationTests.SearchOnlySpecification 100%
SharedCode.Tests.Text.StringBuilderExtensionsTests 100%
SharedCode.Tests.Text.StringExtensionsTests 100% 100%
SharedCode.Tests.Threading.TaskExtensionsTests 100%
SharedCode.Tests.TypeExtensionsTests 100%
SharedCode.Tests.ValueObjectTests 96.8%
SharedCode.Tests.ValueObjectTests.Address 66.6%
SharedCode.Tests.ValueObjectTests.MoneyValue 100%
TUnit.Generated.Hooks.SharedCode_Tests_Calendar_DateTimeExtensionsTests_Ini
tTestCase_Before_Test.SharedCode_Tests_Calendar_DateTimeExtensionsTests_Ini
tTestCase_Before_TestInitializer
100%
TUnit.Generated.Hooks.SharedCode_Tests_Calendar_DateTimeExtensionsTests_Tea
rdownTestCase_After_Test.SharedCode_Tests_Calendar_DateTimeExtensionsTests_
TeardownTestCase_After_TestInitializer
100%
SharedCode.Data - 8.3%
Name Line Branch
SharedCode.Data 8.3% 0%
SharedCode.Data.AddOrUpdateDescriptor 0%
SharedCode.Data.CommandRepository 0% 0%
SharedCode.Data.DataReaderExtensions 0% 0%
SharedCode.Data.DataReaderExtensions 0% 0%
SharedCode.Data.DataRecordConverter 0% 0%
SharedCode.Data.DataServiceQueryExtensions 0% 0%
SharedCode.Data.DataServiceQueryExtensions 0% 0%
SharedCode.Data.DataServiceQueryExtensions 0% 0%
SharedCode.Data.DynamicDataRecord 0% 0%
SharedCode.Data.Exceptions.ColumnIsNotInResultSetException 0%
SharedCode.Data.Extensions 0% 0%
SharedCode.Data.ListExtensions 0% 0%
SharedCode.Data.PageBoundry 100%
SharedCode.Data.PagingDescriptor 100%
SharedCode.Data.QueryRepository 0% 0%
SharedCode.Data.QueryResult 100%
SharedCode.Data.Tests - 100%
Name Line Branch
SharedCode.Data.Tests 100% ****
SharedCode.Data.Tests.PageBoundryTests 100%
SharedCode.Data.Tests.PagingDescriptorTests 100%
SharedCode.Data.Tests.QueryResultTests 100%

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 13, 2026 06:12
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (2)

.github/workflows/release.yml:39

  • The semantic-release job uses github-tag-action to find the latest tag and compute the next version. Without fetch-depth: 0 on checkout, tags/history may be missing in the runner, leading to incorrect versioning or failures.
    - uses: actions/checkout@v4

.github/workflows/update-copyright.yml:51

  • peter-evans/create-pull-request does not create labels automatically; the configured labels: automated will fail/not apply because the automated label does not exist in this repository.
            This pull request was created by the `update-copyright` workflow.
          labels: automated

@wforney

wforney commented Aug 13, 2026

Copy link
Copy Markdown
Member

@copilot I see this warning in the build:

Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-dotnet@v4, actions/upload-artifact@v4, marocchino/sticky-pull-request-comment@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ --

- actions/checkout: v3/v4 → v6
- actions/setup-dotnet: v4 → v6
- actions/upload-artifact: v4/v4.6.1 → v5
- actions/download-artifact: v4.1.8 → v5
- marocchino/sticky-pull-request-comment: v2 → v3

All actions now natively target Node.js 24, eliminating the deprecation warnings.

Co-authored-by: wforney <79032+wforney@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 13, 2026 06:23

Copilot AI commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

@copilot I see this warning in the build:

...

Fixed in the latest commit. All workflow actions have been upgraded to Node.js 24-compatible versions across all workflow files:

  • actions/checkout: v3/v4 → v6
  • actions/setup-dotnet: v4 → v6
  • actions/upload-artifact: v4 → v5
  • actions/download-artifact: v4 → v5
  • marocchino/sticky-pull-request-comment: v2 → v3

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 11 out of 11 changed files in this pull request and generated no new comments.

Suppressed comments (2)

.github/workflows/release.yml:25

  • PR description says actions/checkout@v3 → @v4, but this workflow pins actions/checkout@v6 (and also upgrades actions/setup-dotnet to @v6 and artifact actions to @v5). Please either update the PR description to reflect the actual action upgrades, or adjust the workflow pins to match the stated @v4 plan so reviewers know what is being changed.
    - uses: actions/checkout@v6
      with:
        fetch-depth: 0

    - name: Setup .NET
      uses: actions/setup-dotnet@v6
      with:

.github/workflows/dotnet.yml:22

  • PR description calls out only a checkout upgrade to @v4, but this workflow updates actions/checkout to @v6, actions/setup-dotnet to @v6, marocchino/sticky-pull-request-comment to @v3, and actions/upload-artifact to @v5. Please keep the PR description (and/or title) in sync with these CI dependency upgrades so the change scope is clear.
    - uses: actions/checkout@v6

    - name: Setup .NET
      uses: actions/setup-dotnet@v6
      with:

@wforney
wforney merged commit f6c5f87 into main Aug 13, 2026
3 checks passed
@wforney
wforney deleted the copilot/update-copyright-year-and-versions branch August 13, 2026 06:29
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