Skip to content

docs: update README files to reference evm-monorepo#1471

Open
andreivladbrg wants to merge 5 commits intomainfrom
docs/update-readme-files
Open

docs: update README files to reference evm-monorepo#1471
andreivladbrg wants to merge 5 commits intomainfrom
docs/update-readme-files

Conversation

@andreivladbrg
Copy link
Member

@andreivladbrg andreivladbrg commented Mar 19, 2026

notes:

  • i tested it and it works but its a requirement to have those remappings declared
    • the GH tags don't exist yet, will publish after we merge this (tested using forge install sablier-labs/evm-monorepo@main)
  • bob's README is incomplete, should we update it as well, or is ok for now, since we don't have a package yet?

closes #1459

@coderabbitai
Copy link

coderabbitai bot commented Mar 19, 2026

Walkthrough

Multiple package READMEs and CLAUDE docs were updated to reference the consolidated sablier-labs/evm-monorepo (package-specific tags) and to replace per-package Forge install steps with explicit remappings.txt entries. Codecov badge and link targets were changed to the monorepo. Package manifests and publish scripts were modified to include/copy/remove SECURITY.md. New bob documentation and README additions were added. Miscellaneous tooling/config changes include adding bob/package.json to .syncpackrc.json, expanding .solhintignore to ignore nested node_modules, and renaming a justfile recipe.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change—updating README files to reference the evm-monorepo instead of individual repository references.
Description check ✅ Passed The description explains the changes, notes testing was done, clarifies tag timing, and asks about bob's README—all relevant to the changeset.
Linked Issues check ✅ Passed The PR fully addresses issue #1459 by updating Codecov badge URLs in flow, lockup, airdrops, and utils README files from per-repo URLs to evm-monorepo targets.
Out of Scope Changes check ✅ Passed While the PR exceeds the specific Codecov badge fix by updating installation instructions and other README content, these changes are closely related to consolidating package references to the evm-monorepo and represent a natural extension of the core objective.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/update-readme-files
📝 Coding Plan
  • Generate coding plan for human review comments

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

@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.

🧹 Nitpick comments (4)
flow/README.md (1)

51-51: Wrap the Forge install command to stay within 120 characters.

This line exceeds the markdown line-length limit.

Proposed fix
- forge install sablier-labs/evm-monorepo@flow-v3.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0 PaulRBerg/prb-math@v4.1.0
+ forge install \
+   sablier-labs/evm-monorepo@flow-v3.0.0 \
+   OpenZeppelin/openzeppelin-contracts@v5.3.0 \
+   PaulRBerg/prb-math@v4.1.0

As per coding guidelines "**/*.{sol,md,json,js,ts,yml,yaml}: Maintain line length of 120 characters maximum".

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

In `@flow/README.md` at line 51, The long forge install command in README.md
exceeds the 120-character limit; split the command string "forge install
sablier-labs/evm-monorepo@flow-v3.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0
PaulRBerg/prb-math@v4.1.0" across multiple lines (for example using shell
line-continuation backslashes or separate list lines inside the Markdown code
block) so no line exceeds 120 characters while preserving the exact package
tokens and versions.
lockup/README.md (2)

34-34: Split this command across multiple lines to satisfy markdown line-length rules.

The current line is longer than 120 characters.

As per coding guidelines "**/*.{sol,md,json,js,ts,yml,yaml}: Maintain line length of 120 characters maximum".

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

In `@lockup/README.md` at line 34, The long forge install command in README.md
exceeds the 120-char line limit; split the command across multiple lines inside
the same code block so each line is under 120 chars (e.g., put the base command
`forge install` on the first line and place each package argument like
`sablier-labs/evm-monorepo@lockup-v4.0.0`,
`OpenZeppelin/openzeppelin-contracts@v5.3.0`, `PaulRBerg/prb-math@v4.1.0`,
`smartcontractkit/chainlink` on their own subsequent lines), ensuring the
markdown formatting remains valid and the visual output is unchanged.

34-34: Pin the Chainlink dependency to a tag/commit for reproducible installs.

smartcontractkit/chainlink is unpinned, so this command can drift as upstream changes.

