Posts

Showing posts with the label coala

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. Initi...

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 start...

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...

Community Bonding period

Image
Community Bonding post Hey guys, I am back with one more post on how I spent my GSoC community Bonding period with coala. If you have read my previous post, you know that I was tensed about how will I get used to GitMate in such short time. Let's see what happened. First week: Firstly, I have set up GitMate environment and I wanted to work on some issue to get familiar with code base. So, I chose a small issue and started working on it. My work was to sync issues labels every time someone pushed a commit and updated their PR. So, I got all the PR labels in list called ignored list and each time you update a pull request(PR), GitMate gets all the labels of the issues, which the PR closes and if those labels aren't present in the PR, then add it to the PR, and remove all other labels on the PR, which isn't on the issue, also don't remove the PR related labels like "process/WIP", "process/pending review", size labels, etc. What I learned by f...

Accepted in Google Summer of Code (GSoC) 2018!!!

Image
My journey in coala: I joined coala organisation in January 2017, expecting to apply for GSoC 2017. Due to age restrictions I couldn't apply in 2017. But, I stayed and learned a lot from coala and it's community. I would say coala is really good for newcomers, it provides great documentation and help from community. Initially, I worked on coala core repositories, but I was interested in developing coala bot(corobo predecessor), a chat bot which helps members of coala to ease their workflow. So, I started fixing some bugs and started adding new features to it. These things led to my promotion to developer and I was Google Code In 2017 mentor. Selecting project and Writing Proposal: Recently, after GCI 2017, corobo was shutdown due to misuse of bot by some mischievous forces. And it increased a lot manual work and everyone was missing corobo badly. So, I started working on a GSoC proposal to fix corobo security and add some enhancements to it. After finishing up my draft ...