Context
The fork cesarcastrocuba/dotnet-starter-kit is 14 commits behind fullstackhero/dotnet-starter-kit@develop.
Several of these commits modify files that were also changed in our recently merged branches, so manual conflict resolution will be required.
Issues
| ID |
Description |
File affected |
Effort |
| SYNC-1 |
Merge UserService.cs split into 6 SRP services |
Modules.Identity/Services/UserService.cs |
L |
| SYNC-2 |
Accept FshUser domain event wiring |
Modules.Identity/Domain/FshUser.cs |
S |
| SYNC-3 |
Accept CancellationToken in IRoleService + handlers |
Modules.Identity/Services/RoleService.cs |
S |
| SYNC-4 |
Merge UserPermissionService upstream changes keeping our cache-key fix |
Modules.Identity/Services/UserPermissionService.cs |
S |
| SYNC-5 |
Accept SessionCleanupHostedService |
Modules.Identity/Services/SessionCleanupHostedService.cs |
XS |
| SYNC-6 |
Accept TenantDbContextFactory migrations assembly fix |
Modules.Multitenancy/Data/TenantDbContextFactory.cs |
XS |
| SYNC-7 |
Accept NuGet version bumps (Hangfire, AWS S3, OTel, Scalar) |
*.csproj |
XS |
Steps to perform
git remote add upstream https://github.com/fullstackhero/dotnet-starter-kit.git
git fetch upstream
git checkout develop
git merge upstream/develop --no-ff
# Resolve conflicts (see below)
git push origin develop
Expected conflicts — files to resolve
| File |
Reason |
src/Modules/Identity/Modules.Identity/Services/UserService.cs |
Upstream fullstackhero#1192 split this into 6 SRP services |
src/Modules/Identity/Modules.Identity/Domain/FshUser.cs |
Upstream fullstackhero#1185 adds domain events |
src/Modules/Identity/Modules.Identity/Services/RoleService.cs |
Upstream fullstackhero#1191 adds CancellationToken |
src/Modules/Identity/Modules.Identity/Services/UserPermissionService.cs |
Both branches modified this |
Resolution guidance for each high-risk conflict
Upstream splits UserService.cs into:
UserQueryService.cs
UserCommandService.cs
UserProfileService.cs
UserTokenService.cs
UserSessionService.cs
UserStatusService.cs
Strategy: Accept upstream's split (keep their files). Re-apply any of our ValueTask/permission fixes into each split service individually. Do NOT keep our monolithic UserService.cs.
Upstream adds DomainEvents collection and RegisterDomainEvent() to FshUser.
Strategy: Accept upstream's additions. Our branch only changed property types (ValueTask), so merging is straightforward.
UserPermissionService.cs (fullstackhero#1191 + our CACHE-1 fix)
Upstream adds CancellationToken parameter to IRoleService.
Our branch modified the cache key (separate issue).
Strategy: Accept all upstream changes AND keep our cache key fix (perm:{tenantId}:{userId} — see issue #6).
Acceptance criteria
Verification steps
git log --oneline upstream/develop | head -20
git log --oneline develop | head -20
# Both should show same top commit after merge
dotnet build src/dotnet-starter-kit.sln
Context
The fork
cesarcastrocuba/dotnet-starter-kitis 14 commits behindfullstackhero/dotnet-starter-kit@develop.Several of these commits modify files that were also changed in our recently merged branches, so manual conflict resolution will be required.
Issues
Modules.Identity/Services/UserService.csModules.Identity/Domain/FshUser.csModules.Identity/Services/RoleService.csModules.Identity/Services/UserPermissionService.csModules.Identity/Services/SessionCleanupHostedService.csModules.Multitenancy/Data/TenantDbContextFactory.cs*.csprojSteps to perform
git remote add upstream https://github.com/fullstackhero/dotnet-starter-kit.git git fetch upstream git checkout develop git merge upstream/develop --no-ff # Resolve conflicts (see below) git push origin developExpected conflicts — files to resolve
src/Modules/Identity/Modules.Identity/Services/UserService.cssrc/Modules/Identity/Modules.Identity/Domain/FshUser.cssrc/Modules/Identity/Modules.Identity/Services/RoleService.cssrc/Modules/Identity/Modules.Identity/Services/UserPermissionService.csResolution guidance for each high-risk conflict
UserService.cs vs 6 SRP services (fullstackhero#1192)
Upstream splits
UserService.csinto:UserQueryService.csUserCommandService.csUserProfileService.csUserTokenService.csUserSessionService.csUserStatusService.csStrategy: Accept upstream's split (keep their files). Re-apply any of our ValueTask/permission fixes into each split service individually. Do NOT keep our monolithic
UserService.cs.FshUser.cs domain events (fullstackhero#1185)
Upstream adds
DomainEventscollection andRegisterDomainEvent()toFshUser.Strategy: Accept upstream's additions. Our branch only changed property types (ValueTask), so merging is straightforward.
UserPermissionService.cs (fullstackhero#1191 + our CACHE-1 fix)
Upstream adds
CancellationTokenparameter toIRoleService.Our branch modified the cache key (separate issue).
Strategy: Accept all upstream changes AND keep our cache key fix (
perm:{tenantId}:{userId}— see issue #6).Acceptance criteria
git log --oneline develop | head -15shows all 14 upstream commits are presentdotnet build src/dotnet-starter-kit.slnexits with 0 errors, 0 warningsdotnet test tests/exits with 0 failuresVerification steps