Proposed fix
- forge install sablier-labs/evm-monorepo@lockup-v4.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0 PaulRBerg/prb-math@v4.1.0 smartcontractkit/chainlink
+ forge install \
+   sablier-labs/evm-monorepo@lockup-v4.0.0 \
+   OpenZeppelin/openzeppelin-contracts@v5.3.0 \
+   PaulRBerg/prb-math@v4.1.0 \
+   smartcontractkit/chainlink@<pinned-tag-or-commit>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@lockup/README.md` at line 34, Update the forge install command so the
Chainlink dependency is pinned to a specific tag or commit instead of the
floating "smartcontractkit/chainlink"; modify the existing "forge install ..."
line to replace smartcontractkit/chainlink with
smartcontractkit/chainlink@<tag-or-commit> (or a concrete version like `@vX.Y.Z`)
to ensure reproducible installs, and update any accompanying README text to
mention the chosen tag/commit.
airdrops/README.md (1)

50-50: Wrap the Forge command to keep markdown lines ≤120 chars.

This line exceeds the max line length and should be split for readability/compliance.

Proposed fix
- forge install sablier-labs/evm-monorepo@airdrops-v3.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0 PaulRBerg/prb-math@v4.1.0
+ forge install \
+   sablier-labs/evm-monorepo@airdrops-v3.0.0 \
+   OpenZeppelin/openzeppelin-contracts@v5.3.0 \
+   PaulRBerg/prb-math@v4.1.0

As per coding guidelines "**/*.{sol,md,json,js,ts,yml,yaml}: Maintain line length of 120 characters maximum".

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

In `@airdrops/README.md` at line 50, The long single-line forge install command
(forge install sablier-labs/evm-monorepo@airdrops-v3.0.0
OpenZeppelin/openzeppelin-contracts@v5.3.0 PaulRBerg/prb-math@v4.1.0) exceeds
the 120-char limit; split it into multiple wrapped lines inside the README code
block so no line >120 chars (for example, place each package or group of
packages on its own line and use a backslash line-continuation or separate lines
within the fenced code block) to satisfy the line-length guideline while
preserving the same command tokens.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@airdrops/README.md`:
- Line 50: The long single-line forge install command (forge install
sablier-labs/evm-monorepo@airdrops-v3.0.0
OpenZeppelin/openzeppelin-contracts@v5.3.0 PaulRBerg/prb-math@v4.1.0) exceeds
the 120-char limit; split it into multiple wrapped lines inside the README code
block so no line >120 chars (for example, place each package or group of
packages on its own line and use a backslash line-continuation or separate lines
within the fenced code block) to satisfy the line-length guideline while
preserving the same command tokens.

In `@flow/README.md`:
- Line 51: The long forge install command in README.md exceeds the 120-character
limit; split the command string "forge install
sablier-labs/evm-monorepo@flow-v3.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0
PaulRBerg/prb-math@v4.1.0" across multiple lines (for example using shell
line-continuation backslashes or separate list lines inside the Markdown code
block) so no line exceeds 120 characters while preserving the exact package
tokens and versions.

In `@lockup/README.md`:
- Line 34: The long forge install command in README.md exceeds the 120-char line
limit; split the command across multiple lines inside the same code block so
each line is under 120 chars (e.g., put the base command `forge install` on the
first line and place each package argument like
`sablier-labs/evm-monorepo@lockup-v4.0.0`,
`OpenZeppelin/openzeppelin-contracts@v5.3.0`, `PaulRBerg/prb-math@v4.1.0`,
`smartcontractkit/chainlink` on their own subsequent lines), ensuring the
markdown formatting remains valid and the visual output is unchanged.
- Line 34: Update the forge install command so the Chainlink dependency is
pinned to a specific tag or commit instead of the floating
"smartcontractkit/chainlink"; modify the existing "forge install ..." line to
replace smartcontractkit/chainlink with
smartcontractkit/chainlink@<tag-or-commit> (or a concrete version like `@vX.Y.Z`)
to ensure reproducible installs, and update any accompanying README text to
mention the chosen tag/commit.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7ec7482a-a157-42ed-a5b0-2089216d0077

📥 Commits

Reviewing files that changed from the base of the PR and between 6f36e85 and dbd61ca.

📒 Files selected for processing (4)
  • airdrops/README.md
  • flow/README.md
  • lockup/README.md
  • utils/README.md

Copy link
Member

@smol-ninja smol-ninja left a comment

Choose a reason for hiding this comment

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

bob's README is incomplete, should we update it as well, or is ok for now, since we don't have a package yet?

I have updated it in my review commit. Also, Lets publish a package as well. It will be required by the docs.

forge install sablier-labs/evm-monorepo@main

Why do we need this command? Isn't forge install sablier-labs/evm-monorepo@airdrops-v3.0.0 sufficient?


