Back to the article list

08 Nov 2013

First Round Of Improvements Based On Your Feedback

When we opened the private beta with a "feedback" button on every page, we didn't think that so many of you would actually send us so much feedback. We're overwhelmed by your feedback, and it has helped us tremendously to adjust our target, understand your true expectations, and improve the service SymfonyInsight can bring you.

False Positives

Most of your feedback concerned rules showing false positives on your projects. This was particularly frustrating as it usually prevented you to get a good medal without ignoring a rule (which turns the medal into a chocolate medal). Static analysis is a complex task, and we needed these false positives that you pointed us to refine our analyzer. We've fixed most of the false positives you reported, including:

  • Reports of unused variable, or unused method parameter that were actually used
  • Incorrect unused use statement violations (the alias being used in a docbloc, or in a string)
  • Data found in configuration that were considered sensitive by mistake
  • Wrong violations on unfixed composer dependency
  • Violation on logging verbosity in production that were not considering complex loggers
  • And many more uncommon use cases

We'll continue to refine our analyzer to be sure to raise only violations that make sense in the context of your projects.

New Rules

We have given a lot of love to existing rules (including adding documentation to those lacking it). But most important, we have added several new rules that we think will be a great help in your development process.

  • Detect missing use statements (and wrong usage of throw new Exception without a leading slash)
  • Detect function calls in for loops (bad for performance)
  • Check that Doctrine mapping data is valid
  • Detect TODO and FIXME comments
  • Detect PHP code in public repository (for instance by plugins like ckeditor)
  • Detect unfixed dependency version in composer
  • Detect out of maintenance dependencies
  • Detect injections of the Doctrine EntityManager and of the Dependency Injection Container

These rules are automatically enabled for all future analyses. If you analyze a project again, don't be surprised that new violations appear: that's because we keep on adding new rules every week!

Usability improvements

A large share of your feedback concerned the overall usability of the web interface. You reported many small glitches that were fixed quickly and continuously. If you haven't been on SymfonyInsight for a while, you might be surprised by how much the interface has changed since you first came. Usability highlights include:

  • The dashboard is now the homepage for connected users
  • In the full report, the "new" tab is now a filter on the sidebar. That allows you to find the same violation count on the summary and on the full report
  • The number of new and fixed violations now appear for each analysis in the dashboard
  • You can easily navigate to the next and previous analysis in a full report
  • Some hard to understand and badly worded sentences were rewritten to be understood by any English speaker
  • An FAQ to answer most common questions
  • The project configuration page was entirely redesigned to show only basic configuration at first
  • You can now ignore all the violations of a given rule, and disable this rule for future analyses

We know we have a lot more to do, and we'll keep on iterating on the design and interactions. Come back regularly to see our progress.

New features

Lastly, we've been hard at work adding the features that you missed the most. You can now:

  • Turn the dashboard into a timeline of events, showing not only analyses, but also new violations, projects you now collaborate to...
  • Analyze a private repository (either by pushing it to a SensioLabs Git repository, or by sharing your public key)
  • Display information about the version of the application analyzed (because the date was obviously not enough...)
  • Run an analysis on a branch
  • Add a search engine of public project analyses
  • Display and filter violation by author
  • Chart the quality evolution over time
  • Receive email notifications
  • Export a quality widget for your project

And under the hood, SymfonyInsight has been optimized and stabilized to make it ready for production. This was made possible by all the tests you've been doing on the platform, so again thanks a million times to the beta testers.

Keep on analyzing and sending us feedback, together we'll build an awesome product!

comments powered by Disqus