docs(readmes): auto-sync version display via Maven Central badges#56
Closed
jlc488 wants to merge 1 commit into
Closed
docs(readmes): auto-sync version display via Maven Central badges#56jlc488 wants to merge 1 commit into
jlc488 wants to merge 1 commit into
Conversation
…entral badges Manual version sync across 14 demo rows × 2 languages = 28 spots that have to be hand-bumped on every starter release. The recent 5 stale-ref slips (#55) proved this surface drifts in practice — and was the second time it bit (after the post-SB4 sweep PR). Replaced the "Maven Central coordinates" column in all three tables (easy-paging SB4, easy-paging SB3 maintenance, ssrf-guard) with shields.io badges that read directly from Maven Central: [](https://central.sonatype.com/artifact/<group>/<artifact>) For the SB3 maintenance demos, added &versionPrefix=0.4 so the badge pins to the 0.4.x line (the SB4 0.5.x release on Maven Central would otherwise overwrite the displayed version on the SB3 row). Same trick on the SB4 row with &versionPrefix=0.5 keeps the lines independent if the 0.4.x maintenance branch ever publishes a 0.4.1 patch. Trade-off captured for posterity: - Pro: zero manual sync; release publishes → README updates automatically. - Con: badge reflects "latest on Maven Central," not "what this demo pins in build.gradle.kts." There's a short mismatch window between a release going out and Dependabot landing the per-demo pin bump. Acceptable because (a) the window is short — dependabot fires within minutes; (b) per-demo READMEs still contain the actual pinned version in prose ("the only dep added is :X:Y:Z"), so the literal pin is still grep-able; (c) the table column is titled "Maven Central" not "What this demo uses," matching the badge semantics. Per-demo README prose was intentionally left as text — copy-paste Gradle snippets need real version strings, and the recent fix (#55) already aligned them with the build files. A CI mismatch check (Layer 1) is a follow-up if the prose drifts again. Excluded from this sweep: - Per-demo README "Files of interest" tables — kept as prose. - The `.github` profile open-source list — separate PR on the devslab-kr/.github repo, same badge pattern.
Contributor
Author
|
Closing — superseded by the in-flight renumber work on |
4 tasks
jlc488
added a commit
that referenced
this pull request
May 23, 2026
…nded (#59) Deferred from the earlier badge PR (#56, closed) — that one used the pre-renumber prefixes (versionPrefix=0.4 / 0.5). After #57 landed the renumber (easy-paging 0.4.0→3.0.0, 0.5.0→4.0.0), this PR finishes the badge conversion with the correct post-renumber prefixes. Changes per language (2 files, 40 lines each): Section headers — align with the renumber: "Spring Boot 4 (`0.5.x` line)" → "(`4.x` line)" "Spring Boot 3 maintenance (`0.4.x` line)" → "(`3.x` line)" Korean equivalents. Maintenance branch link — the branch was renamed too: [`0.4.x` branch](.../tree/0.4.x) → [`3.x` branch](.../tree/3.x) Column header — slight tightening since the cell content is now a badge instead of a coordinate string: "Maven Central coordinates" → "Maven Central" 14 rows — each "Maven Central coordinates" cell: [`kr.devslab:<artifact>:<version>`](sonatype-link) → [](sonatype-link) Where N = 4 for SB4 rows, N = 3 for SB3 rows. ssrf-guard rows use no prefix (single-line library; whatever's latest on Maven Central is what readers should pull). The versionPrefix filter keeps the two easy-paging lines visually independent — without it, the SB3 row's badge would jump to the latest 4.x patch the moment one ships. Per-demo README "Files of interest" tables intentionally left as prose (copy-paste-friendly Gradle snippets; #55 already aligned them with the build files). A CI mismatch check is a follow-up if those drift again. Sibling PRs in the same badge sweep, already merged: - devslab-kr/.github#6 (org profile) - devslab-kr/api-log#3 (api-log doc surface for 3.0.0 renumber) Maven Central propagation note: api-log v3.0.0 published 13:44Z, profile badge picked it up within minutes — same auto-update behavior will apply to these demos on the next easy-paging patch release.
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.
Summary
Replaced hardcoded version strings in the 3 root-README tables (14 demo rows × 2 languages = 28 spots) with shields.io Maven Central badges that read the latest published version directly from Maven Central. No more manual sync on every release.
Before:
After:
The badge renders as a clickable pill: `kr.devslab:easy-paging-spring-boot-starter | 0.5.0` and updates on its own whenever a new version hits Maven Central.
Why
We just merged #55 to fix 5 stale version refs that PR review missed. That was the second time in a week the same drift happened (the post-SB4 sweep was the first). Manual sync across 28 spots is the wrong model.
Design choices
Per-line filter with
versionPrefix— The SB3 maintenance line (0.4.x) and the SB4 active line (0.5.x) need to display independent latest versions. Without the filter, the SB3 row's badge would jump to 0.5.0 the moment the SB4 release hit Maven Central. With?versionPrefix=0.4on SB3 rows and?versionPrefix=0.5on SB4 rows, each line shows its own latest patch.Kept artifact ID in the badge label — `?label=kr.devslab%3Aeasy-paging-spring-boot-starter` so the badge reads `kr.devslab:easy-paging-spring-boot-starter | 0.5.0` instead of just `Maven Central | 0.5.0`. Still grep-able for the artifact ID; still informative at a glance.
Trade-off
Badges display "latest on Maven Central," not "what this demo pins in build.gradle.kts." There's a short mismatch window after a release (badge shows new version immediately; per-demo pin updates when Dependabot's PR lands minutes later). Accepted because:
A CI mismatch check (Layer 1 from the earlier proposal) is a follow-up if the per-demo prose drifts again.
Not in this PR
Test plan