Skip to content

Use only one copy of plume-scripts#782

Merged
mernst merged 4 commits intocodespecs:masterfrom
mernst:one-copy-of-plume-scripts
Apr 28, 2026
Merged

Use only one copy of plume-scripts#782
mernst merged 4 commits intocodespecs:masterfrom
mernst:one-copy-of-plume-scripts

Conversation

@mernst
Copy link
Copy Markdown
Member

@mernst mernst commented Apr 27, 2026

No description provided.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 27, 2026

Warning

Rate limit exceeded

@mernst has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 58 minutes and 42 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 477b8de3-c4d3-46bd-b846-901c55f6b18c

📥 Commits

Reviewing files that changed from the base of the PR and between 0847681 and 5abbb97.

📒 Files selected for processing (2)
  • scripts/daikon-dev.bashrc
  • scripts/daikon.bashrc
📝 Walkthrough

Walkthrough

This pull request moves the plume-scripts helper from ./.plume-scripts to ./.utils/plume-scripts, renames the project variable to PLUME\_SCRIPTS, and updates Makefiles and shell scripts to derive helper tool paths from PLUME\_SCRIPTS. The top-level Makefile now bootstraps the helper by cloning into ${DAIKONDIR}/.utils/plume-scripts when missing and uses ${PLUME\_SCRIPTS} for included make fragments and tool invocations. CI detection and related targets were adjusted to invoke is-ci.sh from the new location.

Possibly related PRs

  • Rename utils/ to .utils/ #751: Repository-wide migration of plume-scripts references to the .utils/plume-scripts location and corresponding Makefile/script updates.
  • Use is-ci.sh from plume-lib #728: Updates Makefile targets to use the plume-scripts helper (including is-ci.sh) and the update/clone logic for plume-scripts.
  • Run more quietly #759: Changes doc/Makefile to derive CRONIC from a configurable plume-scripts variable, aligning doc build rules with the new PLUME\_SCRIPTS usage.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
java/Makefile (2)

755-760: ⚠️ Potential issue | 🟡 Minor

Mark tags-nojtb phony.

As written, a stray file named tags-nojtb will suppress the recipe. Add a phony declaration so the tag generation always runs when requested.

