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”.
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:
- Opening the Pull Request
- The reviewee checking the analysis results if any issues are detected by SideCI.
- 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.
After viewing the analysis results, you can do one of the three following actions:
- Fix the code following the indication
- Make comments on GitHub regarding the indication
- 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.
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.
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.
“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”.
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.
- HAML Lint
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.