```shell
forge install --no-commit sablier-labs/evm-utils
forge install sablier-labs/evm-monorepo@utils-v2.0.0
Copy link
Member

Choose a reason for hiding this comment

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

Why is there no OpenZeppelin/openzeppelin-contracts@v5.3.0 smartcontractkit/chainlink here?

Install the monorepo and its dependencies using Forge:

```shell
forge install sablier-labs/evm-monorepo@bob-v1.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0 PaulRBerg/prb-math@v4.1.0 smartcontractkit/chainlink
Copy link
Member

Choose a reason for hiding this comment

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

Can you plz confirm if this is correct? I just copied it from the pattern used in other files.

echo "✓ Copied license files from monorepo root"

# Copy security files from monorepo root to current package directory
cp "$MONOREPO_ROOT/SECURITY.md" .
Copy link
Member

Choose a reason for hiding this comment

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

Added this as I think its important for npm packages.

Copy link
Member Author

Choose a reason for hiding this comment

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

is it not possible to have in ../SECURITY.md in package.json#files field?

Copy link
Member

Choose a reason for hiding this comment

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

No that wont work. npm publishing requires all files to be available in the same directory.

[group("all")]
clean-modules-all:
just for-each clean-modules
rm -rf */node_modules
Copy link
Member

Choose a reason for hiding this comment

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

Changed this because just for-each clean-modules never works for me.

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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@bob/README.md`:
- Line 1: Update the README header line to correct the brand capitalization from
"Github Actions" to "GitHub Actions" and reflow the badges so the line length
stays <= 120 characters (for example, split the badges across multiple lines or
place badges each on its own line) ensuring the header text "# Sablier Bob"
remains intact; edit the top-line string in README.md accordingly.
- Line 30: The README's forge install command references a non-existent tag
"bob-v1.0.0"; update the installation line (the forge install command string) to
use a valid ref such as "@main" temporarily or remove the explicit tag so users
can install successfully, and add a TODO comment in the README to swap back to
"bob-v1.0.0" once that tag is published.
- Line 80: Update the GitHub Actions badge URL in the README by replacing the
workflow filename "ci-flow.yml" with "ci-bob.yml" in the badge reference (the
[gha-badge] URL); locate the badge line containing
"actions/workflows/ci-flow.yml/badge.svg" and change it to
"actions/workflows/ci-bob.yml/badge.svg" so the Bob package README points to the
correct workflow.

In `@flow/README.md`:
- Line 51: The long install command string "forge install
sablier-labs/evm-monorepo@flow-v3.0.0 OpenZeppelin/openzeppelin-contracts@v5.3.0
PaulRBerg/prb-math@v4.1.0" exceeds 120 chars; split it into multiple shorter
lines so each line is ≤120 characters (either by breaking the single command
with backslashes for line continuation or by placing each package on its own
line inside the markdown code block) to comply with the 120-char limit while
preserving the exact package specifiers.
- Line 51: The README references a non-existent tag '@flow-v3.0.0' in the forge
install command which will fail until that tag is published; update the command
in flow/README.md to use '@main' (the branch the author tested) or add a clear
note next to the install line stating that '@flow-v3.0.0' will only be available
after the PR is merged so users know to use '@main' until the tag exists.

In `@SECURITY.md`:
- Line 43: The line in SECURITY.md ("By default, the Lido adapter relies on the
Curve stETH/ETH pool for converting stETH back to ETH. This has important
implications:") exceeds the 120-character per-line limit; split this sentence
into two or more shorter sentences or insert a line break such that no resulting
line is longer than 120 characters, keeping the content and wording intact
(e.g., break after "ETH" and start a new sentence with "This has important
implications:") and ensure the file conforms to the `**/*.md` 120-char rule.

In `@utils/CLAUDE.md`:
- Around line 44-46: The test tree in utils/CLAUDE.md is missing two
directories; update the listing that currently shows integration/, invariant/,
and fork/ to include the missing entries for mocks/ and utils/ and their brief
descriptions and (if available) file counts so the block matches the actual test
layout—adjust the lines where the tree is printed (the existing entries:
integration/, invariant/, fork/) to add new lines for mocks/ ("# Mock
contracts") and utils/ ("# Test utilities") with matching formatting and counts.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b3f69e1d-53b1-4a2b-8ef0-ae397b0fe29e

📥 Commits

Reviewing files that changed from the base of the PR and between dbd61ca and b04b0f1.

📒 Files selected for processing (26)
  • .solhintignore
  • .syncpackrc.json
  • CLAUDE.md
  • CONTRIBUTING.md
  • README.md
  • SECURITY.md
  • airdrops/CLAUDE.md
  • airdrops/README.md
  • airdrops/package.json
  • bob/CLAUDE.md
  • bob/README.md
  • bob/SECURITY.md
  • bob/package.json
  • flow/CLAUDE.md
  • flow/README.md
  • flow/package.json
  • justfile
  • lockup/CLAUDE.md
  • lockup/README.md
  • lockup/package.json
  • package.json
  • scripts/bash/publish-postpack.sh
  • scripts/bash/publish-prepack.sh
  • utils/CLAUDE.md
  • utils/README.md
  • utils/package.json
💤 Files with no reviewable changes (1)
  • bob/SECURITY.md
✅ Files skipped from review due to trivial changes (20)
  • README.md
  • lockup/package.json
  • scripts/bash/publish-postpack.sh
  • CONTRIBUTING.md
  • .solhintignore
  • utils/package.json
  • .syncpackrc.json
  • flow/package.json
  • airdrops/package.json
  • bob/CLAUDE.md
  • bob/package.json
  • package.json
  • scripts/bash/publish-prepack.sh
  • CLAUDE.md
  • flow/CLAUDE.md
  • lockup/CLAUDE.md
  • utils/README.md
  • justfile
  • lockup/README.md
  • airdrops/README.md

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

♻️ Duplicate comments (1)
bob/README.md (1)

1-1: ⚠️ Potential issue | 🟡 Minor

Split the README title badges across lines to satisfy the max line length.

Line 1 still exceeds the 120-character limit.

✂️ Proposed fix
-# Sablier Bob [![GitHub Actions][gha-badge]][gha] [![Coverage][codecov-badge]][codecov] [![Foundry][foundry-badge]][foundry] [![Discord][discord-badge]][discord] [![Twitter][twitter-badge]][twitter]
+# Sablier Bob
+
+[![GitHub Actions][gha-badge]][gha] [![Coverage][codecov-badge]][codecov] [![Foundry][foundry-badge]][foundry]
+[![Discord][discord-badge]][discord] [![Twitter][twitter-badge]][twitter]

As per coding guidelines, Maintain line length of 120 characters maximum for **/*.md.

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

