Skip to content

Conversation

@WilliamAGH
Copy link
Owner

@WilliamAGH WilliamAGH commented Jan 23, 2026

New Features

  • Automated README version sync - New UpdateReadmeVersion.yaml workflow fetches the latest release version from Maven Central and updates dependency snippets automatically (runs on release publish and daily schedule)
  • Project showcase section - Added "Built with Apple Maps Java" featuring Brief terminal AI client with screenshot

Bug Fixes

  • Restore CI permissions - Fixed missing contents: write permission that broke actions/checkout and gradle/actions/dependency-submission

CI/CD Improvements

  • Harden Release workflow - Added concurrency control to prevent parallel releases, enabled strict bash mode (set -euo pipefail)
  • Normalize CI formatting - Standardized YAML quote style and array bracket spacing

Documentation

  • Restructure README - Added ecosystem comparison table (Server API vs MapKit vs MapKit JS), status badges, and clearer positioning
  • Document Origin header - Added APPLE_MAPS_ORIGIN configuration for JWTs with restricted origins
  • Relocate badge assets - Moved SVGs to src/main/resources/static/img/ following Maven conventions
  • Add Context7 and DeepWiki badges - External documentation and indexing links
  • Update version to 0.1.4 - Bumped documented dependency version

Files Changed

  • .github/workflows/UpdateReadmeVersion.yaml (new)
  • .github/workflows/Release.yaml
  • .github/workflows/CI.yaml
  • README.md
  • src/main/resources/static/img/* (badge assets + screenshot)

The release workflow lacked safeguards against concurrent runs and bash script
failures. Adding concurrency control prevents duplicate releases if a workflow
is triggered multiple times. Strict bash mode (set -euo pipefail) ensures the
version extraction script fails fast on any error rather than proceeding with
potentially incorrect values.

- Add concurrency group to prevent parallel release executions
- Enable strict bash mode with set -euo pipefail
- Explicitly set shell to bash for version extraction step
- Normalize YAML quote style for consistency
After releases, the README version snippets can drift from the actual published
version on Maven Central. This new workflow automatically fetches the latest
release version from Maven Central metadata and updates the README's Gradle
and Maven dependency snippets, keeping documentation accurate without manual
intervention.

- Create UpdateReadmeVersion.yaml workflow triggered on release and daily schedule
- Fetch version from Maven Central maven-metadata.xml (release or latest tag)
- Guard against SNAPSHOT versions being written to documentation
- Update only the specific dependency coordinate lines via perl regex
- Auto-commit changes when detected
The README lacked quick-glance status indicators and clear positioning within
the Apple Maps ecosystem. Users unfamiliar with Apple's offerings couldn't
easily understand what this SDK does vs MapKit vs MapKit JS. The new Origin
header configuration was also undocumented for users with restricted JWTs.

- Add Maven Central, CI status, and license badges
- Clarify SDK purpose and distinguish from MapKit/MapKit JS
- Add ecosystem comparison table for Apple Maps services
- Document APPLE_MAPS_ORIGIN environment variable for JWT restrictions
- Update example code to demonstrate Origin header usage
- Expand "What's included" to "Supported Server API features" with clearer list
- Improve quota section with Apple Developer Program context
- Bump documented version from 0.1.3 to 0.1.4
- Standardize array bracket spacing in branch triggers
- Use double quotes consistently for java-version and distribution
- Remove unused contents: write permission
@WilliamAGH WilliamAGH self-assigned this Jan 23, 2026
Copilot AI review requested due to automatic review settings January 23, 2026 04:37
@coderabbitai
Copy link

coderabbitai bot commented Jan 23, 2026

Caution

Review failed

The pull request is closed.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added support for APPLE_MAPS_ORIGIN configuration option for origin header support.
  • Documentation

    • Expanded README with compatibility guidance, supported API features, configuration sections, and ecosystem context.
  • Chores

    • Version bumped to 0.1.5.
    • Enhanced GitHub Actions workflows for CI, release, and automated README version updates.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Adds/normalizes CI and Release workflow formatting and shell safety; introduces a new scheduled/manual workflow that fetches Maven Central and updates README dependency snippets; bumps project version and README snippets to 0.1.5 and expands README content and configuration guidance.

Changes

Cohort / File(s) Change Summary
CI workflow
\.github/workflows/CI.yaml
YAML formatting normalization (array/quote style), minor step value quoting adjustments.
Release workflow
\.github/workflows/Release.yaml
Added concurrency block, normalized quoting for Java setup, added shell: bash and set -euo pipefail to version-extract step, emits resolved release version output.
Automated README updater (new)
\.github/workflows/UpdateReadmeVersion.yaml
New workflow (daily/manual/on-release) that queries Maven Central for latest non-SNAPSHOT version, updates Gradle/Maven snippets in README.md, commits & pushes changes, with error checks and concurrency.
Project version files
build.gradle.kts, gradle.properties
Bumped project version from 0.1.4-SNAPSHOT / 0.1.4 to 0.1.5 (removed SNAPSHOT in default).
Documentation
README.md
Major content rewrite: repositioning as server-side SDK, added Compatibility and Supported Server API features, introduced APPLE_MAPS_ORIGIN guidance, bumped dependency snippets to 0.1.5, reorganized examples and links.

Sequence Diagram(s)

sequenceDiagram
    participant Runner as Runner (GitHub Actions)
    participant Maven as Maven Central (metadata)
    participant Repo as Repository (git)
    participant GitHub as GitHub API

    Runner->>Maven: GET /maven2/.../com.williamcallahan/apple-maps-java/maven-metadata.xml
    Maven-->>Runner: Respond with metadata (versions, latest non-SNAPSHOT)
    Runner->>Runner: Extract VERSION from metadata
    Runner->>Repo: Read `README.md`
    Runner->>Runner: Replace Gradle/Maven snippet versions with VERSION
    alt README changed
        Runner->>Repo: Commit updated `README.md`
        Repo->>GitHub: Push commit
        GitHub-->>Runner: Confirm push
    else No changes
        Runner-->>Runner: Exit no-op
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

✨ Actions wake to fetch a version bright,
Maven sings the number into runner light.
README shifts its badges, snippets newly dressed,
Commits glide downstream — workflows do the rest. 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The pull request has no description provided by the author, making it impossible to assess whether the stated intent aligns with the changeset. Please add a pull request description that explains the purpose, scope, and rationale for these changes (workflow updates, version bump to 0.1.4, and README restructuring).
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title accurately summarizes the three main changes: adding an automated version sync workflow, hardening CI/CD pipelines, and restructuring the README documentation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a6980fe774

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai coderabbitai bot changed the title merge Add version sync workflow, update to 0.1.4, restructure README Jan 23, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves project documentation and marketing badges, introduces configuration docs for an optional APPLE_MAPS_ORIGIN, and enhances release/CI automation including an automated README version updater.

Changes:

  • Add Context7 and DeepWiki badges (with local SVG assets) and expand the README with clearer installation, configuration (including APPLE_MAPS_ORIGIN), compatibility, and quota documentation.
  • Bump README dependency examples to 0.1.4 and link to new/expanded docs (authorization, tests, usage).
  • Add an UpdateReadmeVersion workflow to sync README with Maven Central metadata, and refine CI and Release workflows (concurrency, shell robustness, Java setup).

Reviewed changes

Copilot reviewed 4 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
assets/deepwiki-badge.svg Adds a DeepWiki badge SVG used at the top of the README.
assets/context7-badge.svg Adds a Context7 “Indexed” badge SVG used at the top of the README.
README.md Updates badges, clarifies positioning of the SDK in the Apple Maps ecosystem, documents installation, APPLE_MAPS_TOKEN/APPLE_MAPS_ORIGIN configuration, usage features, compatibility, and quota details, and refreshes dependency versions.
.github/workflows/UpdateReadmeVersion.yaml Introduces a scheduled/release-triggered workflow that resolves the latest Maven Central version and updates README dependency snippets accordingly.
.github/workflows/Release.yaml Adds concurrency control around releases, tightens shell settings for tag-derived version extraction, and aligns Java setup quoting/style.
.github/workflows/CI.yaml Normalizes branch list formatting, adjusts permissions, aligns Java setup quoting, and runs build/tests plus snapshot publishing and dependency-submission.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Move badge SVG assets from assets/ to src/main/resources/static/img/ to follow
Maven standard resource conventions. This ensures assets are properly included
in the JAR and aligns with typical Java project structure. Additionally, add a
"Built with Apple Maps Java" showcase section featuring Brief, a terminal AI
chat client that demonstrates the library's real-world usage.

- Move context7-badge.svg to src/main/resources/static/img/
- Move deepwiki-badge.svg to src/main/resources/static/img/
- Add apple-maps-java-screenshot.png showcasing Brief
- Update README badge paths to new resource locations
- Add "Built with Apple Maps Java" section with Brief project link
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@README.md`:
- Line 193: The sentence "Apple provides free daily quotas that are currently
significantly more generous* than Google Maps API..." contains an orphaned
asterisk; either remove the asterisk from that sentence or add a matching
footnote explaining the caveat/comparison details; update the README.md sentence
("Apple provides free daily quotas...") to eliminate the dangling marker or
append a clearly labeled footnote entry (e.g., "* Comparison based on X metric,
as of DATE") so the asterisk is resolved.

…ission

The explicit permissions block only granted security-events: write, causing all
other permissions to default to none. This broke actions/checkout (needs read)
and gradle/actions/dependency-submission (needs write). Adding contents: write
restores the required access for both steps.
The asterisk after "generous*" had no corresponding footnote, leaving readers
confused about what additional context was implied. Removed the asterisk since
the comparison to Google Maps API quotas speaks for itself without qualification.
@WilliamAGH WilliamAGH changed the title Add version sync workflow, update to 0.1.4, restructure README Add automated version sync workflow, harden CI/CD, and restructure README Jan 23, 2026
@WilliamAGH WilliamAGH merged commit 4c8d34f into main Jan 23, 2026
1 of 2 checks passed
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.

2 participants