Releasing a beta version of a new feature to greatly improve SideCI’s usage flow

Hello! From today, we will start providing the beta version of a large, brand new feature.
Since this feature is still in beta and hasn’t been officially named yet, let us introduce this feature by its in-house project name, “Abyssinian”.

About Abyssinian

Abyssinian is an experimental feature which replaces the current SideCI’s core function(*), commenting on GitHub when an issue is detected.
* We will refer to this function as “Comment Mode” in this article.

In using the Comment Mode, we’re sure there were many cases in using where the reviewer (or reviewee) checks the comments from SideCI on GitHub, and either fixes the code or ignores the comments on that Pull Request.
Abyssinian is a feature which makes this flow more strict and closer to the actual workflow, leading to easier usage.
In Abyssinian, we assume SideCI being used as follows:

  1. Opening the Pull Request
  2. The reviewee checking the analysis results if any issues are detected by SideCI.
  3. Fixing the code based on the results, or clearly indicating that no fixing will be done.

By using this flow, you can have easy management over which comments have and have not been addressed.

Notification of Analysis Results

In Abyssinian, when one or more issues are detected in the Pull Request, the analysis results are notified on GitHub and Slack as shown in the images below.
This is treated as “Failed” on GitHub, so some action is required to resolve this.

notification image on GitHub

notification image(GitHub)

 

notification image on Slack

notification image(Slack)

 

Required Actions

After viewing the analysis results, you can do one of the three following actions:

  1. Fix the code following the indication
  2. Make comments on GitHub regarding the indication
  3. Close the indication

When all indications are either fixed or closed, the “Success” status is sent to GitHub, making the Pull Request able to merge.

Usage Screen of Abyssinian

There are three statuses, “OPEN”, “CLOSED”, and “FIXED”, for the indications. At first, they are all set to “OPEN”. When the code is fixed, the indication is automatically categorized to “FIXED”. When all indications are fixed, the “success” status is automatically sent to GitHub, making it able to merge.

usage screen image

usage screen image

 

Use Case of CLOSED

Some analysis tools output analysis results as a suggestion, not as an absolute rule. They are only a suggestion, so applying them or not differs from scene to scene. If you find them unnecessary, you can “CLOSE” the indications.

For example, Querly(for Ruby), an analysis tool developed by the members of SideCI for automating reviews, warns users about portions of code which may cause problems. By writing the patterns you want to warn in a yaml file, it suggests the content written in advance when it finds the patterns. In the following case, a user is warned about the usage of the delete_all method. If you still choose to use delete_all despite the warning, you can “CLOSE” the indication.

 

sample comment

“CLOSE” and “COMMENT and CLOSE

 

When “COMMENT”ing and “COMMENT and CLOSE”ing,  the details of the indication and inputted content is commented on GitHub.
In most cases, it is recommended to “COMMENT and CLOSE” why you are closing the indication.

notificaiton to GitHub image

notificaiton to GitHub image

 

“CLOSE”ing is not commented on GitHub, but you can check anytime which indication was “CLOSED” from SideCI.
You can also leave a comment without closing the indication from the “COMMENT” button. This is mainly used when you feel some discussion is needed, like requesting opinions from a reviewer, or clearly stating that one will deal with the indication.

With these functions, the reviewer can check what indications were made by SideCI, and why they are not addressed yet on GitHub, allowing all of the reviewing to be done on GitHub. With Abyssinian, reviewers can now concentrate on more essential reviews.

Changing Between Abyssinian Mode and Comment Mode

You can change between Abyssinian Mode and Comment Mode anytime. The settings can be changed from the “Abyssinian Mode (β)” tab in the “Project Configurations”.

 

setting image

setting image

 

Caution

This feature is currently provided as a beta version. If any problems occur, please change it back to Comment Mode as described above.
Also, please note that the functions listed below do not work in Abyssinian Mode.

  • Japanese Translation Mode
  • Auto Correction (automatic correction of the code)
  • Resolving Package Dependency with Gometalinter

In addition, the following analysis tools are not supported in Abyssinian Mode.  We will be sure to include them in the near future.

  • CoffeeLint
  • TSLint
  • SCSS-Lint
  • HAML Lint
  • BundlerOutdated
  • ComposerOutdated
  • MethodDefinitionValidator

Furthermore, Abyssinian Mode with PHP remains at very limited experimental support.

Request for Cooperation with the Beta Version

This feature is a very large modification which will have a significant influence on users’ usage workflow. Due to this, there may be cases where we individually ask for your feedback. Your cooperation would be greatly appreciated.

Leave a Reply

Your email address will not be published. Required fields are marked *