Regenerate course deltas for .NET 10 + Boot 4.1 secure modernization - #39
Merged
Conversation
….16/Java17 Java services) Not a learner-facing commit. This is the tooling-free base tree that course-build deltas apply onto: acc-base's file-set updated to main's current app state. Contains no course-build/ or .github/workflows automation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…dule 06 -> Boot 4.1 Re-baselines the ACC learner-branch delta store onto a new tooling-free base commit C (manifest.base.sha 3689288 -> 510b4ff): acc-base's app tree updated to current main (.NET 10 assets-svc + Boot 3.5.16 / Java 17 Java services). Every module delta re-authored/re-verified against C and every expectedTreeSha recomputed; build-branches --check and selftest are green. - module-01: README reconciled (keep current .NET 10 / React-islands facts; keep the ARCHITECTURE.md + gap-fill additions). - module-03: package.json/package-lock regenerated (Playwright + concurrently 10.x); reporting-svc pyproject test-deps reconciled with dependabot versions. - module-05: assets-svc .csproj reconciled to .NET 10 package versions + the QR generator dependency. - module-06: REWRITTEN to the secure currency upgrade Boot 3.5.16/Java17 -> Boot 4.1.0/Java21 (Jackson 3 default + jackson-bom/log4j2 currency pins; Dockerfiles temurin 17->21; auth-svc jjwt 0.11.5->0.12.7 + jjwt-jackson-> jjwt-gson). audit 3/3, auth 4/4 mvn verify green on 4.1.0/21; trees OSV-clean. The javax->jakarta rename and with-java11 removal are pre-done on the base. - CI: validate-branches.yml setup-dotnet 8.0 -> 10.0 and single Java 21 (drop the Java 11 leg); validate-branch.sh drops the with-java11 wrapper. - REFS.md documents the new base + acc-base tag move on gated promotion. Promotion is still required (gated, owner-approved) and is NOT performed here. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… CI reachability Records base commit C (510b4ff, manifest.base.sha) as an ancestor so the validate-branches workflow (actions/checkout fetch-depth:0) has the base object locally for 'git am'. Uses -s ours: the branch tree is unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Re-baselines the ACC learner-branch delta store onto the current
mainapp state and rewrites Module 6 to the secure currency upgrade.mainalready carries .NET 10 (#34) and the CVE-clean Boot 3.5.16 / Java 17 Java baseline (#36); this PR makes thestart-of-module-Ndeltas regenerate cleanly on that state and moves the Module 6 exercise from the old (now-impossible) Boot 2.7→3.5 story to a real, zero-CVE Boot 3.5.16/Java 17 → Boot 4.1.0/Java 21 modernization.PR-only. No promotion is performed. No
start-of-module-*,regen/*, oracc-*refs are pushed; theacc-basetag is not moved. Promotion (moving mutable aliases + theacc-basetag to the new base) remains a gated, owner-approved step.Net change (main tree)
Only
course-build/**and.github/workflows/validate-branches.ymlchange onmain. No app/service files are modified onmain— the Boot 4.1 modernization lives inside the Module 6 delta and only materializes on the builtstart-of-module-07learner branch.New tooling-free base commit C
manifest.base.sha:3689288→510b4ff(grafted into this branch's history via an-s oursmerge so CI'sfetch-depth: 0has the object; the branch tree is unchanged). C = acc-base's pristine, tooling-free file-set updated to main's current app state (net10 assets-svc + Boot 3.5.16/Java 17 services); nocourse-build/or workflow automation.Deltas re-authored / re-verified against C (all
expectedTreeSharecomputed)package.json/package-lockregenerated (Playwright +concurrently10.x);reporting-svcpyprojecttest-deps merged with dependabot versions.assets-svc.csprojreconciled to .NET 10 package versions + theNet.Codecrete.QrCodeGeneratordependency.Module 6 — the rewritten "after"
audit-svc + auth-svc: Boot 3.5.16 → 4.1.0, Java 17 → 21, Dockerfiles temurin 17 → 21, plus currency pins because Boot 4.1.0 natively resolves a vulnerable Jackson 3 (
3.1.4) and Log4j2 (2.25.4). auth-svc additionally migrates jjwt0.11.5→0.12.7(fluent builder API inJwtIssuer) and swapsjjwt-jackson→jjwt-gsonso JWT (de)serialization stays off Jackson 2, which Boot 4 no longer manages. Thejavax→jakartarename andwith-java11removal are already pre-done on the base, so they're no longer part of this delta.Verification (real builds, JDK 21 / Temurin 21.0.12)
mvn verifygreen: audit-svc 3/3, auth-svc 4/4 on Boot 4.1.0/Java 21 (incl. a token round-trip proving the gson serializer under Jackson 3). Tests use@LocalServerPort+RestClientto avoid the Boot 4TestRestTemplaterelocation.com.fasterxml.jackson.core:jackson-databind(Jackson 2) remains.build-branches.mjs --check: all 6 module trees match manifest, ancestry linear.selftest.mjs: green.Pinned final version set (for the ACC content reconcile / PR #20 TODOs)
tools.jackson, pinnedjackson-bom.version)log4j2.version)("Before" baseline on main, for reference: Boot 3.5.16 / Java 17 / jackson-bom 2.22.2 / log4j2 2.25.5.)
CI
validate-branches.yml:setup-dotnet8.0 → 10.0; Java matrix collapsed to a single Java 21 (drop the Java 11 leg).validate-branch.shdrops thewith-java11wrapper (all Java services now build on JDK 21; audit/auth target 17 bytecode before Module 6, 21 after).This PR only updates the delta store + CI. After merge, a separate gated promotion must build the staging refs, move the mutable
start-of-module-*aliases, cut theacc-<month>tags, and move theacc-basetag to510b4ff.promote-branchesis not run here.Companion (not in this PR)
The ACC content rewrite (
content/06+resources/modernize-audit-svc.md) and the exhaustivedocs/modernization/*pedagogy reconcile are tracked for the ACC content PR (#20) using the pinned versions above.