Skip to content

feat(ci): automated Maven Central release watcher and baseline freshness check (#32) - #34

Merged
remiceres merged 3 commits into
mainfrom
feature/32-maven-central-release-watcher
Oct 30, 2026
Merged

remiceres merged 3 commits into
mainfrom
feature/32-maven-central-release-watcher

Conversation

@remiceres

Copy link
Copy Markdown
Contributor

Closes #32.

Summary

Implements zero-touch automated discovery of new stable third-party releases (Apache Jena, Eclipse RDF4J) from Maven Central REST API, cross-referencing against site/data/baseline.json and integrating into automated CI checks.

Scope & Technical Implementation

  • python-utils/check_new_releases.py:
    • Zero external pip dependencies (urllib.request, standard library only).
    • Queries Maven Central Solr REST API for org.apache.jena:jena-arq and org.eclipse.rdf4j:rdf4j-storage.
    • Filters out unstable qualifiers (-SNAPSHOT, -RC, -alpha, -beta, -M).
    • Safe, linear version extraction regex without backtracking (SonarLint python:S8786 compliant).
    • CLI flags: --baseline, --check (exit code 1 if new versions available), --json, --verbose.
  • python-utils/test_check_new_releases.py:
    • 14 automated unit tests mock-testing stability filters, baseline readers, API responses, CLI exit codes and JSON output.
  • CI Workflow Integration (.github/workflows/ci.yml):
    • Runs python -m unittest discover -s python-utils -p "test_*.py" -v on every pull request.

…ess check (#32)

- Add check_new_releases.py querying Maven Central Solr REST API for Jena and RDF4J
- Filter out unstable release qualifiers (-SNAPSHOT, -RC, -alpha, -beta, -M)
- Simplify version extraction regex to avoid backtracking (SonarLint python:S8786)
- Add comprehensive unittest suite test_check_new_releases.py (14 tests)
- Wire Python unittest execution into GitHub Actions ci.yml
…s, and wire cron check (#32)

- Add HTTP retry with backoff on transient Maven Central network failures
- Query Maven Central with sort=timestamp desc to ensure latest versions appear in the first page
- Normalize semantic version keys (e.g. 5.0 equals 5.0.0)
- Anchor default baseline path relative to script directory
- Wire automated release check into Sunday cron in ci.yml
@remiceres
remiceres merged commit d816adb into main Oct 30, 2026
4 checks passed
@remiceres
remiceres deleted the feature/32-maven-central-release-watcher branch October 30, 2026 15:05
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.

[Automation & CI] Zero-Touch watcher for third-party releases on Maven Central & auto-updating baseline

1 participant