ethereum-optimism / ethereum-optimism/optimism

`optimism` repo contains many binaries and artifacts in history, significantly bloating size

Open
#19,241 1 comment 3 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.