• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ProjectOpenSea / seadrop / 32604884141
65%

Build:
DEFAULT BRANCH: main
Ran 22 Aug 2026 11:20PM UTC
Jobs 2
Files 24
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Aug 2026 11:18PM UTC coverage: 64.702% (+11.3%) from 53.427%
32604884141

push

github

web-flow
fix(ci): stop pinning submodules to tags via `branch` (#175)

## Motivation

Both Forge jobs in Test CI fail on the "Install forge dependencies"
step, before any contract compiles:

```
Updating dependencies in /home/runner/work/seadrop/seadrop/lib
Error: git checkout exited with code 1: error: pathspec 'v1.5.0' did not match any file(s) known to git
```

`.gitmodules` declared `branch = v1.5.0` for `lib/forge-std` and `branch
= v0.1.3` for `lib/create2-helpers`. Neither value is a branch. Both are
tags, and both still exist upstream, so no ref was deleted.

`forge install` reads `.gitmodules` to build a `foundry.lock`. No
lockfile is committed here, so every submodule is treated as out of sync
and forge checks each one out at its recorded identifier. A submodule
carrying a `branch` line becomes `DepIdentifier::Branch { name }`, and
`checkout_id()` returns that literal string, so forge runs `git checkout
v1.5.0`. `actions/checkout` clones submodules at depth 1 and fetches no
tags, so the pathspec does not resolve and the step exits 1. Without a
`branch` line the submodule becomes `DepIdentifier::Rev { rev }`, and
forge checks out the recorded commit, which is present in the shallow
clone.

The two jobs reported different pathspecs, `v0.1.3` in Forge Coverage
and `v1.5.0` in Forge Tests, because the out-of-sync set is a hash map
with no fixed iteration order. Either entry can surface first, so both
had to go.

The forge-std pin was stale in content as well as wrong in kind. The
recorded gitlink is `726a6ee`, which is v1.9.5 plus two commits from
January 2025, nowhere near v1.5.0. Nothing was resolving that label; it
was only breaking the install.

## Solution

Two changes, both confined to CI and dependency pinning. No contract
source is touched.

Drop the two `branch` lines so the recorded submodule commits are the
only pin. That is what the repo was already building against, so this
changes which ref forge asks git for, not which code lands in `lib/`... (continued)

284 of 605 branches covered (46.94%)

Branch coverage included in aggregate %.

693 of 905 relevant lines covered (76.57%)

722.06 hits per line

Jobs
ID Job ID Ran Files Coverage
1 hardhat - 32604884141.1 22 Aug 2026 11:21PM UTC 22
53.43
GitHub Action Run
2 foundry - 32604884141.2 22 Aug 2026 11:20PM UTC 16
45.26
GitHub Action Run
Source Files on build 32604884141
  • Tree
  • List 24
  • Changed 14
  • Source Changed 0
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 454c9f8d on github
  • Prev Build on main (#32601947829)
  • Next Build on main (#32750728560)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc