Skip to content

Bump AWS.Lambda.Powertools.Logging from 2.0.2 to 3.0.1#539

Merged
jeastham1993 merged 2 commits intomainfrom
dependabot/nuget/src/order-service/src/Orders.BackgroundWorkers/multi-763a5ea554
Nov 7, 2025
Merged

Bump AWS.Lambda.Powertools.Logging from 2.0.2 to 3.0.1#539
jeastham1993 merged 2 commits intomainfrom
dependabot/nuget/src/order-service/src/Orders.BackgroundWorkers/multi-763a5ea554

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot bot commented on behalf of github Nov 1, 2025

⚠️ Dependabot is rebasing this PR ⚠️

Rebasing might not happen immediately, so don't worry if this takes some time.

Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


Updated AWS.Lambda.Powertools.Logging from 2.0.2 to 3.0.1.

Release notes

Sourced from AWS.Lambda.Powertools.Logging's releases.

3.0.1

Summary

In this release we fix two bugs introduced in the last release.

  • AspectInjector dependency that was causing build issues in large projects
  • Tracing utility regression introduced when we added a new way to create subsegments.

📜 Announcement: You can now find our documentation on the official AWS documentation domain at [docs.aws.amazon.com/powertools/dotnet](https://docs.aws.amazon.com/powertools/dotnet/).

Thanks @​nCubed for reporting the AspectInjector issue

Changes

🐛 Bug and hot fixes

  • fix: tracing subsegment when using fluent api Tracing.WithSubsegment (#​1032) by @​hjgraca
  • chore: downgrade AspectInjector to version 2.8.1 (#​1040) by @​hjgraca

📜 Documentation updates

  • chore(deps): bump squidfunk/mkdocs-material from 00f9276 to f5c556a in /docs (#​1041) by @dependabot[bot]
  • chore: add aws docs javascript bootstrap (#​1016) by @​hjgraca

🔧 Maintenance

  • chore: Bump version from 3.0.0 to 3.0.1 (#​1047) by @​hjgraca
  • chore(deps): bump actions/setup-node from 5.0.0 to 6.0.0 (#​1039) by @dependabot[bot]
  • chore(deps): bump github/codeql-action from 3.30.6 to 4.30.9 (#​1045) by @dependabot[bot]
  • chore(deps): bump squidfunk/mkdocs-material from 00f9276 to f5c556a in /docs (#​1041) by @dependabot[bot]
  • chore: Update contributing.md (#​1043) by @​ConnorKirk
  • chore: add aws docs javascript bootstrap (#​1016) by @​hjgraca
  • chore: Update examples with latest nuget versions. Fix PTENV check in tests (#​1030) by @​hjgraca
  • chore: update version to 3.0.0 (#​1027) by @github-actions[bot]
  • chore: update version workflow fix version retrieval using tag (#​1025) by @​hjgraca
  • chore: fix workflow specify branch (#​1023) by @​hjgraca

This release was made possible by the following contributors:

@​ConnorKirk, @​dependabot[bot], @​hjgraca, dependabot[bot] and github-actions[bot]

3.0.0

Summary

We're excited to announce a major release with new features and important updates:

  • Strongly-typed batch processor with automatic deserialization for SQS, Kinesis, and DynamoDB events
  • Enhanced tracing with improved metadata error handling
  • Bug fix for logging sampling rate

This major version bump reflects significant breaking changes as we update our supported runtimes and dependencies.

Breaking Changes

⚠️ Important: Please review these breaking changes before upgrading:

Migration guide to v3

  • Removed support for .NET 6 - We now require .NET 8 or later
  • AWS SDK v3 no longer supported - We have migrated to AWS SDK v4
  • Version alignment - All Powertools for AWS Lambda utilities will maintain version parity going forward

New Features

Strongly-Typed Batch Processor

📖 Documentation | Migration Guide

Process batch events with type safety and automatic deserialization.

What's New:

  • ITypedRecordHandler<T> and ITypedRecordHandlerWithContext<T> interfaces for strongly-typed processing
  • Specialized processors: TypedSqsBatchProcessor, TypedKinesisEventBatchProcessor, TypedDynamoDbStreamBatchProcessor
  • Automatic JSON deserialization from event records to your types
  • Optional ILambdaContext injection for timeout handling and request tracking

Example Usage:

Simple typed handler:

public class OrderHandler : ITypedRecordHandler<Order>
{
    public async Task<RecordHandlerResult> HandleAsync(Order order, CancellationToken cancellationToken)
    {
        // Direct access to strongly-typed object - no manual deserialization!
        await ProcessOrder(order);
        return RecordHandlerResult.Successful;
    }
 ... (truncated)

Commits viewable in [compare view](https://github.com/aws-powertools/powertools-lambda-dotnet/commits/3.0.1).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

---
updated-dependencies:
- dependency-name: AWS.Lambda.Powertools.Logging
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: AWS.Lambda.Powertools.Logging
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added .NET dependencies Pull requests that update a dependency file labels Nov 1, 2025
@dependabot dependabot bot requested a review from jeastham1993 as a code owner November 1, 2025 12:19
@dependabot dependabot bot added .NET dependencies Pull requests that update a dependency file labels Nov 1, 2025
@jeastham1993 jeastham1993 merged commit 6c42d75 into main Nov 7, 2025
10 checks passed
@dependabot dependabot bot deleted the dependabot/nuget/src/order-service/src/Orders.BackgroundWorkers/multi-763a5ea554 branch November 7, 2025 09:27
@claude
Copy link
Copy Markdown

claude bot commented Nov 7, 2025

Claude finished @dependabot[bot]'s task —— View job


PR Review: AWS.Lambda.Powertools.Logging Upgrade

I've completed my review of this dependency upgrade PR. Here's my comprehensive analysis:

Todo List:

  • Read changed .csproj files to understand the dependency updates
  • Check for repository-specific guidelines (CLAUDE.md) - No CLAUDE.md found
  • Analyze AWS Lambda Powertools usage in the codebase
  • Review breaking changes and compatibility concerns
  • Provide comprehensive feedback on code quality, bugs, performance, security, and tests

Review Summary

This PR upgrades AWS.Lambda.Powertools.Logging from version 2.0.2 to 3.0.1, which is a major version upgrade with significant breaking changes. The changes are minimal (only version bumps in 2 .csproj files), but the implications are substantial.

Detailed Analysis

Code Quality & Best Practices

  • Clean dependency management: The upgrade only touches the necessary package references
  • Consistent versioning: Both affected projects are upgraded to the same version (3.0.1)
  • Appropriate scope: Only the projects that actually use Powertools logging are updated

⚠️ Breaking Changes & Compatibility Concerns

Critical Issues Identified:

  1. AWS SDK Version Mismatch:

    • Powertools 3.0.1 requires AWS SDK v4
    • The codebase is already using AWS SDK v4 (✅ Compatible)
    • Found: AWSSDK.DynamoDBv2 v4.0.9.3, AWSSDK.EventBridge v4.0.5.2, etc.
  2. .NET Framework Compatibility:

    • Powertools 3.0.1 dropped support for .NET 6
    • The affected projects use .NET 8.0 (✅ Compatible)
    • Test projects use .NET 9.0 (✅ Compatible)
  3. Usage Analysis:

    • Found Powertools.Logging usage in 5 files:
      • TelemetryExtensions.cs:8 - using AWS.Lambda.Powertools.Logging;
      • ObservabilityExtensions.cs:7 - Same import
      • ApiFunctions.cs:8 - Same import
      • Multiple Logger.LogInformation() calls throughout

🔍 Potential Issues

Medium Priority:

  • Mixed Logging Frameworks: The codebase uses both AWS Powertools Logger and Microsoft.Extensions.Logging/Serilog
    • Found: ILogger<Functions> in Functions.cs:23
    • Found: Log.Logger.Information() in EventBridgeEventPublisher.cs:97
    • Risk: Potential inconsistencies in log formatting and configuration

Low Priority:

  • No apparent API breaking changes: The usage patterns (Logger.LogInformation()) appear unchanged in v3.0.1
  • Batch Processing: The release notes mention new strongly-typed batch processors, but this codebase doesn't appear to use batch processing features

🚀 Performance Considerations

  • Positive: v3.0.1 includes performance improvements mentioned in release notes
  • Positive: Bug fixes for AspectInjector dependency that was causing build issues
  • Neutral: No performance-critical code paths identified in the logging usage

🔒 Security Concerns

  • Low Risk: Logging framework upgrades typically have minimal security implications
  • Positive: Staying current with dependency versions is a security best practice
  • Note: No sensitive data logging patterns observed in the reviewed code

🧪 Test Coverage

  • Gap: No explicit tests found for Powertools logging functionality
  • Recommendation: Consider adding integration tests to verify logging behavior post-upgrade
  • Current: Test projects are already on .NET 9.0, so framework compatibility is not an issue

Recommendations

Immediate Actions Needed:

  1. Verify Build Success: Ensure all projects compile successfully with the new version
  2. Test Logging Output: Manually verify that log statements still work as expected
  3. Check CloudWatch Integration: Verify logs are still properly formatted for AWS CloudWatch

Future Improvements:

  1. Consolidate Logging: Consider standardizing on a single logging framework across the codebase
  2. Add Integration Tests: Create tests specifically for logging functionality
  3. Review Configuration: Check if any new Powertools 3.0 features could benefit the application

Conclusion

✅ APPROVED - This dependency upgrade appears safe to merge. The breaking changes don't affect this codebase since:

  • Already using AWS SDK v4
  • Already using .NET 8.0+
  • No deprecated API usage patterns found

The upgrade brings bug fixes and performance improvements while maintaining API compatibility for the usage patterns in this codebase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant