repowiserepowise
Sign in
gioui/gio
OverviewDocsArchitectureKnowledge GraphFilesCode HealthSecurityRefactoring

People & History

CommitsContributorsDecisions
Chat
Stats
repowiserepowise
ExplorePricingDocs
Sign in
repowisegioui/gio
GI
GI

gioui / gio

gomain2253f8a50.1K linessynced 1mo ago

Code health

6.2out of 10Fair

This codebase scores 6.2 out of 10 for code health, which we rate fair. It also scores maintainability 7.4 and static performance 9.9 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 6 of 237 files are git hotspots, and they average 2.9 — which is where the fixes pay off most.

Full health report →
Documentation562pages0 with model-written prose, 562 built from the indexScore validation3/201.3× baselineTop-ranked files that did go on to need a bug fixDead code110exportsUnused exports that nothing in the graph reaches

Do next

4 things worth doing this quarter.

Worth planning

  • Break up Layout (CCN 41, 152 lines)

    layout/flex.go:182

    Layout nests its control flow deeply, and part of it is duplicated, so splitting it also removes a copy; 48 files import it.

    gain
    up to +1.5 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 41, 152 lines, nests 5 deep
    severity
    high
    Medium effort, worth a check
  • Break up windowProc (CCN 64, 231 lines)

    app/os_windows.go:297

    windowProc nests its control flow deeply; 2 files import it, changed 13 times in 90 days.

    gain
    up to +1.6 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 64, 231 lines, nests 5 deep
    severity
    high
    Medium effort, worth a check
  • Delete 110 unused symbols and files (965 lines)

    Nothing in the graph reaches them, across 30 files; every reader and agent pays to skip them.

    symbols
    110
    lines
    965
    safe to delete
    Yes(inferred)
    Medium effort
  • Flatten the nesting in collect

    io/input/router.go:789

    collect nests its control flow deeply; 22 files import it, changed 2 times in 90 days.

    gain
    up to +1.0 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 25, 91 lines, nests 5 deep
    severity
    high
    Medium effort, worth a check

Improve what Repowise can see

  • Add a test coverage report

    Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.

    line coverage
    Unknown, no report
    Small effort
Lines of code
50.1K
Files
237
Symbols
5,140
Modules
12
Languages
5

Recent activity

All commits →

Commits

  • 2253f8afinternal/stroke: fix angle wraparound2mo ago
  • a7fa0095gpu: simplify error handling2mo ago
  • 050f3030internal/byteslice: replace reflect with generic implementations2mo ago
  • 20857f9dinternal/vk: replace use of reflect.StringHeader with unsafe.StringData2mo ago
  • b4932447app: [Windows] center windows in the work area2mo ago
  • c7e3d6c1widget: use higher-level layout primitive in test2mo ago

Decisions

  • Stash GPU error and close window politelyproposed · 1mo ago
  • Close window before reporting GPU errorproposed · 1mo ago
  • widget: remove assumption that Context.Queue is an interfaceproposed · 1mo ago
  • rename FrameEvent.Queue and Context.Queue to Sourceproposed · 1mo ago
  • io/input: introduce Source interface between Router and widgetsproposed · 1mo ago
  • Remove dependency on package gestureproposed · 1mo ago
▸

Everything we found

961 open

Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.

  • worst item is critical severity. Code health580Untested hotspot · gpu/gpu.go27 findings · 10.0 deducted→
  • worst item is medium severity. Refactoring77processGlyph+1.2 health, M effort · widget/label.go→
  • worst item is medium severity. Decisions20app/os_windows.go14 awaiting review · 6 hotspots ungoverned→
  • worst item is medium severity. Ownership173internal/vk/vulkan.go97% single-owner concentration, 3 commits in 90d→
  • worst item is low severity. Dead code111Java_org_gioui_GioView_onCreateViewUnreachable function (50 lines)→

Composition

Open the graph →
go 93%
objectivec 2%c 2%cpp 2%java 1%

Explore this codebase

  • Docs562 pages across 12 modules→
  • ChatAsk this codebase a question and get an answer with its sources.→
  • Files237 files with per-file docs, health and history→
  • ArchitectureDependency graph, layers, and 9 entry points→
  • Code healthPer-file scores, 735 open findings, coverage and refactoring targets→
  • Knowledge graphEntities, communities, and the paths between them→
  • Change couplingFiles that keep changing together, mined from commit history→
  • CommitsChange-risk ranked history with agent provenance→
  • ContributorsBus factor, per-file maintainers, and the human/agent split→
  • StatsSize class, origin, lifetime churn, rhythm and records→
  • CostsWhat indexing this snapshot cost, by model and by run.→