GSoC: Final week of Phase 2

Hello world! I’m back with another post of my GSoC journey. I’m into my final week of Phase 2 and will be filling out the evaluations very soon (excited!). This phase was essentially the core of my GSoC project. Here’s what I’ve done in past two weeks since my last update.

TLDR;

  • Got the cEP (coala’s Enhancement Proposal) merged after review by my mentor.
  • Performed a couple more iterations of my GruntfileInfoExtractor PR and got it merged after reviews from my mentors and fellow GSoCers.
  • Submitted a very long PR for the actual implementation of my cEP and managed to get it merged after heavy reviews.

Here’s my burndown chart

It’s pretty erratic this time because we decided to work on multiple issues a week so that we have a fair idea in mind of how everything is going to line up together to work in sync, and this is what I ended up with

PS: I realized that it’s better to manage 3-4 short PRs than one giant PR and had hard time in making changes to PR, maintaining logical order of commits, and having the all the CI services to successfully build the project with updated changes.

Diving into the details

I mentioned that GruntfileInfoExtractor PR is in good shape in my previous post, but it wasn’t! I had some silly mistakes and some code which had very high complexity be it be time complexity or cyclomatic complexity. I spent some more time to refine it after reviews and got it merged. Gruntfile.js has lot of metadata that can be useful for coala-quickstart to generate enhanced configuration file (.coafile) for coala.

My cEP implementation can be seen broadly in terms of following 3 tasks:

  1. Autofilling values for settings of sections in the .coafile generated by coala-quickstart. Currently we use files like .editorconfig and Gruntfile.js to achieve this. Also, coala-quickstart is now able to detect inconsistency in the various configurations across such files.
  2. Use information from dependency files (like package.json, Gemfile and requirements.txt) to suggest relevant information for bears.
  3. Ask users explicitly for capabilities they want for their bears and filter bears accordingly.

The ultimate goal of coala-quickstart is “To do all the boilerplate work for coala and generate a highly relevant .coafile without minimum possible user involvement(or no inovolvement at all in the ideal case)”. After all the above three mentioned tasks implemented, we get a step closer to achieve high automation and accuracy with quickstart.

Also, coala-quickstart now works online! To try it out, go to https://coala.io/#!/coalaonline , and just enter your repository url (credits to Hemang). It’s in beta right now, so if you experience any glitches, feel free to report it here.

What’s next?

We have two choices now, either to go ahead with my proposal and make improvements to CLI and pursue some stretch goals if time allows or to further refine my work in Phase 2 and focus on “recommending relevant and useful Bears” to the users. We’ll be discussing this in next weekly meeting which is gonna happen very soon.

Thanks to Adhityaa (my primary mentor) for managing out sufficient time for the project even after his internship. Also, he has now completed his internship, and he’ll be available to help me more, but on the flip side, I’ve my campus placements starting from next week, so a lot of my time will get into studying and preparing for interviews for different companies. So it’s gonna be a big month ahead for me!!!

Anyways, I know I’ll manage it, and keep you guys updated. Stay tuned for updates…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s