Skip to content

Commit 476fb32

Browse files
authored
Merge pull request #91 from oproto/feature/prerelease-namespace-cleanup
Feature/prerelease namespace cleanup
2 parents a91c409 + 0bd6907 commit 476fb32

File tree

196 files changed

+1059
-357
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+1059
-357
lines changed

.kiro/specs/advanced-type-system/design.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ Oproto.FluentDynamoDb/ # Core library (.NET 8)
3030
3131
Oproto.FluentDynamoDb.SourceGenerator/ # Source generator (.NET Standard 2.0)
3232
├── Generators/
33-
│ ├── AdvancedTypeMapper.cs # Map/Set/List generation
33+
│ ├── ComplexTypeMapper.cs # Map/Set/List generation
3434
│ ├── TtlConverter.cs # TTL conversion generation
3535
│ ├── JsonBlobMapper.cs # JSON serialization generation
3636
│ └── BlobReferenceMapper.cs # Blob storage generation
3737
└── Analyzers/
38-
└── AdvancedTypeAnalyzer.cs # Validation and diagnostics
38+
└── ComplexTypeAnalyzer.cs # Validation and diagnostics
3939
4040
Oproto.FluentDynamoDb.SystemTextJson/ # System.Text.Json support (.NET 8)
4141
└── SystemTextJsonSerializer.cs # AOT-compatible via source generation
@@ -400,11 +400,11 @@ internal class AttributeValueInternal
400400
The source generator will analyze properties and detect advanced types:
401401

402402
```csharp
403-
public class AdvancedTypeAnalyzer
403+
public class ComplexTypeAnalyzer
404404
{
405-
public AdvancedTypeInfo AnalyzeProperty(PropertyModel property)
405+
public ComplexTypeInfo AnalyzeProperty(PropertyModel property)
406406
{
407-
var info = new AdvancedTypeInfo
407+
var info = new ComplexTypeInfo
408408
{
409409
PropertyName = property.PropertyName,
410410
IsMap = IsMapType(property),
@@ -442,7 +442,7 @@ public class AdvancedTypeAnalyzer
442442
return property.PropertyType.StartsWith("List<");
443443
}
444444

445-
private void ValidateTypeConfiguration(AdvancedTypeInfo info, PropertyModel property)
445+
private void ValidateTypeConfiguration(ComplexTypeInfo info, PropertyModel property)
446446
{
447447
// TTL validation
448448
if (info.IsTtl && !property.PropertyType.Contains("DateTime"))
@@ -477,7 +477,7 @@ public class AdvancedTypeAnalyzer
477477
}
478478
}
479479

480-
public class AdvancedTypeInfo
480+
public class ComplexTypeInfo
481481
{
482482
public string PropertyName { get; set; }
483483
public bool IsMap { get; set; }
@@ -921,10 +921,10 @@ public class PropertyModel
921921
public string PropertyType { get; set; }
922922

923923
// New: Advanced type information
924-
public AdvancedTypeInfo AdvancedType { get; set; }
924+
public ComplexTypeInfo ComplexType { get; set; }
925925
}
926926

927-
public class AdvancedTypeInfo
927+
public class ComplexTypeInfo
928928
{
929929
public bool IsMap { get; set; }
930930
public bool IsSet { get; set; }
@@ -1099,53 +1099,53 @@ public class S3BlobProvider : IBlobStorageProvider
10991099
### Compilation Errors
11001100

11011101
```csharp
1102-
public static class AdvancedTypeDiagnostics
1102+
public static class ComplexTypeDiagnostics
11031103
{
11041104
public static readonly DiagnosticDescriptor InvalidTtlType = new(
11051105
"DYNDB101",
11061106
"Invalid TTL property type",
11071107
"[TimeToLive] can only be used on DateTime or DateTimeOffset properties. Property '{0}' is type '{1}'",
1108-
"DynamoDb.AdvancedTypes",
1108+
"DynamoDb.ComplexTypes",
11091109
DiagnosticSeverity.Error,
11101110
isEnabledByDefault: true);
11111111

11121112
public static readonly DiagnosticDescriptor MissingJsonSerializer = new(
11131113
"DYNDB102",
11141114
"Missing JSON serializer package",
11151115
"[JsonBlob] requires referencing either Oproto.FluentDynamoDb.SystemTextJson or Oproto.FluentDynamoDb.NewtonsoftJson",
1116-
"DynamoDb.AdvancedTypes",
1116+
"DynamoDb.ComplexTypes",
11171117
DiagnosticSeverity.Error,
11181118
isEnabledByDefault: true);
11191119

11201120
public static readonly DiagnosticDescriptor MissingBlobProvider = new(
11211121
"DYNDB103",
11221122
"Missing blob provider package",
11231123
"[BlobReference] requires referencing a blob provider package like Oproto.FluentDynamoDb.BlobStorage.S3",
1124-
"DynamoDb.AdvancedTypes",
1124+
"DynamoDb.ComplexTypes",
11251125
DiagnosticSeverity.Error,
11261126
isEnabledByDefault: true);
11271127

11281128
public static readonly DiagnosticDescriptor IncompatibleAttributes = new(
11291129
"DYNDB104",
11301130
"Incompatible attribute combination",
11311131
"[TimeToLive] cannot be combined with [JsonBlob] or [BlobReference] on property '{0}'",
1132-
"DynamoDb.AdvancedTypes",
1132+
"DynamoDb.ComplexTypes",
11331133
DiagnosticSeverity.Error,
11341134
isEnabledByDefault: true);
11351135

11361136
public static readonly DiagnosticDescriptor MultipleTtlFields = new(
11371137
"DYNDB105",
11381138
"Multiple TTL fields",
11391139
"Entity '{0}' has multiple [TimeToLive] properties. Only one TTL field is allowed per entity",
1140-
"DynamoDb.AdvancedTypes",
1140+
"DynamoDb.ComplexTypes",
11411141
DiagnosticSeverity.Error,
11421142
isEnabledByDefault: true);
11431143

11441144
public static readonly DiagnosticDescriptor UnsupportedCollectionType = new(
11451145
"DYNDB106",
11461146
"Unsupported collection type",
11471147
"Collection type '{0}' is not supported. Use Dictionary<string, T>, HashSet<T>, or List<T>",
1148-
"DynamoDb.AdvancedTypes",
1148+
"DynamoDb.ComplexTypes",
11491149
DiagnosticSeverity.Error,
11501150
isEnabledByDefault: true);
11511151
}

