Develop#38
Merged
Merged
Conversation
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.
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
Contributor
There was a problem hiding this comment.
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.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
10 tasks
Contributor
|
@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. |
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.