Skip to content

chore(upgrade): sync dependency metadata with AppCAT rules#1025

Draft
frankliu20 wants to merge 2 commits into
microsoft:mainfrom
frankliu20:feat/sync-dependency-metadata-with-appcat
Draft

chore(upgrade): sync dependency metadata with AppCAT rules#1025
frankliu20 wants to merge 2 commits into
microsoft:mainfrom
frankliu20:feat/sync-dependency-metadata-with-appcat

Conversation

@frankliu20

Copy link
Copy Markdown
Contributor

Align EOL/deprecated thresholds with AppCAT azure rulesets:

  • Spring Boot: supportedVersion >=3.5.x, suggest 4.0
  • Spring Framework: supportedVersion >=6.2.x, suggest 7.0
  • Spring Security: supportedVersion >=6.5.x, suggest 6.5
  • Add Spring Cloud (>=2025.x)
  • Jakarta EE: suggest version 11
  • Update eolDate to OSS support end dates

@frankliu20 frankliu20 marked this pull request as draft June 2, 2026 04:28
@frankliu20 frankliu20 changed the title fix(upgrade): sync dependency metadata with AppCAT rules chore(upgrade): sync dependency metadata with AppCAT rules Jun 2, 2026
@frankliu20 frankliu20 force-pushed the feat/sync-dependency-metadata-with-appcat branch from d44e9af to 84c9035 Compare June 2, 2026 04:41
Align EOL/deprecated thresholds with AppCAT azure rulesets using
commercial support end dates to avoid false-positive EOL warnings
for enterprise users:

- Spring Boot: supportedVersion 2.7.x || >=3.5.x, suggest 4.0
- Spring Framework: suggestedVersion 7.0
- Spring Security: supportedVersion 5.7.x || 5.8.x || >=6.5.x, suggest 6.5
- Add Spring Cloud (>=2025.x)
- Jakarta EE: suggest version 11
- Add eolDate entries for newer versions (4.0, 3.5, 3.4, 3.3)

Data sourced from endoflife.date.
@frankliu20 frankliu20 force-pushed the feat/sync-dependency-metadata-with-appcat branch from 84c9035 to 4920c06 Compare June 2, 2026 04:45
@frankliu20 frankliu20 marked this pull request as ready for review June 9, 2026 06:00
@wenytang-ms

Copy link
Copy Markdown
Contributor

Spring Cloud entry: version-scheme mismatch (likely false positives)

The new org.springframework.cloud:* rule is expressed in release-train calendar versions (supportedVersion: ">=2025.x", eolDate keyed 2025.x2021.x, suggestedVersion: "2025.0"), but the assessment engine compares these against the resolved artifact version of each jar via semver.coerce(...) + semver.satisfies(...).

Spring Cloud is the one project where the two differ: the release train is calendar-versioned, but the individual org.springframework.cloud:* jars are semantically versioned. Maven Central confirms spring-cloud-commons latest release = 5.0.1 (versions go 1.x → 2.x → … → 5.x, never 2025.x).

Consequences (verified with the repo's semver):

  • 5.0.x (the current 2025.0.x train) → satisfies(">=2025.x") = false → flagged as EOL. False positive on the newest release.
  • 4.1.5 (2023.0.x train) → flagged, but findEolDate("4.1.5") matches no 20xx.x range → the message shows no EOL date and reads like "Spring Cloud 4.1.5 … upgrade to 2025.0".

Only literal calendar versions — which never appear as resolved jar versions — would pass.

Suggestion: either express the rule in the modules' semantic versions (e.g. >=5.x, with eolDate keyed 4.1.x, 4.0.x, …), or drop the Spring Cloud entry until a train→module-version mapping exists.

Separately, this hunk is a good concrete example of a broader question worth aligning on: who should own the authoritative framework-EOL catalog (App Modernization) vs. what this extension detects locally (JRE + nudge). Happy to discuss offline.

@frankliu20 frankliu20 marked this pull request as draft June 10, 2026 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants