Skip to content

Rename to Light.PortableResults#23

Merged
feO2x merged 33 commits intomainfrom
22-rename-to-portable-results
Feb 25, 2026
Merged

Rename to Light.PortableResults#23
feO2x merged 33 commits intomainfrom
22-rename-to-portable-results

Conversation

@feO2x
Copy link
Copy Markdown
Owner

@feO2x feO2x commented Feb 25, 2026

Closes #22

Scope

This summary covers branch 22-rename-to-portable-results compared to main.

Change Size

  • 316 files changed
  • 1182 insertions, 1037 deletions
  • Predominantly mechanical rename/refactor work, plus targeted API and documentation fixes.

1. Repository and Package Identity Renamed

The solution moved from Light.Results to Light.PortableResults across repository artifacts:

  • Solution and signing artifacts renamed:
    • Light.Results.slnx -> Light.PortableResults.slnx
    • Light.Results.Public.snk -> Light.PortableResults.Public.snk
    • dotsettings file renamed accordingly
  • Repository URLs and package metadata updated to Light.PortableResults
  • Package names in README and project descriptions updated to the new identity

2. Project and Folder Renames Across src/ and tests/

All major project directories and .csproj names were renamed from Light.Results* to Light.PortableResults*,
including:

  • Core library
  • ASP.NET Core Shared/Minimal APIs/MVC integration projects
  • All corresponding test projects
  • Benchmarks project references

This includes namespace updates and file renames for consistency.

3. Public API Naming Updates (PortableResults Prefix)

Key API names were modernized to match the new package identity.

Core option type renames

  • LightResultsHttpWriteOptions -> PortableResultsHttpWriteOptions
  • LightResultsHttpReadOptions -> PortableResultsHttpReadOptions
  • LightResultsCloudEventsWriteOptions -> PortableResultsCloudEventsWriteOptions
  • LightResultsCloudEventsReadOptions -> PortableResultsCloudEventsReadOptions

ASP.NET Core integration surface

  • AddLightResultsForMinimalApis -> AddPortableResultsForMinimalApis
  • AddLightResultsForMvc -> AddPortableResultsForMvc
  • LightResultEndpointExtensions -> PortableResultsEndpointExtensions
  • ProducesLightResultAttribute -> ProducesPortableResultAttribute
  • LightResultsMinimalApiJsonContext -> PortableResultsMinimalApiJsonContext
  • ResolveLightResultsHttpWriteOptions -> ResolvePortableResultsHttpWriteOptions

Module registration/API naming updates

  • HTTP writing module renamed APIs to PortableResults* variants (including JSON converter registration and header
    conversion service registration)
  • HTTP reading module renamed APIs to PortableResults* variants
  • CloudEvents reading module renamed APIs to PortableResults* variants
  • CloudEvents writing options type renamed to PortableResultsCloudEventsWriteOptions

4. CloudEvents Contract Update: lroutcome -> lproutcome

The reserved Light extension attribute was fully renamed:

  • Wire attribute key:
    • lroutcome -> lproutcome
  • Constant renamed:
    • CloudEventsConstants.LightResultsOutcomeAttributeName ->
      CloudEventsConstants.PortableResultsOutcomeAttributeName

Updated areas:

  • CloudEvents writer (JsonCloudEventsExtensions)
  • CloudEvents reader (ReadOnlyMemoryCloudEventsExtensions)
  • Reserved/forbidden extension filtering logic
  • Error/help messages that reference the reserved attribute
  • CloudEvents unit tests
  • CloudEvents benchmarks
  • Internal planning docs that documented the old key

No backward-compatibility path for lroutcome was kept.

5. README and Documentation Alignment

Root README.md was brought in line with the renamed codebase and APIs:

  • Package names and links updated
  • using namespaces corrected
  • DI registration samples updated to current method names
  • Option type names in configuration snippets updated
  • CloudEvents source URN examples updated to light-portable-results
  • Sample code terminology aligned with current API surface

Additional docs updated:

  • AGENTS.md, src/AGENTS.md, tests/AGENTS.md
  • Selected ai-plans documents reflecting renamed CloudEvents key and product name

6. CI/CD and Build Pipeline Adjustments

GitHub workflows were updated to new solution/signing names:

  • Build/test workflow now restores/builds/tests Light.PortableResults.slnx
  • NuGet release workflow now packs with Light.PortableResults.slnx and Light.PortableResults.snk
  • Release workflow SNK handling was hardened with shell safety flags and cleanup trap

