Google Summer of Code 2017 Work Product Submission



coala

Alexandru-Sorin Maxim

I’m a 3rd year student of Computer Science & Engineering at Politehnica University of Bucharest. I participated in GSoC and worked with coala to improve coala CLI experience. The end goal of the project was to: make coala easier to use, adds new functionality so the user could have multiple options when he uses coala and design mockups based on the feedback from the community.


Patches Tarball


SHA-256:

ad04739a67b822ee73b764d78554a47615450321bc52a996b04a136e99fe37f9

Bonding

Phase 1

Phase 2

Phase 3


Links to commits and repositories I've worked on:

Repository Link to Commit/s Description
c  coala View

Change output for user.

c  coala View

Change the coafile warning/output.

c  coala View

Change the actions name.

c  coala View

Change the input

c  coala View

Fix the ouput

c  coala View

Add Chain Action

c  coala View

Add apply-single-action

c  coala View

Add Show Applied Action

c  coala View

Make Chain Action default

c  coala View

Add line number for the diff ouput

c  coala View

Add docs for apply single action

c  coala View

Rename DoNothinActionTest.py

c  coala View

Change Severity line from the ouput

c  coala View

Add line number inside “[ ]” in diffs

c  coala View

Fix color from the ouput

c  coala View

Add Do (N)othing action

c  coala View

Fix –no-color flag

c  coala View

Add Generate Patches Action

c  coala View

Add “Executing section <section>…”


Improve the coala CLI

Work Done

With this project we’ve tried to improve the user experience of coala in CLI. Many hours were spend trying to improve the design of it and we hope it’s better. Of course, anything can be improved over and over again. Chain Actions is right now by default. You can now apply multiple actions in a single input Apply single actions was added. You can use flag -A and choose an action to apply for every result Show applied actions print the latest actions that a user has done in a run of coala Generate patch action generates a patch for a file based on bears depending on what language did you used in the file.


I worked just in coala repository from github. Most of the work was done in ConsoleInteraction.py file were I did major changes. Other changes were made by adding new files for every new action and tests for all of them.


Now, --no-color flag works properly. This was an old bug that we solved.


No more background green color when coala shows the results and the diffs.

Challenges

It was a great learning experience overall. I think that the most dificult think was to have 100% coverage from tests. Also I tried to wrote good, clean code that new people could understand it. The most interesting part was when I tried to think the needs of the user so I can write useful new actions. Thanks to both of my mentors Adrian Zatreanu & Muhammad Kaisar Arkhan. Thank you for everything!

Work to be done

I think we should have something like a special day, every release, when we try to receive feedback from users. Make a list of good questions that we can ask them.


I think the design of the ouput can be improved more for a better experience. New actions can be added based on the needs of our users and actions that are already implemented can be improved to cover the interests of the users.