Skip to content

Develop#38

Merged
Chris-Wolfgang merged 68 commits into
mainfrom
develop
Dec 20, 2025
Merged

Develop#38
Chris-Wolfgang merged 68 commits into
mainfrom
develop

Conversation

@Chris-Wolfgang
Copy link
Copy Markdown
Owner

No description provided.

Chris-Wolfgang and others added 30 commits August 12, 2025 21:33
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
- Check error status and only ignore 'already_exists' errors (422)
- Log error messages for authentication, rate limiting, and API issues
- Re-throw non-already-exists errors to fail the workflow properly

Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Remove unnecessary .NET SDK versions from PR workflow
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Improve error handling in create-labels workflow
Add missing Dependabot labels to create-labels workflow
…-time

Fix test results path pattern in release workflow
Updated Microsoft.Bcl.AsyncInterfaces to 10.0.1, System.Runtime.CompilerServices.Unsafe to 6.1.2, and System.Threading.Tasks.Extensions to 4.6.3 where applicable. Also upgraded System.Linq.Async to 7.0.0 and added System.Linq.AsyncEnumerable 10.0.1 in test project. No application logic changes; only dependency and reference updates.
Corrected net5.0 identifier in TargetFrameworks (was net50), added net10.0 as a new target, and reordered frameworks for clarity in the test project file.
- Add .NET 10/9/8/7/6/5 to all GitHub Actions workflows for broader SDK support
- Enable cross-platform CI with matrix builds on Ubuntu, Windows, and macOS
- Specify shell (bash/pwsh) for improved script compatibility
- Name uploaded artifacts by OS for clarity in matrix runs
- Show DevSkim results only on failure; always use bash for scan step
- Add NuGet pack step for Wolfgang.Etl.Abstractions in release workflow
- Update solution file for VS 2022/2023 and include .github, ISSUE_TEMPLATE, workflows, and benchmarks in solution explorer
- No changes to core library or copilot-instructions.md
Updated LoaderBaseTests to use [] collection expressions for clarity and consistency. Refactored TransformerBaseTests to use token.ThrowIfCancellationRequested() for more idiomatic cancellation handling in async iterators.
Replaced the placeholder copyright property in the Wolfgang.Etl.Abstractions.Tests.Unit.csproj file with a specific statement: "Copyright 2025 Chris Wolfgang". This clarifies project ownership and updates the year.
Refactored Wolfgang.Etl.Abstractions.Tests.Unit.csproj to use conditional ItemGroups for test and async LINQ packages. System.Linq.Async and System.Linq.AsyncEnumerable are now referenced only for compatible target frameworks. xunit.runner.visualstudio version is also selected based on framework version. This improves compatibility and prevents package conflicts across different .NET targets.
Improve XML docs, property validation, and code formatting in ExtractorBase, LoaderBase, and TransformerBase. Add explicit property setters with validation, enhance parameter null checks, and reformat code for readability. No changes to core logic or functionality.
- Split build steps to handle .NET Core/Framework differences by OS
- On Linux/macOS, build only .NET Core/NET targets; on Windows, build all
- Run tests for all frameworks on Windows, only .NET 8.0 elsewhere
- Fix DevSkim summary header formatting in workflow
Corrected invalid minus-prefixed frameworks in TargetFrameworks.
Now explicitly lists all supported frameworks for clarity and
proper multi-targeting.
- Run DevSkim scan in a bash script, saving output to a file and suppressing errors to allow workflow continuation.
- Exclude the **/TestResults/** directory from scans.
- Always display DevSkim results, check for the results file, and exit with an error if issues are detected.
- Add clear messaging for both detected issues and missing results files.
Update pr.yaml to build main and test projects per framework
individually on Linux/macOS, add netstandard2.0/2.1 targets,
and build Net8.0 examples explicitly. Clarify step name to
exclude ".NET Framework projects." Windows build unchanged.
Streamline GitHub Actions workflow by consolidating multiple dotnet build commands into single multi-target builds for both library and test projects. Update example project build to loop through all .csproj files. Simplify test execution: run all frameworks on Windows, only .NET 8.0 on Linux/macOS. Improves maintainability and reduces CI time.
Chris-Wolfgang and others added 15 commits December 18, 2025 16:26
Refactor test and coverage steps to be more fault-tolerant:
- Parse .trx files to detect actual test failures, failing the workflow only if tests fail, not just on nonzero exit codes.
- Run ReportGenerator and coverage checks conditionally and with continue-on-error, printing warnings instead of failing for missing coverage files.
- Only enforce coverage thresholds if the summary file exists.
These changes ensure the workflow fails only for real test failures, not for transient or non-critical coverage/reporting issues.
Refactor PR workflow for clarity and robustness

Significantly restructured the PR workflow YAML for improved readability, maintainability, and reliability. Enhanced documentation and comments, clarified separation of steps for Linux/macOS and Windows, and made build/test matrix logic explicit. Improved test execution, coverage collection, and threshold checking, with clearer output and error handling. Refined DevSkim security scanning and artifact uploads. Overall, the workflow is now more robust, easier to understand, and provides better CI feedback.
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Improve error handling in create-labels workflow
Clarify .NET SDK requirements for test project target frameworks
Grant contents:write permission to release workflow
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
…-time

Clarify .NET SDK requirements for test execution
Create /benchmarks directory and restore dependabot configuration
# Conflicts:
# examples/Net4.8/Example1-BasicETL/Example1-BasicETL.csproj
# examples/Net4.8/Example1-BasicETL/packages.config
Copilot AI review requested due to automatic review settings December 19, 2025 02:13
Copy link
Copy Markdown
Contributor

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 pull request represents a substantial "develop" branch merge that includes multiple categories of changes: code refactoring, dependency updates, infrastructure additions, and framework support expansion.

Key Changes:

  • Refactored core base classes (ExtractorBase, TransformerBase, LoaderBase) from nested to file-scoped namespaces
  • Updated package dependencies (Microsoft.Bcl.AsyncInterfaces from 9.0.x to 10.0.1, System.Linq.Async to 6.0.1, added System.Linq.AsyncEnumerable 10.0.1)
  • Added comprehensive GitHub Actions workflows for CI/CD, documentation, and label management
  • Updated copyright information to 2025 and added CODE_OF_CONDUCT.md

Critical Issues Identified:

  • References to .NET 10.0 (not yet released) in test projects and workflows will cause build failures
  • Incorrect project path in release workflow will prevent NuGet package publishing
  • Visual Studio version 18 reference in solution file is premature

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj Added net10.0 target framework (unreleased), fixed net5.0 typo, reorganized package references with conditional groups for different framework versions
tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/TransformerBaseTests.cs Simplified cancellation handling using token.ThrowIfCancellationRequested()
tests/Wolfgang.Etl.Abstractions.Tests.Unit/BaseClassTests/LoaderBaseTests.cs Modernized test code with collection expressions replacing new List()
src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj Added net5.0-net9.0 target frameworks, upgraded Microsoft.Bcl.AsyncInterfaces to 10.0.1
src/Wolfgang.Etl.Abstractions/TransformerBase.cs Refactored to file-scoped namespace and adjusted indentation
src/Wolfgang.Etl.Abstractions/LoaderBase.cs Refactored to file-scoped namespace with documentation typo
src/Wolfgang.Etl.Abstractions/ExtractorBase.cs Refactored to file-scoped namespace with documentation typo
examples/Net4.8/*/packages.config Updated Microsoft.Bcl.AsyncInterfaces from 9.0.x to 10.0.1 across all examples
examples/Net4.8//Example.csproj Updated assembly references to match new package versions
benchmarks/.gitkeep Added benchmarks placeholder directory
Wolfgang.Etl.Abstractions.sln Updated to Visual Studio Version 18 (unreleased), added GitHub workflow and template files to solution
CODE_OF_CONDUCT.md Added Contributor Covenant Code of Conduct
CODEOWNERS Deleted root CODEOWNERS (moved to .github/)
.github/workflows/release.yaml New workflow for automated releases with incorrect project path
.github/workflows/pr.yaml New comprehensive PR validation workflow with net10.0 references
.github/workflows/docfx.yaml New documentation deployment workflow with .NET 10.0.x reference
.github/workflows/deploy.yml Deleted old deployment workflow
.github/workflows/create-labels.yaml New workflow for creating Dependabot labels
.github/pull_request_template.md Added PR template for consistent contribution guidelines
.github/dependabot.yml Enhanced with labels and additional directory monitoring
.github/ISSUE_TEMPLATE/BUG_REPORT.yaml Added structured bug report template
.github/CODEOWNERS Created with ownership rules for repository sections

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

Comment thread .github/workflows/release.yaml Outdated
Comment thread src/Wolfgang.Etl.Abstractions/LoaderBase.cs Outdated
Comment thread src/Wolfgang.Etl.Abstractions/ExtractorBase.cs Outdated
Chris-Wolfgang and others added 2 commits December 18, 2025 22:36
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI mentioned this pull request Dec 19, 2025
10 tasks
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 19, 2025

@Chris-Wolfgang I've opened a new pull request, #39, to work on those changes. Once the pull request is ready, I'll request review from you.

Chris-Wolfgang and others added 6 commits December 18, 2025 22:36
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Bump project version to 0.7.0 and update copyright to 2025. Upgrade xunit.runner.visualstudio to 2.8.2 for legacy targets and 3.0.1 for .NET 6.0+, adding allowedVersions and Version metadata. Update System.Linq.Async to 7.0.0 across all test target frameworks.
Fix typo in LoaderBase documentation
@Chris-Wolfgang Chris-Wolfgang merged commit 9e358d5 into main Dec 20, 2025
6 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.

3 participants