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.
- Got the cEP (coala’s Enhancement Proposal) merged after review by my mentor.
- Performed a couple more iterations of my
GruntfileInfoExtractorPR 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:
- Autofilling values for settings of sections in the
.coafilegenerated by coala-quickstart. Currently we use files like
Gruntfile.jsto achieve this. Also, coala-quickstart is now able to detect inconsistency in the various configurations across such files.
- Use information from dependency files (like
requirements.txt) to suggest relevant information for bears.
- 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.
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…