From 0b68ad28e117f8841c15517a0092b882d1b51fcf Mon Sep 17 00:00:00 2001 From: Nick Cipollina Date: Sat, 28 Mar 2026 22:12:33 -0400 Subject: [PATCH] docs: update namespace references and add deprecation notice for DecoWeaver package Updates all code examples in README and docs to use the new `LayeredCraft.DecoWeaver.Attributes` namespace and `LayeredCraft.DecoWeaver` package name. Adds a deprecation callout in README, docs/index.md, and the installation guide directing users to migrate from the old `DecoWeaver` package. Co-Authored-By: Claude Sonnet 4.6 --- LayeredCraft.DecoWeaver.slnx | 7 ++++--- README.md | 8 +++++--- docs/advanced/source-generators.md | 2 +- docs/api-reference/attributes.md | 6 +++--- docs/examples/index.md | 2 +- docs/getting-started/installation.md | 15 +++++++++------ docs/getting-started/quick-start.md | 8 ++++---- docs/index.md | 11 +++++++---- docs/usage/assembly-level-decorators.md | 4 ++-- docs/usage/class-level-decorators.md | 4 ++-- 10 files changed, 38 insertions(+), 29 deletions(-) diff --git a/LayeredCraft.DecoWeaver.slnx b/LayeredCraft.DecoWeaver.slnx index 1e4b5ce..8ce23e5 100644 --- a/LayeredCraft.DecoWeaver.slnx +++ b/LayeredCraft.DecoWeaver.slnx @@ -8,6 +8,7 @@ + @@ -56,7 +57,7 @@ - + @@ -64,10 +65,10 @@ - + - + \ No newline at end of file diff --git a/README.md b/README.md index f1f1705..c5615f8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Compile-time decorator registration for .NET dependency injection** -[![NuGet](https://img.shields.io/nuget/v/DecoWeaver.svg)](https://www.nuget.org/packages/DecoWeaver/) +[![NuGet](https://img.shields.io/nuget/v/LayeredCraft.DecoWeaver.svg)](https://www.nuget.org/packages/LayeredCraft.DecoWeaver/) [![Build Status](https://github.com/LayeredCraft/decoweaver/actions/workflows/build.yaml/badge.svg)](https://github.com/LayeredCraft/decoweaver/actions/workflows/build.yaml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Documentation](https://img.shields.io/badge/docs-latest-blue)](https://layeredcraft.github.io/decoweaver/) @@ -21,12 +21,14 @@ DecoWeaver is a .NET incremental source generator that brings **compile-time dec 📚 **[View Full Documentation](https://layeredcraft.github.io/decoweaver/)** +> **Migrating from `DecoWeaver`?** The `DecoWeaver` NuGet package has been deprecated in favor of `LayeredCraft.DecoWeaver`. Update your package reference and replace `using DecoWeaver.Attributes;` with `using LayeredCraft.DecoWeaver.Attributes;` in your code. + ## Installation Install the NuGet package: ```bash -dotnet add package DecoWeaver --prerelease +dotnet add package LayeredCraft.DecoWeaver --prerelease ``` Ensure your project uses C# 11 or later: @@ -43,7 +45,7 @@ Ensure your project uses C# 11 or later: ### 1. Mark your implementation with the decorator to apply ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy] public class UserRepository : IUserRepository diff --git a/docs/advanced/source-generators.md b/docs/advanced/source-generators.md index c0af12c..7ab8b58 100644 --- a/docs/advanced/source-generators.md +++ b/docs/advanced/source-generators.md @@ -377,7 +377,7 @@ public async Task GeneratesInterceptorForDecoratedType() { // Arrange var source = @" - using DecoWeaver.Attributes; + using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy] public class UserRepository : IUserRepository { } diff --git a/docs/api-reference/attributes.md b/docs/api-reference/attributes.md index 9f40e35..6418784 100644 --- a/docs/api-reference/attributes.md +++ b/docs/api-reference/attributes.md @@ -42,7 +42,7 @@ public class UserRepository : IUserRepository { } #### Basic Usage ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy] public class UserRepository : IUserRepository @@ -155,7 +155,7 @@ Controls the order in which multiple decorators are applied. Lower values are ap #### Basic Usage ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy(typeof(LoggingRepository))] public class UserRepository : IUserRepository @@ -333,7 +333,7 @@ Controls the order when multiple assembly-level decorators are applied. Lower va #### Basic Usage ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; // Apply logging to all IRepository implementations [assembly: DecorateService(typeof(IRepository<>), typeof(LoggingRepository<>))] diff --git a/docs/examples/index.md b/docs/examples/index.md index c94e8dc..3900f41 100644 --- a/docs/examples/index.md +++ b/docs/examples/index.md @@ -65,7 +65,7 @@ Here's a complete example showing multiple decorators working together: ```csharp using Microsoft.Extensions.DependencyInjection; -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; // Service interface public interface IOrderService diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 2ab57ff..b7463fb 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -5,29 +5,32 @@ Install DecoWeaver via the .NET CLI: ```bash -dotnet add package DecoWeaver --prerelease +dotnet add package LayeredCraft.DecoWeaver --prerelease ``` Or via Package Manager Console in Visual Studio: ```powershell -Install-Package DecoWeaver -Prerelease +Install-Package LayeredCraft.DecoWeaver -Prerelease ``` Or add directly to your `.csproj` file: ```xml - + ``` Note: The full version includes a build number suffix added by the build system (e.g., `1.0.0-beta.123`). +!!! warning "Migrating from `DecoWeaver`?" + The `DecoWeaver` NuGet package has been deprecated. Replace it with `LayeredCraft.DecoWeaver` and update all `using DecoWeaver.Attributes;` statements to `using LayeredCraft.DecoWeaver.Attributes;`. + ## Package Contents The DecoWeaver NuGet package includes: -- **DecoWeaver.Attributes.dll** - Runtime attributes (zero footprint with `[Conditional]`) -- **DecoWeaver.dll** - Source generator (build-time only) +- **LayeredCraft.DecoWeaver.Attributes.dll** - Runtime attributes (zero footprint with `[Conditional]`) +- **LayeredCraft.DecoWeaver.Generators.dll** - Source generator (build-time only) ## Verify Installation @@ -35,7 +38,7 @@ After installation, verify the generator is working: 1. Add a simple decorator attribute to a class 2. Build your project -3. Check for generated files in `obj/Debug/{targetFramework}/generated/DecoWeaver/` +3. Check for generated files in `obj/Debug/{targetFramework}/generated/LayeredCraft.DecoWeaver.Generators/` ## IDE Support diff --git a/docs/getting-started/quick-start.md b/docs/getting-started/quick-start.md index b4dd5d1..164d580 100644 --- a/docs/getting-started/quick-start.md +++ b/docs/getting-started/quick-start.md @@ -5,7 +5,7 @@ Get started with DecoWeaver in 5 minutes by creating a simple logging decorator. ## Step 1: Install DecoWeaver ```bash -dotnet add package DecoWeaver --prerelease +dotnet add package LayeredCraft.DecoWeaver --prerelease ``` ## Step 2: Create Your Service @@ -71,7 +71,7 @@ public class LoggingUserService : IUserService Add the `[DecoratedBy]` attribute to your implementation: ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy] public class UserService : IUserService @@ -115,7 +115,7 @@ await userService.GetByIdAsync(123); To see the generated interceptor code: -**Visual Studio**: Solution Explorer → Show All Files → obj/Debug/net8.0/generated/DecoWeaver/ +**Visual Studio**: Solution Explorer → Show All Files → obj/Debug/net8.0/generated/LayeredCraft.DecoWeaver.Generators/ **Rider**: Solution Explorer → Generated Files node @@ -125,7 +125,7 @@ Instead of applying decorators to each class individually, you can apply them to ```csharp // In GlobalUsings.cs or any .cs file -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [assembly: DecorateService(typeof(IUserService), typeof(LoggingUserService))] diff --git a/docs/index.md b/docs/index.md index 6312153..1eb39dc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,8 +1,8 @@ # DecoWeaver [![Build Status](https://github.com/layeredcraft/decoweaver/actions/workflows/build.yaml/badge.svg)](https://github.com/layeredcraft/decoweaver/actions/workflows/build.yaml) -[![NuGet](https://img.shields.io/nuget/v/DecoWeaver.svg)](https://www.nuget.org/packages/DecoWeaver/) -[![Downloads](https://img.shields.io/nuget/dt/DecoWeaver.svg)](https://www.nuget.org/packages/DecoWeaver/) +[![NuGet](https://img.shields.io/nuget/v/LayeredCraft.DecoWeaver.svg)](https://www.nuget.org/packages/LayeredCraft.DecoWeaver/) +[![Downloads](https://img.shields.io/nuget/dt/LayeredCraft.DecoWeaver.svg)](https://www.nuget.org/packages/LayeredCraft.DecoWeaver/) **DecoWeaver** is a compile-time decorator registration library for .NET dependency injection. It uses C# 11+ interceptors to automatically apply the decorator pattern at build time, eliminating runtime reflection and assembly scanning. @@ -19,10 +19,13 @@ - **🔗 Order Control**: Explicit decorator ordering via `Order` property - **✨ Clean Generated Code**: Readable, debuggable interceptor code +!!! warning "Migrating from `DecoWeaver`?" + The `DecoWeaver` NuGet package has been deprecated in favor of `LayeredCraft.DecoWeaver`. Update your package reference and replace `using DecoWeaver.Attributes;` with `using LayeredCraft.DecoWeaver.Attributes;` in your code. + ## Installation ```bash -dotnet add package DecoWeaver --prerelease +dotnet add package LayeredCraft.DecoWeaver --prerelease ``` ## Quick Start @@ -73,7 +76,7 @@ public class LoggingUserRepository : IUserRepository ### 3. Apply the Decorator Attribute ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy] public class UserRepository : IUserRepository diff --git a/docs/usage/assembly-level-decorators.md b/docs/usage/assembly-level-decorators.md index 74976d4..b6a6b4a 100644 --- a/docs/usage/assembly-level-decorators.md +++ b/docs/usage/assembly-level-decorators.md @@ -7,7 +7,7 @@ Assembly-level decorators provide a centralized way to apply decorators to multi Use the `[assembly: DecorateService(...)]` attribute in any `.cs` file (commonly in `GlobalUsings.cs` or `AssemblyInfo.cs`): ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [assembly: DecorateService(typeof(IRepository<>), typeof(CachingRepository<>))] ``` @@ -358,7 +358,7 @@ Keep all assembly-level decorators in one file: ```csharp // GlobalUsings.cs or AssemblyDecorators.cs -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; // Repositories [assembly: DecorateService(typeof(IRepository<>), typeof(LoggingRepository<>), Order = 10)] diff --git a/docs/usage/class-level-decorators.md b/docs/usage/class-level-decorators.md index 70eb7ed..d5d2329 100644 --- a/docs/usage/class-level-decorators.md +++ b/docs/usage/class-level-decorators.md @@ -12,7 +12,7 @@ The `[DecoratedBy]` attribute is the primary way to apply decorators in DecoWeav The most common and type-safe approach: ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy] public class UserRepository : IUserRepository @@ -26,7 +26,7 @@ public class UserRepository : IUserRepository Alternative syntax using `typeof()`: ```csharp -using DecoWeaver.Attributes; +using LayeredCraft.DecoWeaver.Attributes; [DecoratedBy(typeof(LoggingDecorator))] public class UserRepository : IUserRepository