Google Summer of Code 2018 Work Product Submission



coala

Boxuan Li

I am a final year student (expected graduation date: May 2019) of Computer Science at The University of Hong Kong. I participated in GSoC and worked with coala to implement a meta-review system, which collects and tracks GitHub reactions used by coala community to generate meaningful analysis. I also improved usability of gh-board, a serverless kanban board, fixing some issues and extending it to track reviews & meta-reviews.

Project Title



Patches Tarball


SHA-256:

c6e6c80c783d99c182e63f823d3220a04fff43270f123a219af5015663d311a8

Bonding

Phase 1

Phase 2

Phase 3


Links to commits and repositories I've worked on:

Repository Link to Commit/s Description
p  projects View

[Bonding Period Work] meta_review.md: Add meta review project

c  cEPs View

cEP-0019.md: Meta-review system

c  community View

Set up meta_review app

c  community View

Change meta-review models

c  community View

Implement meta-review scoring & ranking system

g  gh-board View

[Bonding Period Work] fetch-issues.js: Build custom generator

g  gh-board View

[Bonding Period Work] Remove TODOs in components code

g  gh-board View

[Bonding Period Work] Modernize existing React component code

g  gh-board View

nav.jsx: Fix broken link on header

g  gh-board View

Pre-fetch pull request review comments & reactions

g  gh-board View

package.json: Add linting on script & test

g  gh-board View

Get test suite working

g  gh-board View

Set pre-fetch time limit for pull requests

g  gh-board View

Fix Travis failure

g  gh-board View

database.js: Fix closed filter bug

g  gh-board View

.travis.yml: Enable keep-history

g  gh-board View

.travis.yml: Let moban task not deploy

g  gh-board View

run-test.sh: Verify files exist

g  gh-board View

Increase test timeout threshold

g  gh-board View

login-modal.jsx: Add exception for default api url

g  gh-board View

Add meta-review in need column

g  gh-board View

Display reactions of reviews

g  gh-board View

dashboard.jsx: Add environment REPOSITORIES

g  gh-board View

Setup GraphQL client

g  gh-board View

Use new graphql client to sync issues

g  gh-board View

dashboard.jsx: Load repos automatically after login

g  gh-board View

Add review filters functionality

g  gh-board View

Refactor pre-fetching

g  gh-board View

github-graphql.js: Fix several issues

g  gh-board View

Setup Jest configurations

g  gh-board View

reactions.jsx: Add snapshot test

g  gh-board View

Add codecov

g  gh-board View

Separate test logic

g  gh-board View

netlify.toml: Verify pre-fetched files exist

g  gh-board View

Enhance meta-review UI

g  gh-board View

Add reaction mutation functionality

g  gh-board View

repo-kanban.jsx: Use withAuth wrapper

g  gh-board View

dashboard.jsx: Use withAuth wrapper

c  coala View

Linter: Add option to remove 0 number

c  coala View

Meta-review.rst: Add meta-review docs

c  coala View

Newcomers_Guide.rst: Add meta-review process

c  coala-bears View

PyLintBear: Fix column number convention

c  coala-bears View

CPPLintBear: Fix line number convention

c  coala-bears View

HAMLLintBear: Fix line number convention

c  coala-bears View

WriteGoodLintBear: Fix column number convention

c  coala-bears View

StylintBear: Fix column number convention

c  coala-bears View

CheckStyleBear: Fix offset convention


Meta-review

Work Done

coala community website now has a meta-review ranking list.

coala gh-board website now has a column displaying review comments that need to be meta-reviewed. I also fixed many issues around gh-board repo. I sent some patches to upstream repos, including pull request philschatz/gh-board#147, and ryanprior/gh-board#1. Those enhancements are generic for any gh-board user, thus we have been hoping that the upstream gh-board repos will become better maintained.

Apart from all above, I did some other contributions to the community, including doing reviews, and fixing several issues around coala & coala-bears repo.

Challenges

Most things went smoothly. The biggest challenge for me was that I did not have serious frontend experience. Before I applied for this project, I had no frontend development knowledge at all, while two thirds of my project was about javascript and React. Luckily, org admin and all my mentors were very willing to help and review my work. coala community always do extremely careful reviews and expect high quality of code. It was hard work for me, but I did learn a lot at the same time.

Work to be done

The ranking list on community website is very basic. It could be prettified and improved. As it is a ranking list, filtering, sorting & searching options could be added. The algorithm used in the meta-review ranking system is basic: it uses naive iterative algorithm to calculate scores, which can be enhanced in the future.

There are still some issues around with gh-board. A major improvement which can be done is GitLab support - it currently only supports GitHub.