Posts

GSoC 2018 journey

Image
What is GSoC? Google Summer of Code (GSoC) is an online, international program designed to encourage university student participation in open source software development. Students work for an open source software organization, and earn a stipend for successfully completing the project. If you want to know more about GSoC, click  here . How it all started? I joined a student club called  FOSS@AMRITA  in Amrita University , where a group of students work on various open source projects helping each other. I got to know about GSoC from the club itself, most of the previous year GSoC students from our college were members of the club. I was motivated by seeing them and started learning coding, staying in the lab after my college hours. Why I was attracted to GSoC is for real world experience, to prove myself that I can do something and for swag, stipend too. Why coala? Choosing an organization from previous year GSoC orgs was a hard one. Initially, I chose  Joomla  a

GSoC Coding Phase 3 ends

Coding Phase 3 Last phase of GSoC period is completed. In this phase, I finished all the work which was pending in the previous phases. Week 3: I implemented squash command in GitMate, to squash all commits in a pull request into a single commit with defined commit message. This feature was supposed to implemented in the first phase, but there were some issues when giving multi line commit message and when there is merge commit, so I implemented a command to squash last 'n' number of commits instead of squashing given set of commits. Also, my cEP got merged, after many amendments. Week 4: I worked on adding assign request command which assigns and unassigns an issue to a user who requests for assignment or unassignment. Also, a user must satisfy all the eligibility conditions to get assigned to the issue. This one involved with writing many test cases. Check my pull request here . I started working on merging all pull request review plugins into

GSoC Coding Phase 3

Image
CODING PHASE 3 Phase 2 result Hey guys, GSoC coding Phase 2 was completed and I passed second evaluation. Here is the feedback provided by my mentor  Naveen : Week 1: I needed an API in IGitt to filter issues of repository and organization based on some issue properties, to implement assign mechanism in GitMate. So, I improved the search API in IGitt to allow filtering issues in a repository or an Organization, by state, assignee and label properties. Checkout merged MR  here . In one of my previous posts, I have mentioned that I have added a 'pr rejector' plugin to close PR's opened on mentioned branch names. One of the GitMate users asked for a feature to auto close PR's on opened on GitHub,  I thought this plugin could be used for that purpose if we gave a Regular Expression string for branch names. I added support for accepting regex strings as branch names. Checkout merged MR  here . Week 2: As search API was improved in IGitt, I started worki

GSoC Coding Phase 2 ends

Coding Phase 2 Coding phase 2 has come to an end, I worked almost everyday in this phase, I finished lots of work including the one which was left over in phase 1. Though I tried to complete all the tasks as planned, there were a couple of issues left over which would take some extra time. Week 3 : I worked on "Adding Team class" in IGitt, which was a little tricky one because GitLab doesn't have teams. So, assuming GitLab groups(which actually represent organization) as teams was a workaround for the problem. Then I added a feature "Auto assign issues based on commit mention in PR". When any user opens a PR(pull request) and mentions issues, which are being closed or fixed, in commit message, GitMate automatically assigns PR author to the mentioned unassigned issues and if anyone else is assigned to mentioned issues, GitMate will inform the user to work on other issues. You can check out my merged MR here . Week 4 : I made a PR on adding `mergea

GSoC coding phase 2

Image
Coding Phase 2 Phase 1 result GSoC coding Phase 1 finished and I passed first evaluation. I received some honest feedback from my mentor Naveen. First week I finished my some of my pending work in first phase. Upgraded IGitt in GitMate to fetch latest commits made my me, which will be needed for writing plugins. Then my PR on "Add Fixes vs Closes checking plugin" got merged. Comment by that plugin will be like this- Second Week For completing squash plugin, I have completed writing code for executing squash commands as required in mr-rebaser repository, also I submitted a PR for executing squash plugin in GitMate. Only a demo was required to complete that plugin. I started working on plugin called "Auto assign issue based on commit mention in PR", i.e if an unassigned issue is mentioned with keyword(Fixes, Closes) in commit message of the PR and there is no CI failure in the PR, then issue will assigned to PR author, else if an assigned issu

GSoC coding Phase 1 ends

Image
Coding Phase 1 Week 4 Fixes vs Closes : I started working on adding a new feature in existing pull request(PR) auto review plugin, called "Fixes vs Closes checking". In coala, for every PR we make, we have to mention which issues we are trying solve, in commit message. We should use `Fixes issue_link`, if we are fixing a issue which has a `type/bug` label and use `Closes issue_link` if we are closing a issue which doesn't have a `type/bug` label. So, I have written code to do this automatically by GitMate, if commit message doesn't follow the guideline, then GitMate will remove the PR from review queue by removing `pending review' label, adding `work in progress` label to the PR and configurable comment will be added on the PR explaining what was done wrong. I have also made   IGitt enhancement to know which keywords(Fixes, Closes) referenced which issues.  PR Rejector : I mentioned in the previous blog post about having some issues with testing m

GSoC Coding Phase 1

Image
Coding Phase 1 Hey guys, it's been a long time since my last GSoC post, I will be sharing what have I done in GSoC Coding Phase 1 in this post. As I said in my last post, I had exams during this period and I had lot of work to do. First week I couldn't work first three days due to exams.  As soon as I got a couple of preparation holidays, I started working on writing a new plugin called PR(pull request) rejector, which closes PR's opened on certain list of branches, and leave a configurable comment stating to open PR on another source branch. This plugin will be helpful to automatically review the source branch of the PR and save the time of developers. Though I started working on it, I could not complete it yet, due to some migrations error, so I decided to work on another issue and come back to this later. Second week There were some exams in the beginning of the week, but I was free in the weekend, so I started working on a IGitt enhancement, to add me