Google Summer of Code Work Product Submission



coala

Rohan Bhambhoria

I’m a graduating student from the Master’s program in Computer Engineering at Queen’s University. I will be starting my PhD in September, 2019. I started contributing code to coala several years ago and have made contributions such as bug fixes, writing tests and feature implementation. I have also served as a google code-in mentor for coala. My most recent contribution includes participating in the Google Summer of Code with coala under the project of Cohesive Editor Support.


Patches Tarball


SHA-256:

ee04b3d8de6271c5092c7a90ed48778ba2f789b19c826c233c0f83e16d852d6f

Bonding

Phase 1

Phase 2

Phase 3

Mentors


Links to commits and repositories I've worked on:

Repository Link to Commit/s Description
c  coala-spyder View

Adds initial file structure

c  coala-spyder View

Adds other initially required files

c  coala-spyder View

Adds required libraries to coalagui (widget)

c  coala-spyder View

Adds version check

c  coala-spyder View

Adds specific file coala and .coafile

c  coala-spyder View

Desired result output in working state

c  coala-spyder View

coala.results: Saves result in pickled format

c  coala-spyder View

run_coala.py: Modified to obtain required output

c  coala-spyder View

Widget: Displays output

c  coala-spyder View

run_coala: code cleanup

c  coala-spyder View

Registers coalaspyder as third-party plugin

c  coala-spyder View

Output is displayed in ResultsTree

c  coala-spyder View

Fixes output of results

c  coala-spyder View

Removes unused code

c  coala-spyder View

Adds Travis CI (Builds passing)

c  coala-spyder View

Uses relative import for single file coala

s  spyder-coala View

reformat of coala-spyder into structure in consistent format with other third-party spyder plugins.

s  spyder-coala View

adds documentation/installation instructions

S  SublimeLinter-coala View

Initializes SublimeLinter-coala without proper regex

S  SublimeLinter-coala View

Fixes regex and brings SublimeLinter-coala to working state

c  coala-syntastic View

Fixes version parsing

c  coala-syntastic View

Removes unrequired checkers

c  coala-syntastic View

Fixes regex issue

c  coala-syntastic View

Fixes error format

c  coala-syntastic View

Fixes format for some bears

c  coala-syntastic View

Fixes error format

c  coala-syntastic View

Fixes error format

s  syntastic-coala View

Restructures repository and adds installation instructions

d  dependency_management View

Adds AtomRequirement

d  dependency_management View

Adds tests for AtomRequirement


Cohesive Editor Support

Work Done

coala spyder is now a functional coala plugin and can be launched from the spyder editor. The repository has unittests and continuous integration set up with TravisCI. It can also be tested as a stand-alone widget.


coala sublime is now a functional plugin for Sublime Text 3 with all of the bells and whistles of SublimeLinter. coala vim is now a functional plugin for vim and neovim powered by the functionality of syntastic.


The three above projects have been added to the main coala repository.

Challenges

The main challenge was time management and allocation of sufficient time towards the Cohesive Editor Support project as I was also working on a university project at the time. The quick replies of my mentor, John and setting me on the right path helped me get more out of myself than I would’ve been able to without him.


Another challenge was diving into undocumented territory when working with integrating the spyder-coala widget with the spyder IDE.

Work to be done

For the first plugin - coala spyder, there are two main bugs that need to be fixed:

1) Obtaining the current file for run_coala

2) Widget crashing when unpacking from button

Also, unittests currently do not have full coverage.


For the second plugin - coala sublime, there is one main bug that needs to be fixed:

Fix pileup of linter flags

Also, unittests and CI has not been set up for this repository.


For the third plugin - coala vim, unittests and CI needs to be set up.


For AtomRequirement in the dependency_management repo, all functions are not yet added to check for apm installed packages.