[NEW PLUGIN] creedengo iOS - Requesting inclusion in SonarQube Marketplace

Hi David,

Congrats to you and the team on your new plugin! :tada:

Looking at this, I see

Must address

  • That youā€™ve apparently declared a Pbxproj language? I see a default profile for it and one rule. But the test project you provided apparently doesnā€™t have any ā€œpbxprojā€ files in it? At least, no issues are raised from that rule, and I donā€™t see any Lines of Code counted for the language. Iā€™m going to need more detail on this. Donā€™t forget that Requirement 9 calls for ncloc and ncloc_data for new languages.

  • The PR declares compatibility with SonarQube Community Build - which does not support Swift analysis - but not with SonarQube Server - which doesā€¦

Nice to have

  • Within Sonar we have a rule-writing guideline that the issue message must be imperative. I.e. ā€œDo [not] xā€. Iā€™m looking at a creedengo-swift:GCI509 issue andā€¦ honestly I had to read this about 3 times to understand what was supposed to happen. The rule title is ā€˜Rigid Alarmā€™ which is mildly helpful, but not as visible in the issues context as I would like (which is obvs not your fault). But when I see an issue raised that says ā€œSetting a tolerance for timers will allow them to fire later than the scheduled fire date.ā€ ā€¦ I have no idea off-hand whether thatā€™s good or bad. So I read the rule description.

    Setting a tolerance for timers will allow them to fire later than the scheduled fire date. The system will use this flexibility to shift the execution of timers by small amounts of time, within their tolerances, increasing the ability to optimize power savingsā€¦

    That seems goodā€¦ Right? Soā€¦ why was an issue raised? ā€¦ I go back to the issue message ā€œSetting a tolerance for timers will allow them to fire laterā€¦ā€ Okayā€¦ Finally, I realize thereā€™s no timer in the code and there should be.
    My point? Help your users out and tell them what to do: ā€œSet a tolerance for this timer to allow increased processor idling.ā€

  • I similarly donā€™t understand why the creedengo-swift:GCI519 issues are raised (but this time Iā€™m not going to take the time to figure it out :smiley: ). Please just take this^ into consideration for all your rules.

  • ā€œSobrietyā€ as a rule prefix and as a tagā€¦ That word doesnā€™t mean what you think it does in English. :joy:

  • In MQR mode, I see all issues raised as Consistency issues. I suppose you picked that as a default? But particularly for the leak-related rules, I believe you should reconsider this and perhaps use Intentionality. In factā€¦ since ā€œefficientā€ falls under Intentionality, that should probably be your default for everything as a general rule. Iā€™m not going to be rigid about it this time. But I canā€™t say that wonā€™t change.

 
Ann