Urgent.News

What's breaking now, across thousands of outlets.

Tech

I let git history grade six famous open-source projects

Every git repository keeps a diary it never meant to publish. Not the commit messages — the shape of the changes: which files get touched over and over, which ones always change together, and how many people actually understand each corner of the code. That signal is called behavioral code analysis (Adam Tornhill's Your Code as a Crime Scene ), and the useful part is that it needs nothing but git…

Git repositories contain an internal history that reveals patterns about a codebase's structure and usage. The analysis of six popular open-source projects using this hidden history provides insights into their code health and potential points of improvement. The three key metrics derived from this history are:

1. Hotspots: Files that are frequently changed and large in size. These files are likely to have more bugs and merge conflicts due to their high activity.

2. Change coupling: Files that change together, even if they are not directly connected by code references. These files represent hidden design seams within the codebase.

3. Knowledge risk: The individual who has made the most changes to each area of the code and the bus factor, which indicates how many people would need to leave before that particular part of the code becomes difficult to understand or maintain.

The analysis reveals that the healthiest project's hottest file is not its source code but a test suite, with a high test coverage and a large number of authors contributing to it. This suggests that the project's health is well-maintained and the code is easy to understand. The busiest file in a project often indicates that the project functions correctly, and a low bus factor means that the knowledge is concentrated, which is a good sign.

For example, the fzf project has a single file, src/terminal.go, with the highest number of revisions and churn, but only one author has made significant changes to it. This leads to a low bus factor of 1, indicating that the codebase could be vulnerable if the sole contributor were to leave. On the other hand, the Flask project has a high number of changes in its main file, src/flask/app.py, but only a small number of authors have made those changes, which could make it prone to issues if those authors were to leave.

The gitfault CLI tool provides a simple way to run this analysis on any repository, offering a score and hotspots that highlight areas that may need more attention. By looking at these metrics, developers can identify potential problem areas and take proactive steps to improve their codebase's health and maintainability.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

I'm changing my logo

I changed the CIDS logo. Here's why. During a brand review, I discovered that the previous logo had a strong visual resemblance to an existing stock design.

Setting Up shadcn/ui with Vite, React, TypeScript, and Tailwind CSS v4 using pnpm.

A quick walkthrough for manually spinning up a new Vite + React + TypeScript project with Tailwind CSS v4 and shadcn/ui. Hopefully this setup guide will help newer users understand the configuration…

  • Vite project created with React and TypeScript using pnpm
  • Tailwind CSS v4 installed via Vite plugin with pnpm
  • shadcn/ui added and basic component integrated into App.tsx

More from Wednesday 23 September →