Flirt: GitHub and Mailing List backends
Flirt is a project focused on improving code review workflows. The development update covers the implementation of GitHub and mailing list backends. The native backend stores data locally, similar to how Git operates. However, GitHub lacks information about past force-pushes to pull requests, making it difficult to show interdiffs between submissions.
To address this, Flirt relies on local commits and remembers the last-reviewed submission to provide a mostly functional interdiff. When switching workstations, Flirt may not have a local copy of the last-reviewed submission, leading to potential issues. GitHub's review UI allows adding comments on a specific state of the code, but Flirt cannot add comments to the left side of the diff.
The proposed solution is to add the context of deleted lines as a header to the comment block. Flirt's design assumes a specific Git model, which doesn't align perfectly with mailing list archives. The open-source projects Flirt aims to support are typically hosted on public-inbox, such as the Linux kernel and Git. Flirt supports projects using public-inbox, but other mailing list archives may require additional effort.
Flirt's review tool relies on git format-patch, which automatically adds base commit information. However, reviewers need to request this information explicitly using the --base flag. Without base commit information, Flirt might apply patches to the wrong base, causing conflicts. Flirt could allow reviewers to specify the base manually, but this would create a poor user experience.
Ideally, the reviewer should ask the patch series author to resubmit with the --base flag. Another challenge is the lack of custom change-id headers in git format-patch. While Flirt could implement heuristics like matching subject lines, author information, and similarity, these solutions are imperfect and require heuristics due to the current constraints.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.