Email development and PaStA
A significant number of projects continue to use email for development. Email has withstood the test of time in the face of feature rich web based applications like Github. The Linux kernel is amongst one of the most prominent projects that continues to use an email based development workflow. Why do Linux and other projects still swear by email is not the point of this post but here is Greg-Kroah Hartman’s, one of the most prominent kernel developers, view on the issue.
The typical development flow on a mailing list looks like the following. A developer submits a patch to the project’s mailing list. This patch goes through a series of reviews by maintainers as well as peers and the developer submits successive revisions of the patch that addresses the review comments. Finally, once the maintainers are happy with the current revision of the patch they apply the patch to the repository.
There is no straightforward way to keep track of the entire workflow. In the case of projects like Linux which are used in various safety critical applications it is essential that the development process does not allow for subpar code to get accepted into upstream repositories.
PaStA which stands for Patch Stack Analyses is a tool that helps in analysing patches. PaStA has 2 major capabilities:
- Given a set of patches, PaStA can form groups (equivalence classes) of similar patches.
- PaStA can map these groups of patches to their corresponding commits in the upstream repository if they exist. What makes PaStA even more impressive is that it can handle entire mailing lists using mail boxes or public inboxes. It can automatically parse these formats to extract patches and ignore irrelevant emails. PaStA has a number of potential applications and some are listed on it’s issue tracker.