.kiro/specs/advanced-type-system/tasks.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
- _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5_
8080

8181
- [x] 5. Enhance source generator for advanced type detection
82-
- [x] 5.1 Create AdvancedTypeAnalyzer class
82+
- [x] 5.1 Create ComplexTypeAnalyzer class
8383
- Detect Map types (Dictionary and [DynamoDbMap] classes)
8484
- Detect Set types (HashSet<T>)
8585
- Detect List types (List<T>)
@@ -623,8 +623,8 @@
623623
- _Requirements: 11.3, 11.4_
624624

625625
- [x] 26. Fix remaining advanced type test failures
626-
- [x] 26.1 Run all AdvancedTypeGenerationTests and identify remaining failures
627-
- Execute: `dotnet test --filter "FullyQualifiedName~AdvancedTypeGenerationTests"`
626+
- [x] 26.1 Run all ComplexTypeGenerationTests and identify remaining failures
627+
- Execute: `dotnet test --filter "FullyQualifiedName~ComplexTypeGenerationTests"`
628628
- Document which tests are still failing
629629
- Identify patterns in the failures
630630

@@ -646,7 +646,7 @@
646646
- Ensure empty List is handled correctly in FromDynamoDb
647647
- _Requirements: 15.1, 15.2_
648648

649-
- [x] 26.5 Verify all 30 AdvancedTypeGenerationTests pass
650-
- Run full test suite: `dotnet test --filter "FullyQualifiedName~AdvancedTypeGenerationTests"`
649+
- [x] 26.5 Verify all 30 ComplexTypeGenerationTests pass
650+
- Run full test suite: `dotnet test --filter "FullyQualifiedName~ComplexTypeGenerationTests"`
651651
- Confirm all tests pass
652652
- Document any remaining issues

.kiro/specs/aot-compatible-service-registration/design.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,9 +474,9 @@ public Property ConfigurationIsolation_ParallelTables()
474474

475475
## Additional Refactoring Details
476476

477-
### EnhancedExecuteAsyncExtensions Refactoring
477+
### EntityExecuteAsyncExtensions Refactoring
478478

479-
The `EnhancedExecuteAsyncExtensions.cs` file currently uses `GetMethod()` reflection to discover `FromDynamoDbAsync` and `ToDynamoDbAsync` methods at runtime. These are NOT interface methods - they are additional static methods generated by the source generator only for entities with blob references.
479+
The `EntityExecuteAsyncExtensions.cs` file currently uses `GetMethod()` reflection to discover `FromDynamoDbAsync` and `ToDynamoDbAsync` methods at runtime. These are NOT interface methods - they are additional static methods generated by the source generator only for entities with blob references.
480480

481481
The `IAsyncEntityHydrator<T>` interface and `DefaultEntityHydratorRegistry` already exist to solve this problem. The source generator creates hydrator implementations that wrap the entity's `FromDynamoDbAsync` method.
482482

.kiro/specs/json-serializer-refactor/tasks.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@
9898
- [x] Update all other generators that reference `IDynamoDbLogger` parameter
9999
- [x] `HydratorGenerator.cs` - updated to pass `options: null` instead of `logger: null`
100100
- [x] `TableGenerator.cs` - already uses `FluentDynamoDbOptions`
101-
- [x] `AdvancedTypeAnalyzer.cs` - removed compile-time JSON serializer detection
101+
- [x] `ComplexTypeAnalyzer.cs` - removed compile-time JSON serializer detection
102102
- [x] `JsonSerializerContextGenerator.cs` - updated to check package reference directly
103103
- _Requirements: 5.3_
104104

105105
## Task 6: Update Request Builders and Extensions
106106
- [x] 6 Update all callers of `ToDynamoDb`/`FromDynamoDb` in request builders
107107
- [x] 6.1 `PutItemRequestBuilder.cs` - pass options instead of logger
108-
- [x] 6.2 `EnhancedExecuteAsyncExtensions.cs` - pass options instead of logger
108+
- [x] 6.2 `EntityExecuteAsyncExtensions.cs` - pass options instead of logger
109109
- [x] 6.3 Any other files calling these methods
110110
- _Requirements: 5.3_
111111

@@ -134,7 +134,7 @@
134134
- _Requirements: 8.2_
135135

136136
- [x] Update `Oproto.FluentDynamoDb.SourceGenerator.UnitTests`
137-
- [x] Update `AdvancedTypeGenerationTests.cs` - remove assembly attribute tests
137+
- [x] Update `ComplexTypeGenerationTests.cs` - remove assembly attribute tests
138138
- [x] Add tests for new generated code pattern
139139
- [x] Add tests for diagnostic warning
140140
- _Requirements: 8.1_

0 commit comments

Comments
 (0)