Sider’s New Coding Guide “Recommended Rules” Release And Application Schedule

Sider has supported a wide variety of static code analyzers and has provided default settings for them based on our in-house review of the appropriate settings for each language. If a user chooses not to configure the analyzer settings on their own, these default settings are applied.

Going forward, these default settings will be replaced with new default settings that contain rules that are considered to be more quantitatively appropriate (hereinafter referred to as “Recommended Rules”), which were developed through joint research with academic institutions.

The schedule to update these default settings will be posted in this article in due course. Please note the following.

  • For those using Sider with the old default settings, Sider’s issues will change based on the new settings.
  • Users can try the new default settings before the update is applied.
  • Users can retain the previous default settings by saving them into a configuration file.

This article will cover the following:

  1. Overview of Recommended Rules
  2. Date when Recommended Rules will be applied (per analyzer)
  3. Start date and URL for opt-in provision of Recommended Rules (per analyzer)
  4. How to use Recommended Rules immediately
  5. Details about Recommended Rules

Recommended Rules Overview

The new coding guide (analysis rules) was announced in a press release on January 7, 2021, and was named “Recommended Rules”. https://www.prnewswire.com/news-releases/sider-releases-recommended-rules-a-coding-guide-based-on-analyzing-1-000-projects-for-public-use-301202367.html

Recommended Rules was created with the goal of being beneficial for any project. Using Recommended Rules (the new default setting for Sider) and adding project-specific rules will simplify the setup process in creating a guide that is suitable for your project.

Recommended Rules is based on an analysis of popular repositories published on GitHub. By analyzing the coding rules that were applied, Recommended Rules was created by separating out the rules that were actually being utilized (and followed by many OSS developers) and extracting out those that were most beneficial. This allows Sider to be more effective at providing alerts that developers will take action on.

Date when Recommended Rules will be applied (per analyzer)

Recommended Rules will be applied in the order listed below. We will update the dates as soon as they are ready. Please note that there may be a delay in the provision of the rules, as there is a huge amount of source code to analyze, and a high level to which compliance with the rules must be checked.

  • Ruby
    • RuboCop scheduled for Late April 2021
  • Java
    • Checkstyle March 16, 2021
  • JavaScript and Flavors
    • ESLint scheduled for Late April 2021
  • PHP
    • PHP_CodeSniffer scheduled for March 16, 2021
  • Python
    • Flake8 scheduled for March 16, 2021
  • C/C++
    • cpplint December 22, 2020

The schedule for the following analyzers not listed above is not yet determined. There is a possibility some may not be provided.

  • Ruby
    • Reek
    • HAML-Lint
  • Java
    • PMD
  • Kotlin
    • detekt
  • Swift
    • SwiftLint
  • PHP
    • PHPMD
  • Go
    • GolangCI-Lint
  • C/C++
    • Cppcheck
  • C#
    • FxCop

Analyzers not listed above are under consideration. We do not plan to provide analyzers that need to support all rules, such as security analyzers, or analyzers made by Sider that allow users to write arbitrary rules, as they do not conform to the role of Recommended Rules.

Start date and URL for opt-in provision of Recommended Rules (per analyzer)

The configuration file for Recommended Rules is available at the URL listed below.

Please download the file, place it in the repository, and explicitly specify the file in sider.yml depending on the analyzer. By doing so, you can use the Recommended Rules without waiting for them to be reflected as default settings.

For more information on how to specify rules in each analyzer, please refer to the page of the corresponding analyzer from the help site below.
https://help.sider.review/getting-started/custom-configuration

Details about Recommended Rules

Recommended Rules was developed by Sider as a result of joint research with academic institutions.

Details of the research will be published in a paper in the future. A link will be provided following pubication.

The following are reference papers that have been published to date, as well as joint research partners for this research.

  • Reference papers, posters, etc.
    • T. Kurashige, K. Suetsugu, K. Sumi, M. Nagura, S. Takada, and A. Asahara: A Survey of Coding Convention Violations in OSS, Software Engineering Symposium 2020 (SES2020), Poster Session (September 2020)
    • M. Nagura, K. Taguchi, and S. Takada: A Method for Predicting Defects in Software Changes Based on Coding Convention Violation Metrics, Transactions of Information Processing Society of Japan, Vol. 61, No. 4, pp. 895-907 (April 2020).
  • Joint research partners
    • Professor Shingo Takada, Takata Laboratory, Department of Information Engineering, Faculty of Science and Technology, Keio University
    • Associate Professor Masataka Nagura, Department of Software Engineering, Faculty of Science and Technology, Nanzan University

Summary

Recommended Rules will soon be applied as the default setting of Sider. This may have the effect of increasing or decreasing the number of remarks or alerts for users currently running the default setting of Sider. Please note this in advance. For those who want to try it out first, or want to take this opportunity to customize Sider’s settings, please download Recommended Rules from the URLs listed above, and configure them once they are placed in the repository.

We will continue to develop new features and initiatives in Sider. Thank you for your continued support.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.