Skip to content

Releases: j-d-ha/minimal-lambda

v2.3.1

23 Mar 15:52
00a8049

Choose a tag to compare

Summary

This patch release pins Microsoft.CodeAnalysis* packages back to 5.0.0 to work around a Roslyn regression (dotnet/roslyn#82780) introduced in 5.3.0 where source-generator interceptors are silently not applied by the compiler β€” causing Lambda handler wiring to not execute at runtime. This is a temporary pin until the upstream fix ships.

Changes

πŸ› Bug Fixes

  • fix(deps): downgrade Microsoft.CodeAnalysis packages to 5.0.0 (#316) @j-d-ha
  • fix(ci): use GitHub App token in changelog update workflow (#312) @j-d-ha

πŸ”§ Maintenance

  • chore(deps): Bump go-task/setup-task from 1 to 2 (#313) @dependabot
  • chore(deps): Bump actions/create-github-app-token from 2 to 3 (#314) @dependabot

v2.3.0

21 Mar 00:16
e58fa54

Choose a tag to compare

Changes

πŸš€ Features

  • feat(testing): migrate test infrastructure to Microsoft Testing Platform (#288) @j-d-ha

πŸ› Bug Fixes

  • fix(deps): switch xunit to mtp-v2 and fix Scriban build error (#309) @j-d-ha

πŸ”„ Refactoring

  • refactor: consolidate code style and improve readability (#291) @j-d-ha

βœ… Tests

  • github: rewrite PR guide for clarity and detail (#294) @j-d-ha

πŸ”§ Maintenance

  • chore: Bump the minor-and-patch group with 20 updates (#307) @dependabot
  • chore: Bump jetbrains.resharper.globaltools from 2025.3.1 to 2025.3.3 (#310) @dependabot
  • chore(deps-dev): bump the minor-and-patch group with 2 updates (#299) @dependabot
  • chore(deps): bump dotnet-sdk from 10.0.101 to 10.0.201 (#306) @dependabot
  • chore(deps-dev): bump the minor-and-patch group with 2 updates (#296) @dependabot
  • chore: bump urllib3 from 2.5.0 to 2.6.3 in the uv group across 1 directory (#286) @dependabot
  • chore: Bump the minor-and-patch group with 16 updates (#287) @dependabot
  • chore(deps): bump dotnet-sdk from 10.0.101 to 10.0.102 (#285) @dependabot

v2.2.0

12 Jan 17:02
6ec375c

Choose a tag to compare

Summary

This release focuses on improving the testing infrastructure and source generator architecture. Key highlights include multi-target test support, snapshot testing enhancements, and a major refactoring of the source generator codebase for better maintainability. CI workflows have been enhanced with auto-approval for automated PRs.

Changes

πŸš€ Features

  • feat(ci): add auto-approval to automated PR workflows (#283) @j-d-ha
  • feat(tests): add multi-targeting and source generator improvements (#274) @j-d-ha
  • feat(tests): add scrubbers for dynamic snapshot values (#273) @j-d-ha

πŸ”„ Refactoring

  • refactor(source-generators): modularize code generation and improve generated file organization (#280) @j-d-ha
  • refactor(source-generators): simplify and restructure code generation logic (#279) @j-d-ha

πŸ”§ Maintenance

  • chore: bump the minor-and-patch group with 6 updates (#281) @dependabot
  • chore(deps-dev): Bump the minor-and-patch group with 2 updates (#277) @dependabot
  • chore: Bump the minor-and-patch group with 4 updates (#275) @dependabot

v2.1.1

22 Dec 00:45
a4dbd43

Choose a tag to compare

Summary

This release brings significant enhancements to MinimalLambda's middleware capabilities and compiler compatibility. The highlight features include comprehensive AOT (Ahead-of-Time) compilation support, enabling better performance and reduced cold starts on AWS Lambda, along with expanded middleware creation patterns, including factory-based and class-based approaches.

Changes

πŸš€ Features

  • feat(build): add comprehensive AOT compatibility support (#267) @j-d-ha
  • feat(host): add factory-based middleware creation support (#266) @j-d-ha
  • feat(source-generators): add class-based middleware support with UseMiddleware() (#257) @j-d-ha

πŸ› Bug Fixes

  • fix: prevent validation project from being packaged (#270) @j-d-ha
  • fix(ci): add Task installation step to main-build pipeline (#268) @j-d-ha

πŸ”§ Maintenance

  • fix(ci): add Task installation step to main-build pipeline (#268) @j-d-ha
  • chore: migrate InternalsVisibleTo declarations to project files (#265) @j-d-ha
  • chore(deps): migrate to LayeredCraft.SourceGeneratorTools.Generator v0.1.0-beta.10 (#264) @j-d-ha
  • chore: update changelog for v2.0.0 (#256) @github-actions

v2.0.0

18 Dec 13:42
ad77c7f

Choose a tag to compare

Summary

This major release represents a complete rebranding from AwsLambda.Host to MinimalLambda, along with significant API improvements and the introduction of a new testing package. The release includes three breaking changes that require migration steps, new lifecycle handler capabilities, enhanced testing support, and improved envelope handling for multiple response types.

Key highlights:

  • Framework rebranding: All packages renamed from AwsLambda.* to MinimalLambda.*
  • New testing package: MinimalLambda.Testing for simplified Lambda function testing
  • Lifecycle handlers: New ILambdaLifecycleContext for managing Lambda lifecycle events
  • Enhanced envelopes: Support for multiple response types with shared extension methods
  • API refinements: More intuitive naming conventions for core interfaces and attributes

Migration Steps

1. Framework Renamed: AwsLambda.Host β†’ MinimalLambda

  1. Update package references in your .csproj files:

    <!-- OLD -->
    <PackageReference Include="AwsLambda.Host" Version="x.x.x" />
    <PackageReference Include="AwsLambda.Abstractions" Version="x.x.x" />
    <PackageReference Include="AwsLambda.OpenTelemetry" Version="x.x.x" />
    
    <!-- NEW -->
    <PackageReference Include="MinimalLambda" Version="x.x.x" />
    <PackageReference Include="MinimalLambda.Abstractions" Version="x.x.x" />
    <PackageReference Include="MinimalLambda.OpenTelemetry" Version="x.x.x" />
  2. Update namespace imports throughout your codebase:

    // OLD
    using AwsLambda.Host;
    using AwsLambda.Abstractions;
    using AwsLambda.OpenTelemetry;
    
    // NEW
    using MinimalLambda;
    using MinimalLambda.Abstractions;
    using MinimalLambda.OpenTelemetry;
  3. Perform a global find-and-replace:

    • Search: AwsLambda.Host β†’ Replace: MinimalLambda
    • Search: AwsLambda.Abstractions β†’ Replace: MinimalLambda.Abstractions
    • Search: AwsLambda.OpenTelemetry β†’ Replace: MinimalLambda.OpenTelemetry

2. ILambdaHostContext β†’ ILambdaInvocationContext

  1. Update interface references in handler methods:
    // OLD
    lambda.MapHandler((ILambdaHostContext context) =>
    {
        var requestId = context.AwsRequestId;
        return Results.Ok(requestId);
    });
    
    // NEW
    lambda.MapHandler((ILambdaInvocationContext context) =>
    {
        var requestId = context.AwsRequestId;
        return Results.Ok(requestId);
    });

3. [Event] Attribute β†’ [FromEvent] Attribute

  1. Update attribute usage in handler method parameters:
    // OLD
    lambda.MapHandler(([Event] MyEvent evt) =>
    {
        return Results.Ok(evt.Message);
    });
    
    // NEW
    lambda.MapHandler(([FromEvent] MyEvent evt) =>
    {
        return Results.Ok(evt.Message);
    });

Changes

πŸš€ Features

  • feat(host): add ILambdaLifecycleContext for lifecycle handlers (#252) @j-d-ha
  • feat(testing): add customizable JSON serializer options to LambdaTestServer (#251) @j-d-ha
  • feat(envelopes): support multiple response types with shared extension methods (#213) @j-d-ha
  • feat(testing): add MinimalLambda.Testing package (#233) @j-d-ha
  • feat(docs): refine messaging to emphasize Lambda-first design (#228) @j-d-ha

πŸ› Bug Fixes

  • fix(testing): prevent DI container disposal during test execution (#234) @j-d-ha
  • fix(build): add build targets for packaging (#231) @j-d-ha
  • fix(core): adjust default timeout values and update documentation (#226) @j-d-ha

πŸ“š Documentation

  • docs: document MinimalLambda.Testing package and enhance testing guide (#235) @j-d-ha

πŸ”„ Refactoring

  • refactor(source-generators): improve type casting and output generation (#254) @j-d-ha
  • refactor(abstractions): rename ILambdaHostContext to ILambdaInvocationContext (#253) @j-d-ha
  • refactor(core): replace [Event] attribute with [FromEvent] (#250) @j-d-ha
  • refactor: rename framework from AwsLambda.Host to MinimalLambda (#227) @j-d-ha

πŸ”§ Maintenance

  • chore(deps): bump dotnet-sdk from 10.0.100 to 10.0.101 (#239) @dependabot
  • chore(deps): bump actions/checkout from 4 to 6 (#241) @dependabot
  • chore(deps): bump the minor-and-patch group with 2 updates (#242) @dependabot
  • chore(deps): bump actions/setup-python from 5 to 6 (#245) @dependabot
  • chore(deps): bump actions/upload-pages-artifact from 3 to 4 (#246) @dependabot
  • chore(github): add pip ecosystem and ignore release-drafter (#248) @j-d-ha
  • chore(deps): Bump the minor-and-patch group with 12 updates (#247) @dependabot
  • chore(deps): update Microsoft.Extensions.Hosting from RC to stable (#232) @j-d-ha
  • chore: remove obsolete code and deprecated features (#229) @j-d-ha

⚠️ Breaking Changes

  • refactor(abstractions): rename ILambdaHostContext to ILambdaInvocationContext (#253) @j-d-ha
  • feat(host): add ILambdaLifecycleContext for lifecycle handlers (#252) @j-d-ha
  • refactor: rename framework from AwsLambda.Host to MinimalLambda (#227) @j-d-ha

v1.3.1

10 Dec 21:19
b71126c

Choose a tag to compare

Summary

This release fixes missing TenantId and TraceId properties in DefaultLambdaHostContext, ensuring complete context information is available for Lambda function execution. Additionally, resolves a CI issue by removing the sign-commits configuration from the changelog workflow.

Changes

πŸ› Bug Fixes

  • fix(core): add missing TenantId and TraceId properties to DefaultLambdaHostContext (#224) @j-d-ha
  • fix(ci): remove sign-commits from changelog workflow (#223) @j-d-ha

v1.3.0

10 Dec 13:31
35db78d

Choose a tag to compare

Summary

This release introduces enhanced flexibility for Lambda handler mapping with support for multiple MapHandler invocations using custom feature providers, improving extensibility for complex routing scenarios. The BootstrapHttpClient has been refactored to use dependency injection for better testability and lifecycle management. Documentation has been significantly improved with a comprehensive getting started guide and restructured content, along with updates to align with modern .NET environment variable conventions. The release also includes third-party license attribution updates and CI optimizations for draft pull requests.

Changes

πŸš€ Features

  • feat(source-generators): support multiple MapHandler invocations with custom feature providers (#214) @j-d-ha
  • docs: update MkDocs palette toggle configuration (#211) @j-d-ha

πŸ› Bug Fixes

  • fix: update third-party license attributions (#217) @j-d-ha

πŸ“š Documentation

  • docs: add comprehensive getting started guide and restructure documentation (#209) @j-d-ha

πŸ”„ Refactoring

  • refactor(host): migrate BootstrapHttpClient from options to dependency injection (#219) @j-d-ha
  • refactor(docs): replace ASPNETCORE_ENVIRONMENT with DOTNET_ENVIRONMENT (#216) @j-d-ha

πŸ”§ Maintenance

  • ci(github): optimize workflow triggers for draft PRs (#215) @j-d-ha

v1.2.1

30 Nov 21:30
ba3d767

Choose a tag to compare

Summary

Small release to add transitive builds (#202) and fix interceptor namespace (#205).

Changes

πŸ› Bug Fixes

πŸ“š Documentation

  • docs: add GitHub Pages landing page with MkDocs (#203) @j-d-ha

πŸ”§ Maintenance

  • ci: skip build workflows for docs-only changes (#204) @j-d-ha
  • chore(github): enhance changelog update workflow (#201) @j-d-ha

v1.2.0

29 Nov 20:00
6ece85a

Choose a tag to compare

Summary

This release significantly expands the envelope support in AWS Lambda Host, adding strongly-typed message handling for multiple AWS services. The new envelope implementations enable seamless integration with Kinesis, Kinesis Firehose, Kafka, CloudWatch Logs, Application Load Balancer, and SNS-to-SQS subscription patterns. Additionally, envelope options have been enhanced to support multiple serialization formats, providing greater flexibility for different use cases. Documentation has been standardized across all packages, and internal improvements include refactored JSON options handling for better performance.

Changes

πŸš€ Features

  • feat(envelopes): add SqsSnsEnvelope for SNS-to-SQS subscription pattern (#196) @j-d-ha
  • feat(envelopes): add CloudWatch Logs envelope support (#195) @j-d-ha
  • feat(envelopes): add Kafka envelope support (#194) @j-d-ha
  • feat(envelopes): add Kinesis Firehose envelope support (#193) @j-d-ha
  • feat(envelopes): add Kinesis envelope for strongly-typed message handling (#192) @j-d-ha
  • feat(envelopes): add Application Load Balancer envelope support (#187) @j-d-ha
  • feat(envelopes): expand envelope options for multiple serialization formats (#184) @j-d-ha

πŸ› Bug Fixes

  • fix(ci): add explicit token to checkout and create-pull-request actions (#183) @j-d-ha

πŸ“š Documentation

  • docs: standardize README documentation across all packages (#200) @j-d-ha
  • feat(envelopes): add SNS envelope for strongly-typed message handling (#190) @j-d-ha

πŸ”„ Refactoring

  • refactor(abstractions): replace Lazy implementation with property for JSON options (#199) @j-d-ha

πŸ”§ Maintenance

  • chore: cleanup repository formatting and documentation (#197) @j-d-ha
  • chore(ci): pinned release-drafter action to 6.0.0 (#182) @j-d-ha

v1.1.0

26 Nov 21:26
b6e3399

Choose a tag to compare

Summary

This release introduces new feature abstractions for stream handling, enhances context accessibility in the Lambda host, and adds source code attribution. Key improvements include CI/CD workflow fixes for release management and new GitHub templates for issue reporting and discussions.

Changes

πŸš€ Features

  • feat(host): add stream feature abstraction layer (#181) @j-d-ha
  • feat(core): add ILambdaHostContextAccessor and context factory integration (#178) @j-d-ha
  • feat(source-generators): add GeneratedCodeAttribute to all generated code classes (#174) @j-d-ha

πŸ› Bug Fixes

  • fix(ci): update changelog workflow to create pull request instead of direct commit (#172) @j-d-ha
  • fix(ci): add write permissions for release asset uploads (#171) @j-d-ha

πŸ“š Documentation

  • docs: add GitHub issue and discussion templates (#176) @j-d-ha

πŸ”§ Maintenance

  • chore(github): update changelog for v1.0.0 release (#170) @j-d-ha