7. Tests and Benchmarks Updated to Match New Names

  • Test project names, namespaces, file paths, and snapshots were renamed to Light.PortableResults*
  • Assertions and JSON payload fixtures were updated to reflect renamed APIs and lproutcome
  • Benchmark code updated to reference renamed projects/types and CloudEvents outcome key

8. Post-Summary Cleanup (Follow-up Commit)

After this summary file was first added, a follow-up cleanup commit addressed remaining transition gaps.

CloudEvents writing API consistency

The CloudEvents writing module still exposed AddLightResults* method names and was aligned to PortableResults*:

  • AddLightResultsCloudEventsWriteOptions -> AddPortableResultsCloudEventsWriteOptions
  • AddLightResultsCloudEventsAttributeConversionService -> AddPortableResultsCloudEventsAttributeConversionService
  • AddDefaultLightResultsCloudEventsWriteJsonConverters -> AddDefaultPortableResultsCloudEventsWriteJsonConverters

The default serializer setup call chain was updated accordingly.

Runtime/message text consistency

  • Updated DI error text from
    "No LightResultsHttpWriteOptions are configured in the DI container" to
    "No PortableResultsHttpWriteOptions are configured in the DI container".

Package release notes consistency

Updated outdated method names in package release notes:

  • AddLightResultsForMinimalApis -> AddPortableResultsForMinimalApis
  • AddLightResultsForMvc -> AddPortableResultsForMvc

Test naming cleanup

Renamed leftover LightResults* test method names/usages to PortableResults* in:

  • CloudEvents writing module tests
  • CloudEvents reading module tests
  • HTTP writing module tests
  • HTTP reading module tests
  • One CloudEvents writing test name (...LightResultsErrorPayload -> ...PortableResultsErrorPayload)

Final sweep result

A final repository-wide sweep was run for stale transition identifiers (Light.Results, LightResults,
light-results,
lroutcome).

Remaining references were limited to:

  • Intentionally excluded files:
    • LightResult.cs
    • LightActionResult.cs
  • Historical planning documents under ai-plans/
  • Benchmark artifact logs (BenchmarkDotNet.Artifacts)

feO2x added 30 commits February 25, 2026 03:21
Signed-off-by: Kenny Pflug <[email protected]>
Signed-off-by: Kenny Pflug <[email protected]>
@feO2x feO2x self-assigned this Feb 25, 2026
@feO2x feO2x requested a review from Copilot February 25, 2026 05:31
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR renames the repository, packages, and public APIs from Light.Results to Light.PortableResults throughout the entire codebase. The rename touches 316 files and includes updates to namespaces, class names, CloudEvents wire format attributes, documentation, CI/CD pipelines, and test snapshots.

Changes:

  • Repository renamed from Light.Results to Light.PortableResults including solution files, signing keys, and URLs
  • All public API types renamed from LightResults* prefix to PortableResults* prefix
  • CloudEvents wire attribute key changed from lroutcome to lproutcome with no backward compatibility
  • All project namespaces updated from Light.Results.* to Light.PortableResults.*
  • Documentation, README, and CI/CD workflows updated to reflect new naming

Reviewed changes

Copilot reviewed 256 out of 316 changed files in this pull request and generated no comments.

Show a summary per file
File Description
Tests namespace files Updated test file namespaces from Light.Results.Tests.* to Light.PortableResults.Tests.*
Module.cs files Renamed DI registration methods from AddLightResults* to AddPortableResults*
Options types Renamed option classes from LightResultsHttp*Options to PortableResultsHttp*Options
CloudEvents constants Changed wire attribute from lroutcome to lproutcome
ASP.NET Core integration Updated MVC and Minimal APIs extension methods and attributes to PortableResults*
Project files Updated all .csproj references and package descriptions
README.md Updated documentation with new package names and API examples
CI/CD workflows Updated GitHub Actions to use new solution and signing key names
Solution file Renamed Light.Results.slnx to Light.PortableResults.slnx
Benchmarks Updated benchmark code to reference renamed types and namespaces

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Light.PortableResults 96% 94% 2300
Light.PortableResults.AspNetCore.MinimalApis 93% 80% 25
Light.PortableResults.AspNetCore.Mvc 93% 80% 26
Light.PortableResults.AspNetCore.Shared 94% 92% 28
Summary 96% (3565 / 3703) 94% (1839 / 1962) 2379

Minimum allowed line rate is 60%

@feO2x feO2x merged commit d1fbd2a into main Feb 25, 2026
2 checks passed
@feO2x feO2x deleted the 22-rename-to-portable-results branch February 25, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rename to Light.PortableResults

2 participants