Linting and Fixing Code for All Languages

Technologies
django, python 3, antlr, emberjs, reactjs
Topics
devops, code analysis, chatops, language server, dependency management
Linting and Fixing Code for All Languages

coala: Language Independent Code Analysis

coala provides a common command-line interface for linting and fixing all your code, regardless of the programming languages you use. It allows users to analyse projects containing multiple languages with just one tool, using just one configuration and seeing just one user interface.

How does it work?

With coala, you create just one configuration file. It can be separated into sections that run independently to fit different scenarios. Using different bears (which are coala's modules) users can work with a wide range of existing tools, wrapped by bears, and native analysis routines. This enables users to check their python code for pep8 conformity, calculate complexity for their java code, find code duplicates in the C code and check the documentation for spelling errors, while making sure the commits follow the set guidelines. All controlled via one configuration file, run with one command and served in the same user interface.

For Users

coala offers a unified static code analysis suite. It can be used as a simple standalone testing suite, pre-commit hook and CI tool. Besides the normal user interactive mode, there is a non interactive mode for CI, a html output mode, to view results in the browser, and JSON output if you want to integrate coala into your own system. If implemented, coala even offers to automatically fix problems.

For Developers

You can easily write your own bears. coala is written with ease of extension in mind. That means: no big boilerplate, just write one small object with one routine, add the parameters you like and see how coala automates the organisation of settings, user interaction and execution parallelisation.

For Newcomers

coala offers a great newcomer experience with an in depth step by step guide for your first contribution, extensive documentation of the whole workflow and fast and easy communication over the gitter channel.

2018 Program

Successful Projects

Contributor
Boxuan Li
Mentor
Hemang, Surya Widi, Andrew Dassonville
Organization
coala
Meta-review
The goal of project meta-review is to track emoji responses to review comments. These responses would be collected, processed and displayed. This...
Contributor
ksdme
Mentor
Ce Gao, Dmytro Sadovnychyi, Nalin Bhardwaj, Steve Peak, Nicholas Gates
Organization
coala
coala language server
coala as a linting and code fixing tool can be far more useful when its power can be directly leveraged from within the code editor. Since all the...
Contributor
Pareksha Manchanda
Mentor
Jami Schwarzwalder, Tasya Aditya Rukmana, Adhika Setya Pramudita
Organization
coala
Convert Bears to Aspects Project
This project is part of adding the 'aspect' functionality to coala-bears. Through this functionality coala users will no longer have to worry about...
Contributor
Shrikrishna Singh
Mentor
Gopala, Pranav Dixit, John Vandenberg, Andrew Dassonville
Organization
coala
Newcomer metrics and gamification
As coala tries to be welcoming organization for newcomers, giving them clear pathways and as much direct assistance as possible. However, it is...
Contributor
Viresh Gupta
Mentor
Dong-hee Na, Udayan Tandon
Organization
coala
Integration of ANTLRv4 into coala core
This project aims to implement a library that integrates with the existing coala code and allows writing native bears for coala that can leverage the...
Contributor
Ankit Joshi
Mentor
Steven Myint, John Vandenberg
Organization
coala
Integrate pyflakes-enhanced AST into coala
The idea, here, is to integrate pyflakes-enhanced AST into coala as a metabear which can then be used to develop various plugins. The second part of...
Contributor
Vamshi Krishna
Mentor
Hizkia Felix, Manvendra Singh, sils, Naveen Kumar Sangi
Organization
coala
Implement GitMate automations and plugins for coala
GitMate.io is an automation tool for developers. While it works well, there are a number of plugins which saves a lot of time of our community(for...
Contributor
Rahul Jha (~RJ722)
Mentor
Jendrik Seipp, The Compiler, Abdeali Kothari
Organization
coala
Improve Whitelisting infrastructure for Vulture
The following has been proposed to facilitate the user experience with whitelisting in Vulture: Create a command line tool which takes in sip files...
Contributor
Ishan Srivastava
Mentor
Satwik (@satwikkansal), Adhityaa Chandrasekar
Organization
coala
Quickstart Green Mode
It is tough for a new user to quickly grasp and start using the settings provided by coala. The user needs to be aware of the bears he might possibly...
Contributor
Saksham Bansal
Mentor
Muhammad Kaisar Arkhan, mbodenhamer, Andrey Safonov
Organization
coala
Improve Installation of coala and coala-bears
The project focuses on improving coala's dependency management for installing bear and their dependencies on multiple platforms. Specifically, the...
Contributor
Nitanshu Vashistha
Mentor
Meet Mangukiya, gbin
Organization
coala
corobo Enhancement
corobo Enhancement The goal of this project is to make corobo secure by reducing its surface vulnerability. It also includes implementing a better...
Contributor
Kriti Rohilla
Mentor
Sebastian Latacz, Guyzmo, Rafid Aslam, Saurav Singh
Organization
coala
Commit content inspection project
This project is about adding a verification process for the pull requests made to coala. There are many special types of commit messages that should...
Contributor
Palash Nigam
Mentor
Makman2, fneu, Shreyans Doshi
Organization
coala
Optimize Caching (For Nextgen-Core)
Integrate an optimized version of the current caching mechanism with the Nextgen core. The objective is to take the improvement suggested to...
Contributor
Vaibhav Kumar Rai
Mentor
Makman2, Arjun Singh Yadav, fneu
Organization
coala
Debug and Profile Bears
Debug and Profile Bears The aim of this project is to create a better quality Bears by creating a tool which will have the ability to jump directly...