In `@bob/README.md` at line 1, The README title line with inline badges exceeds
the 120-char limit; split the header and its badges across multiple lines so
each line is ≤120 chars and markdown still renders. Edit the header line
starting with "# Sablier Bob" to keep the title on its own line and move the
badges (the sequence like [![GitHub
Actions][gha-badge]]...[![Twitter][twitter-badge]]) onto one or more subsequent
lines, breaking between badges as needed so no line exceeds 120 characters while
preserving the badge markup.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@lockup/README.md`:
- Line 1: Wrap any markdown lines in README.md that exceed 120 characters
(notably the header/badge line starting with "# Sablier Lockup" and the long
paragraphs at the positions indicated in the review) to be
mdformat/prettier-compatible hard-wrapped under 120 chars; edit the long lines
so they break at natural word boundaries (preserve badges, links, and Markdown
semantics) and ensure no content or links are altered while keeping each line
≤120 characters.

---

Duplicate comments:
In `@bob/README.md`:
- Line 1: The README title line with inline badges exceeds the 120-char limit;
split the header and its badges across multiple lines so each line is ≤120 chars
and markdown still renders. Edit the header line starting with "# Sablier Bob"
to keep the title on its own line and move the badges (the sequence like
[![GitHub Actions][gha-badge]]...[![Twitter][twitter-badge]]) onto one or more
subsequent lines, breaking between badges as needed so no line exceeds 120
characters while preserving the badge markup.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 584b75ac-c423-44fc-8457-9af80b20ab78

📥 Commits

Reviewing files that changed from the base of the PR and between a60e986 and b0be710.

📒 Files selected for processing (8)
  • README.md
  • SECURITY.md
  • airdrops/README.md
  • bob/README.md
  • flow/README.md
  • lockup/README.md
  • utils/CLAUDE.md
  • utils/README.md
✅ Files skipped from review due to trivial changes (5)
  • README.md
  • flow/README.md
  • utils/README.md
  • utils/CLAUDE.md
  • airdrops/README.md

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.

Outdated Codecov badge URLs in package READMEs

2 participants