ethereum-optimism / ethereum-optimism/optimism
`optimism` repo contains many binaries and artifacts in history, significantly bloating size
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
The .git directory is 1.04 GB (packed), containing ~2 GB of large blobs (>1MB) accumulated across history. Meanwhile, the actual content at HEAD is only 157 MB. The repo's git history is ~6.5x larger than the current codebase.
Biggest offenders in git history (all removed from HEAD but still in packfiles):
- tests/artifacts/compressed/artifacts.tgz — 14 versions, ~55-64 MB each, ~389 MB total
- kurtosis-devnet-nat/bin/op-nat — 4 versions, ~27 MB each, ~105 MB total
- op-interop-filter/bin/* (Go binaries) — 2 versions, ~45 MB each, ~90 MB total
- indexer/indexer + indexer/indexer-refresh — 1 each, ~35 MB each, ~70 MB total
- go/stackman/bin/* (Go binaries) — 2 versions, ~20-46 MB each, ~63 MB total
- indexer/log.txt (!) — 1 version, 57 MB
- packages/core-utils/test/fixtures/calldata.json — 1 version, 51 MB
- op-batcher/op-batcher (Go binary) — 1 version, 47 MB
- op-deployer/bin/op-deployer — 1 version, 37 MB
- cannon/multicannon/embeds/cannon-latest — 1 version, 18 MB
- Various other binaries/archives — ~200+ MB
Compiled Go binaries, compressed test artifacts, and large data files were committed directly to git across history. They're gone from HEAD now, but git still carries every version in the packfile forever.
This is a significant problem for any project that uses `optimism` as a dependency since they're are forced to clone the repo on every build. I'd recommend using `git-filter-repo` to fix this up.
Contributor guide
Research direction
Start by inspecting the repository's .git packfiles and the listed historical paths, especially tests/artifacts/compressed/artifacts.tgz and the committed Go binaries. Evaluate the proposed git-filter-repo approach and its impact on repository consumers. Done should mean the oversized historical artifacts are removed and the resulting repository history is substantially smaller, though the issue does not define an exact target.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, go
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100