Skip to content

WEB-11460: Fix ssm.mk shell call under GNU Make 3.81 - #5

Merged
lewissmithweb merged 1 commit into
mainfrom
WEB-11460-fix-shell-parse
Aug 10, 2026
Merged

WEB-11460: Fix ssm.mk shell call under GNU Make 3.81#5
lewissmithweb merged 1 commit into
mainfrom
WEB-11460-fix-shell-parse

Conversation

@lewissmithweb

Copy link
Copy Markdown
Contributor

Summary

Hotfix for a parse error in ssm.mk (shipped in v1.16.0). The SSM_REPO_NAME derivation used # as the sed delimiter inside $(shell ...). GNU Make 3.81 — the macOS default — mis-tokenises that # as a comment when the expression is expanded, aborting with *** unterminated call to function 'shell': missing ')'.

It only surfaced for consumers that don't set SSM_SERVICE (so the derivation actually runs) — e.g. showcase, which hit it on make ssm_sync_test. Every test in the harness pinned SSM_SERVICE, which short-circuits line 14's ?= and skips the expansion, so the bug slipped through.

Changes

  • ssm.mk: switch the sed delimiter from # to , so no # appears inside the $(shell ...) call. Behaviour is identical.
  • test/ssm.sh: add a regression check that renders a target without pinning SSM_SERVICE, exercising the $(shell ...) derivation path. Verified it fails on the old code and passes on the fix.

How to test

  • ./test/ssm.sh — green (also in CI).
  • Reproduce the original: with the pre-fix line 13, make ssm_sync_test in a repo that doesn't set SSM_SERVICE aborts with the unterminated-function error; with the fix it renders /ecs/<env>/<repo>/….

Deployment notes

Needs a v1.16.1 release published after merge so the floating v1 tag advances and consumers pick up the fix on their next make init.

Closes WEB-11460

The SSM_REPO_NAME derivation used `#` as the sed delimiter inside $(shell ...).
GNU Make 3.81 (the macOS default) mis-tokenises the `#` as a comment when the
expression is expanded, aborting with "unterminated call to function `shell'".
This only surfaced for consumers that don't set SSM_SERVICE (so the derivation
actually runs) — e.g. showcase via `-include`.

Switch the sed delimiter to `,` so no `#` appears in the shell call, and add a
regression assertion that renders a target WITHOUT pinning SSM_SERVICE, so the
derivation path is exercised (the existing assertions all pinned it, masking
the bug).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: ba22d6df-56c1-44d4-ada1-d29a5d4df740

📥 Commits

Reviewing files that changed from the base of the PR and between 3563d24 and 514a559.

📒 Files selected for processing (2)
  • ssm.mk
  • test/ssm.sh

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

@lewissmithweb
lewissmithweb merged commit 687ca68 into main Aug 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant