Skip to content

[TIER 0] sync/upstream-develop - Integrate 14 upstream commits (BLOCKER) #5

@cesarcastrocuba

Description

@cesarcastrocuba

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

UserService.cs vs 6 SRP services (fullstackhero#1192)

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.

FshUser.cs domain events (fullstackhero#1185)

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

  • git log --oneline develop | head -15 shows all 14 upstream commits are present
  • dotnet build src/dotnet-starter-kit.sln exits with 0 errors, 0 warnings
  • dotnet test tests/ exits with 0 failures

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: choreMaintenance, deps, or docsupstream: syncUpstream fullstackhero commits to integrate

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions