Skip to content

refactor: rename framework from AwsLambda.Host to MinimalLambda#227

Merged
j-d-ha merged 25 commits into
mainfrom
feature/rename-to-minimal-lambda
Dec 11, 2025
Merged

refactor: rename framework from AwsLambda.Host to MinimalLambda#227
j-d-ha merged 25 commits into
mainfrom
feature/rename-to-minimal-lambda

Conversation

@j-d-ha

@j-d-ha j-d-ha commented Dec 11, 2025

Copy link
Copy Markdown
Collaborator

🚀 Pull Request

📋 Summary

This PR completes a comprehensive renaming of the entire framework from AwsLambda.Host to MinimalLambda. This rebrand better reflects the framework's philosophy of bringing ASP.NET Core Minimal API patterns to AWS Lambda development for any trigger type.

Key Changes:

  • Renamed all namespaces from AwsLambda.Host.* to MinimalLambda.*
  • Renamed all NuGet packages:
    • AwsLambda.HostMinimalLambda
    • AwsLambda.Host.AbstractionsMinimalLambda.Abstractions
    • AwsLambda.Host.OpenTelemetryMinimalLambda.OpenTelemetry
    • All envelope packages renamed accordingly
  • Updated solution file from AwsLambda.Host.sln to MinimalLambda.sln
  • Bumped version to 2.0.0-beta.1 to reflect breaking changes
  • Updated all documentation, READMEs, and examples
  • Updated GitHub workflows and SonarCloud configuration
  • Updated repository references from aws-lambda-host to minimal-lambda
  • Refined documentation to emphasize Minimal API-style patterns

✅ Checklist

  • My changes build cleanly
  • I've added/updated relevant tests (snapshot tests updated)
  • I've added/updated documentation or README
  • I've followed the coding style for this project
  • I've tested the changes locally (if applicable)

🧪 Related Issues or PRs

This addresses the framework's positioning and makes the naming more intuitive for developers familiar with ASP.NET Core Minimal APIs.


💬 Notes for Reviewers

This is a major breaking change that affects all users of the framework. Key review areas:

  1. Consistency: Verify all references have been updated (namespaces, docs, workflows)
  2. Version Bump: Confirm the 2.0.0-beta.1 version is appropriate for this breaking change
  3. Documentation: Ensure the new branding is consistently applied across all documentation
  4. Backwards Compatibility: Note that this is intentionally NOT backwards compatible

BREAKING CHANGE

The entire framework has been renamed from AwsLambda.Host to MinimalLambda. All package names, namespaces, and public APIs now use the MinimalLambda prefix instead of AwsLambda.Host.

Migration Required:

  • Update all package references from AwsLambda.Host* to MinimalLambda*
  • Update all using statements from AwsLambda.Host to MinimalLambda
  • Update configuration section from AwsLambdaHost to LambdaHost

This is a major version bump (2.0.0) to reflect the breaking nature of this change.

- Updated project namespaces and references from AwsLambda.Host to MinimalLambda.
- Changed all package names and documentation references to align with MinimalLambda branding.
- Adjusted example projects and unit tests to reflect the renaming.
- Replaced all occurrences of the `MinimalLambda.Host` namespace with `MinimalLambda`.
- Updated related unit tests, examples, and benchmark projects to use the new namespace.
- Adjusted global using directives and documentation references accordingly.
- Included required namespaces in example and benchmark projects.
- Ensured consistency with the updated project structure.
… from TypeInfo usages

- Simplified `Microsoft.CodeAnalysis.TypeInfo` to `TypeInfo` across HandlerInfoExtractor.cs.
- Maintained consistency with project-wide namespace simplifications.
…sions

- Added `Microsoft.Extensions.DependencyInjection` imports in `RequestEnvelopeMiddleware.cs` and `OutputFormattingLambdaApplicationExtensions.cs`.
- Included `MinimalLambda.Envelopes` import in `RequestEnvelopeMiddleware.cs`.
- Replaced unqualified `Options.Create` with `Microsoft.Extensions.Options.Options.Create` in tests.
- Included missing namespace imports in relevant test files for consistency.
…ency

- Renamed `AwsLambda.Host.targets` to `MinimalLambda.Core.targets` for clarity.
- Updated project file references to reflect the new build target file name.
- Adjusted `InitialTargets` and `Target` name to align with the new naming convention.
- Removed obsolete folder and restructured build file inclusion.
- Ensured consistent packaging metadata in project file.
- Updated solution file name to align with the MinimalLambda branding.
…aHost

Simplify the configuration section name from "AwsLambdaHost" to "LambdaHost"
for better clarity and conciseness. This change affects how users configure
the Lambda host in appsettings.json and environment variables.

BREAKING CHANGE: Configuration section name changed from "AwsLambdaHost" to "LambdaHost"

Users must update their configuration files:

Before:
{
  "AwsLambdaHost": {
    "InvocationCancellationBuffer": "00:00:05"
  }
}