Suggested fix
+.PHONY: tags-nojtb
 tags-nojtb: ${PLUMESCRIPTS}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@java/Makefile` around lines 755 - 760, The Makefile target "tags-nojtb" can
be skipped if a file with that name exists; mark it phony to force execution:
add a .PHONY declaration that includes tags-nojtb so the recipe (which uses
${ETAGS} and ${TAG_FILES_NO_JTB} and depends on ${PLUMESCRIPTS}) always runs
when invoked. Ensure the .PHONY entry is placed near other phony targets or
before the tags-nojtb rule.

644-755: 🛠️ Refactor suggestion | 🟠 Major

Finish centralizing the plume-scripts path in this Makefile.

The new ${PLUMESCRIPTS} variable is only used in a few places here. The rest of the file still hardcodes ../.utils/plume-scripts, so the location is not actually single-sourced yet. Please switch the remaining plume-scripts references to ${PLUMESCRIPTS} as well.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@java/Makefile` around lines 644 - 755, Search the Makefile for any hardcoded
"../.utils/plume-scripts" occurrences and replace them with the centralized
variable ${PLUMESCRIPTS}; update targets that reference the hardcoded path
(e.g., the tags target that currently says "tags: ../.utils/plume-scripts") to
use ${PLUMESCRIPTS} instead, and ensure existing rules that already use
${PLUMESCRIPTS} (such as the ${PLUMESCRIPTS} target and any prerequisites like
${PLUMESCRIPTS} in tags-nojtb or tags-without-generated-files) remain
consistent; run a quick grep for "../.utils/plume-scripts" to confirm no
remaining hardcoded references.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Makefile`:
- Around line 12-15: The Makefile currently does a parse-time git clone using
the PLUMESCRIPTS variable which can fail if the parent directory (.utils/)
doesn't exist and ignores NONETWORK mode; change this so the parent directory is
created and cloning only happens at build-time and only when network access is
allowed. Replace the parse-time assignment (dummy := $(shell git clone ...
${PLUMESCRIPTS})) with a proper target (e.g., a bootstrap-plume-scripts or
ensure-plumescripts target) that first runs mkdir -p $(dir ${PLUMESCRIPTS}) and
then, guarded by ifneq ($(NONETWORK),1), runs git clone --depth=1 -q ...
${PLUMESCRIPTS}; keep SORT_DIRECTORY_ORDER :=
${PLUMESCRIPTS}/sort-directory-order unchanged but make other targets depend on
the new bootstrap target so builds fail cleanly offline instead of cloning
during parsing.

---

Outside diff comments:
In `@java/Makefile`:
- Around line 755-760: The Makefile target "tags-nojtb" can be skipped if a file
with that name exists; mark it phony to force execution: add a .PHONY
declaration that includes tags-nojtb so the recipe (which uses ${ETAGS} and
${TAG_FILES_NO_JTB} and depends on ${PLUMESCRIPTS}) always runs when invoked.
Ensure the .PHONY entry is placed near other phony targets or before the
tags-nojtb rule.
- Around line 644-755: Search the Makefile for any hardcoded
"../.utils/plume-scripts" occurrences and replace them with the centralized
variable ${PLUMESCRIPTS}; update targets that reference the hardcoded path
(e.g., the tags target that currently says "tags: ../.utils/plume-scripts") to
use ${PLUMESCRIPTS} instead, and ensure existing rules that already use
${PLUMESCRIPTS} (such as the ${PLUMESCRIPTS} target and any prerequisites like
${PLUMESCRIPTS} in tags-nojtb or tags-without-generated-files) remain
consistent; run a quick grep for "../.utils/plume-scripts" to confirm no
remaining hardcoded references.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5fb25337-ee3a-4abc-aba7-3c72d904e40d

📥 Commits

Reviewing files that changed from the base of the PR and between 599b809 and 4feb306.

📒 Files selected for processing (10)
  • .gitignore
  • Makefile
  • doc/Makefile
  • java/Makefile
  • scripts/test-misc.sh
  • scripts/test-typecheck-with-bundled-cf.sh
  • scripts/test-typecheck-with-latest-cf.sh
  • tests/Makefile
  • tests/dyncomp-tests/Makefile
  • tests/kvasir-tests/Makefile

Comment thread Makefile Outdated
Copy link
Copy Markdown

@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: 3

♻️ Duplicate comments (1)
Makefile (1)

12-14: ⚠️ Potential issue | 🟠 Major

Parse-time plume-scripts clone still has the same bootstrap/offline failure mode.

Line 13 still performs a parse-time git clone, still ignores NONETWORK, and mkdir ${DAIKONDIR}/.utils can fail when .utils already exists (which skips clone).

🔧 Proposed fix
 ifeq (,$(wildcard ${PLUME_SCRIPTS}))
-  dummy := $(shell mkdir ${DAIKONDIR}/.utils && git clone --depth=1 -q https://github.com/plume-lib/plume-scripts.git ${PLUME_SCRIPTS})
+ifndef NONETWORK
+  dummy := $(shell mkdir -p ${DAIKONDIR}/.utils && git clone --depth=1 -q https://github.com/plume-lib/plume-scripts.git ${PLUME_SCRIPTS})
+else
+  $(error ${PLUME_SCRIPTS} is missing and NONETWORK is set; run 'make update-plume-scripts-in-utils' with network access first)
+endif
 endif
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Makefile` around lines 12 - 14, The Makefile currently runs a parse-time
shell to clone ${PLUME_SCRIPTS} using the dummy := $(shell ...) line which
ignores NONETWORK, runs mkdir without -p (causing failure if ${DAIKONDIR}/.utils
exists), and can break offline/bootstrapping; move this logic out of variable
assignment into an explicit recipe or prerequisite rule (e.g., a
fetch-plume-scripts target) that checks NONETWORK before network actions, uses
mkdir -p for ${DAIKONDIR}/.utils, and performs a conditional git clone only if
${PLUME_SCRIPTS} does not already exist; update any targets that relied on the
parse-time side effect to depend on this new recipe so the clone happens at
build time, not at parse time.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@doc/www/pubs-sources/Makefile`:
- Line 5: The Makefile currently defines the variable PLUME_SCRIPTS (?=
${DAIKONDIR}/.utils/plume-scripts) but never uses it; remove that definition
from the Makefile (or, if it must be preserved for external consumers, add a
comment explaining why it is exported/inherited) so the file no longer contains
an unused PLUME_SCRIPTS assignment.

In `@scripts/daikon-dev.bashrc`:
- Line 8: The export line uses Makefile-style '?=' which is invalid in Bash and
leaves PLUME_SCRIPTS unset; locate the occurrences of the invalid statement (the
line that starts with export PLUME_SCRIPTS?= and references
${DAIKONDIR}/.utils/plume-scripts) and replace it with a proper Bash conditional
assignment that sets PLUME_SCRIPTS only if unset and then exports it (use Bash
parameter expansion or a separate assignment followed by export) in both places
where that invalid export appears.

In `@scripts/daikon.bashrc`:
- Around line 50-52: The current line uses invalid Makefile syntax `export
PLUME_SCRIPTS?=...`; replace it with a valid bash default-assignment and export
for PLUME_SCRIPTS (use either parameter expansion to set PLUME_SCRIPTS to
"${DAIKONDIR}/.utils/plume-scripts" only if unset, or assign then export),
updating the statement that references the PLUME_SCRIPTS variable so sourcing
the script no longer triggers a shell syntax error; target the
PLUME_SCRIPTS/DAIKONDIR assignment in scripts/daikon.bashrc.

---

Duplicate comments:
In `@Makefile`:
- Around line 12-14: The Makefile currently runs a parse-time shell to clone
${PLUME_SCRIPTS} using the dummy := $(shell ...) line which ignores NONETWORK,
runs mkdir without -p (causing failure if ${DAIKONDIR}/.utils exists), and can
break offline/bootstrapping; move this logic out of variable assignment into an
explicit recipe or prerequisite rule (e.g., a fetch-plume-scripts target) that
checks NONETWORK before network actions, uses mkdir -p for ${DAIKONDIR}/.utils,
and performs a conditional git clone only if ${PLUME_SCRIPTS} does not already
exist; update any targets that relied on the parse-time side effect to depend on
this new recipe so the clone happens at build time, not at parse time.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 55e052e4-d528-4c44-8a44-f8084956886a

📥 Commits

Reviewing files that changed from the base of the PR and between 4feb306 and 0847681.

📒 Files selected for processing (13)
  • .travis-build.sh
  • Makefile
  • doc/Makefile
  • doc/www/pubs-sources/Makefile
  • java/Makefile
  • scripts/daikon-dev.bashrc
  • scripts/daikon.bashrc
  • scripts/test-misc.sh
  • scripts/test-typecheck-with-bundled-cf.sh
  • scripts/test-typecheck-with-latest-cf.sh
  • tests/Makefile
  • tests/dyncomp-tests/Makefile
  • tests/kvasir-tests/Makefile

Comment thread doc/www/pubs-sources/Makefile
Comment thread scripts/daikon-dev.bashrc Outdated
Comment thread scripts/daikon.bashrc
mernst and others added 2 commits April 28, 2026 10:24
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@mernst mernst requested a review from markro49 April 28, 2026 17:29
@markro49 markro49 assigned mernst and unassigned markro49 Apr 28, 2026
@mernst mernst merged commit 7f82f39 into codespecs:master Apr 28, 2026
50 checks passed
@mernst mernst deleted the one-copy-of-plume-scripts branch April 28, 2026 19:43
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