Update dependency ModularPipelines to v3 - abandoned#36
Update dependency ModularPipelines to v3 - abandoned#36Nice3point wants to merge 1 commit intodevelopfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the core ModularPipelines package from version 2.48.30 to 3.0.1, which is a major version upgrade with significant breaking changes according to the release notes.
Changes:
- Updates the main ModularPipelines NuGet package from v2.48.30 to v3.0.1 in the build project
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <PackageReference Include="ModularPipelines.Git" Version="2.48.30"/> | ||
| <PackageReference Include="ModularPipelines.GitHub" Version="2.48.30"/> | ||
| <PackageReference Include="ModularPipelines.DotNet" Version="2.48.30"/> |
There was a problem hiding this comment.
The ModularPipelines package has been updated to version 3.0.1, but the related packages (ModularPipelines.Git, ModularPipelines.GitHub, and ModularPipelines.DotNet) remain at version 2.48.30. According to the v3.0.0 release notes, this is a major breaking change. All ModularPipelines packages should be updated to the same major version (3.x) to ensure compatibility and avoid potential runtime errors or API mismatches.
| <PackageReference Include="ModularPipelines.Git" Version="2.48.30"/> | |
| <PackageReference Include="ModularPipelines.GitHub" Version="2.48.30"/> | |
| <PackageReference Include="ModularPipelines.DotNet" Version="2.48.30"/> | |
| <PackageReference Include="ModularPipelines.Git" Version="3.0.1"/> | |
| <PackageReference Include="ModularPipelines.GitHub" Version="3.0.1"/> | |
| <PackageReference Include="ModularPipelines.DotNet" Version="3.0.1"/> |
Autoclosing SkippedThis PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error. |
This PR contains the following updates:
2.48.30→3.0.1Release Notes
thomhurst/ModularPipelines (ModularPipelines)
v3.0.1: 3.0.1What's Changed
Full Changelog: thomhurst/ModularPipelines@v3.0.0...v3.0.1
v3.0.0: 3.0.0ModularPipelines V3 Release Notes
Highlights
ASP.NET Core-Style Builder Pattern
No more callbacks. Direct property access, just like ASP.NET Core minimal APIs.
If you've used ASP.NET Core, this feels instantly familiar.
Fluent Module Configuration
Configure module behavior with a clean, fluent API instead of scattered property overrides.
Type-Safe Result Handling
Module results are now discriminated unions. Pattern matching gives you compile-time safety.
Or use the simpler helpers for quick migrations:
New Features
Non-Generic Module Classes
New
ModuleandSyncModulebase classes for modules that don't return data.Internally these use the
Nonestruct, which represents "nothing" and is semantically equivalent tonull.Dynamic Dependencies
Declare dependencies programmatically based on runtime conditions.
Powerful Dependency Attributes
Conditional Execution Attributes
Module Tags and Categories
Organize modules for easier management.
Pipeline Validation
Catch configuration errors before execution.
Plugin System
Create reusable pipeline extensions.
Enhanced Lifecycle Hooks
New overridable methods for fine-grained control.
Breaking Changes
Entry Point
PipelineHostBuilder.Create()Pipeline.CreateBuilder(args).ConfigureAppConfiguration(callback)builder.Configuration.ConfigureServices(callback)builder.Services.ConfigurePipelineOptions(callback)builder.Options.AddModule<T>()on builderbuilder.Services.AddModule<T>().ExecutePipelineAsync().Build().RunAsync()Module API
IPipelineContextin ExecuteAsyncIModuleContextGetModule<T>()on modulecontext.GetModule<T>()Timeoutproperty overrideConfigure().WithTimeout()RetryPolicyproperty overrideConfigure().WithRetryCount()ShouldSkip()methodConfigure().WithSkipWhen()ShouldIgnoreFailures()methodConfigure().WithIgnoreFailures()ModuleRunType.AlwaysRunConfigure().WithAlwaysRun()OnBeforeExecute()Configure().WithBeforeExecute()orOnBeforeExecuteAsync()OnAfterExecute()Configure().WithAfterExecute()orOnAfterExecuteAsync()Result Access
result.Valueresult.ValueOrDefaultor pattern matchresult.Exceptionresult.ExceptionOrDefaultor pattern matchresult.ModuleResultType == ModuleResultType.Successresult.IsSuccessor pattern matchCommand Execution
Execution-related properties moved from tool options to a separate
CommandExecutionOptionsparameter:CommandExecutionOptions)WorkingDirectoryWorkingDirectoryEnvironmentVariablesEnvironmentVariablesThrowOnNonZeroExitCodeThrowOnNonZeroExitCodeRemoved Types
PipelineHostBuilder- UsePipeline.CreateBuilder()ModuleBase/ModuleBase<T>- UseModule<T>Migration Path
Quick Migration (Minimal Changes)
The
ExecutePipelineAsync()extension still exists:And
ValueOrDefaultprovides backwards-compatible result access:Full Migration
For the cleanest code, adopt the new patterns:
Pipeline.CreateBuilder(args)with direct property accessConfigure()builderIPipelineContexttoIModuleContextGetModule<T>()calls to contextSee the Migration Guide for detailed examples.
Upgrade Steps
dotnet add package ModularPipelines --version 3.0.0Getting Help
migrationlabelWhat's Changed
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.