1. GNOME GUI for coala
1.1. Short Description
“coala is a simple COde AnaLysis Application. Its goal is to make static code analysis easy while remaining completely modular and therefore extendable and language independent. Code analysis happens in python scripts while coala manages these, tries to provide helpful libraries and provides multiple user interfaces”. -coala Github page
- Currently, coala only supports console output as part of its user interface. The ultimate goal, as detailed in this proposal, is to implement a GUI for coala and present an easy to use interface for the user. The GUI will have the ability to make coala configuration files and trigger runs using those configuration files. The GUI will also be responsible for showing the logs. This GUI will be implemented using PyGTK3.
I will be mentored by Lasse Schuirmann
1.2. Benefits this project will have for GNOME
coala is a code analysis application, whose main goal is to make static code analysis easy and mainly modular. coala is not language specific in its code analysis. The best part about coala is that people can write bears and extend its functionality as per their requirements. These bears can be as simple as checking for indentation as opposed to far more complex ones like Code Duplication Detection. So far, coala offers an easy to use CLI interface wherein users are prompted for input and actions, as and when required. This accounts for a streamlined and hassle-free experience. My project proposes to build a GUI for coala, which I believe will have the following benefits:
- A GUI offers a faster and more efficient way to use coala. It will have many features which will help coala users perform their static code analysis with greater speed and have a more stylised way to look at the results and perform actions on them.
- While I am quite comfortable and well-versed with the command line interface now, I found my initial time with it to be quite tiresome. A GUI provides a more visual means of performing actions and is therefore, easier to use. Hence, a coala GUI would help new developers joining the GNOME community to focus on analysing their code without the added complication of getting acquainted with the command line interface.
- coala helps in improving both patch and code quality. As a new contributor to the open source community, I often found myself fixing spacing issues along with other trivial mistakes related to formatting. This is frustrating and counter-productive for the user as well as the reviewer. coala and its GUI will greatly help in solving this problem. It helps new developers to contribute in a more efficient and effective manner.
- Provision of non-real time static code analysis is another pro of coala. IDE’s have several tools to provide support while writing code but nothing to check code after it has already been written. coala to the rescue!
- GNOME is an organisation known for its GUI applications. Thus, creating a GUI for coala seems like the natural order of things at GNOME.