After:
{
  "LambdaHost": {
    "InvocationCancellationBuffer": "00:00:05"
  }
}

Environment variables must also be updated:
- AwsLambdaHost__InvocationCancellationBuffer → LambdaHost__InvocationCancellationBuffer
- Pattern: AwsLambdaHost__* → LambdaHost__*
Update remaining "AWS Lambda Host" references to "MinimalLambda"
in CONTRIBUTING.md and package.json description.
… global usings

- Removed unused `build/MinimalLambda.targets` and associated references from the project file.
- Deleted redundant global `MinimalLambda` using directives in `GlobalUsings.cs`.
- Introduced `GenericHandler.scriban` for generating generic handler extensions.
- Added `MapHandler.scriban` to support mapping of lambda handlers with event/response features.
- Created `InterceptsLocationAttribute.scriban` for method-level interception metadata generation.
- Updated `.gitignore` to properly exclude temporary and environment-specific files.
- Modified `HandlerInfoExtractor.cs` to adapt to the `MinimalLambda` namespace changes.
…Scriban templates

- Cleaned up unnecessary trailing whitespace in `GenericHandler.scriban`.
- Removed trailing whitespace in `InterceptsLocationAttribute.scriban`.
- Fixed whitespace issues in `MapHandler.scriban` for improved readability.
…LocationAttribute.scriban

- Cleaned up unnecessary trailing whitespace for improved template readability.
- Deleted outdated `LambdaHandler.g.verified.cs` snapshots for test cases:
  - `ExpressionLambdaVerifyTests`
  - `OnInitVerifyTests`
  - `OnShutdownVerifyTests`
- Cleaned up unnecessary snapshot files no longer in use.
Update all major documentation to highlight the ASP.NET Core Minimal API
coding pattern while clarifying this works for ANY Lambda trigger type:

- Lead with 'If you know ASP.NET Core Minimal APIs, you already know MinimalLambda'
- Add comparison table showing ASP.NET Core → MinimalLambda equivalents
- Reorder key features to lead with Minimal API Pattern
- Clarify 'for any trigger' (SQS, SNS, Kinesis, S3, EventBridge, API Gateway, etc.)
- Update package descriptions to be concise: 'Minimal API-style framework for AWS Lambda functions'
- Emphasize this is about the coding PATTERN, not just HTTP/API events

This makes it clear that MinimalLambda uses familiar ASP.NET Core coding
patterns but works across all Lambda event sources.
…operties

- Updated `InterceptorsNamespaces` to include `MinimalLambda.Generated` instead of `MinimalLambda`.
- Removed unused `RootNamespace` property from `MinimalLambda.csproj`.
- Cleaned up unnecessary empty `<ItemGroup>` in `MinimalLambda.Example.HelloWorld.csproj`.
Update all package Description tags to be concise and follow industry patterns:
- MinimalLambda: 'Minimal API-style framework for AWS Lambda functions'
- MinimalLambda.Abstractions: 'Core abstractions for MinimalLambda'
- MinimalLambda.OpenTelemetry: 'OpenTelemetry integration for MinimalLambda'
- All envelope packages: 'Strongly-typed [EventSource] event envelopes'

This provides clear, consistent metadata for NuGet package listings.
@github-actions github-actions Bot added the breaking-change Introduces a breaking change label Dec 11, 2025
@j-d-ha j-d-ha changed the title refactor!: rename framework from AwsLambda.Host to MinimalLambda refactor: rename framework from AwsLambda.Host to MinimalLambda Dec 11, 2025
Updated across multiple files to align with the updated naming convention:
- Adjusted `RootNamespace` in project files to use `MinimalLambda`.
- Updated `AWS_LAMBDA_FUNCTION_NAME` values in launch settings for consistency.
- Changed documentation references in `CLAUDE.md` and `CONTRIBUTING.md` to reflect the new naming.

This ensures consistency throughout the project following namespace changes.
@github-actions github-actions Bot added the type: refactor Code refactoring label Dec 11, 2025
- Removed redundant global `MinimalLambda` and `MinimalLambda.Options` usings.
- Simplified `GlobalUsings.cs` for improved clarity and maintainability.
…ng Scriban templates

- Introduced `TemplateHelper` class to load templates from embedded resources.
- Added error handling for missing or invalid template resources.
- Updated `.gitignore` to refine exclusion of temporary `.cs` files.
@j-d-ha
j-d-ha enabled auto-merge (squash) December 11, 2025 19:07
@j-d-ha
j-d-ha disabled auto-merge December 11, 2025 19:14
@j-d-ha
j-d-ha merged commit ca5e2cc into main Dec 11, 2025
6 of 7 checks passed
@j-d-ha
j-d-ha deleted the feature/rename-to-minimal-lambda branch December 11, 2025 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Introduces a breaking change type: refactor Code refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant