|
Hi PHP mates! It's been quite some time since we discussed about the PHP plugin for the last time here. I'd like to plan the next release (1.1) for June. This sprint will also be the opportunity to migrate the sources from SVN to GitHub :-) (I can see your happy smile, Sebastian ;-))
Here's the list of issues currently planned for 1.1: http://jira.codehaus.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+SONARPLUGINS+AND+fixVersion+%3D+%22PHP-1.1%22
@Sebastian: how far could you go with SONARPLUGINS-1351 and SONARPLUGINS-1330? @Gabriele: will you participate in this sprint for the tickets that you assigned to you? (SONARPLUGINS-1530 & SONARPLUGINS-1507)
@both & others: do you see any other issues that should be included? do you want to push forward specific topics? any comments? Hope to hear from you guys!
Cheers! Best regards,
|
|
Hi
I have done some changes regarding SONARPLUGINS-1650, but I can't test now. Can anyone test trunk with a large project? For example SugarCRM... Gennadiy Litvinyuk 2012/5/21 Fabrice Bellingard <[hidden email]>
|
|
Thanks Gennadiy!
I put it on my todo list.
Best regards,
On Mon, May 21, 2012 at 11:00 PM, Gennadiy Litvinyuk <[hidden email]> wrote: Hi |
|
In reply to this post by Fabrice Bellingard-4
Hi guys, no news from Sebastian nor Gabriele? Should I consider that you won't be able to participate in this version 1.1 sprint? @Gennadiy: thanks for your fix on SONARPLUGINS-1650, I've successfully analysed SugarCRM (without PHPCodeSniffer or PHPMD though, as it would take too much time).
Best regards,
On Mon, May 21, 2012 at 4:12 PM, Fabrice Bellingard <[hidden email]> wrote:
|
|
Hi people,
Sorry for not answering before. Indeed I think I'll not be able to deeply participate for this round. I'll have more time for Sonar in July.
Good luck for this sprint! Gabriele
On Tue, May 29, 2012 at 12:30 PM, Fabrice Bellingard <[hidden email]> wrote:
Gabriele Santini Consultant - Architecte Logiciel 12, rue du Petit Beaubourg 94100 Saint Maur des Fossés
+33 6 12 83 43 97 |
|
In reply to this post by Fabrice Bellingard-4
Sorry Fabrice, I thought I gave you an update, although I found no time so far to progress stuff further.
So, next week I am in Paris with my Software metrics talk at PHP Forum conference. So I have last few days to prepare. In the mean time I am preparing for SCJA certification. I think within 2 weeks I should be back on track. SONARPLUGINS-1330 - original problem got fixed - this was this issue with missing default constructors SONARPLUGINS-1351 - slowly cruising through, implemented gathering some basic metrics from the new file format, currently testing. Depending when you plan 1.1 to go out it might not be finished, although I am developing it in a way that won't affect current functionality. I have found a few issues, but need to investigate further to give you some constructive feedback. Regards On 29 May 2012, at 11:30, Fabrice Bellingard wrote:
+------ | Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
|
Hi Sebastian,
thanks for the update! Well, I'd like to freeze the developments and launch the vote by the end of June, so that we can release version 1.1 in early July. So if you are back on track within 2 weeks, I think you've got time to finish without any problem. And feel free to keep us posted when you get back on those tickets.
Good luck for you talk in Paris and your certification! Best regards,
On Wed, May 30, 2012 at 10:19 AM, Sebastian Marek <[hidden email]> wrote:
|
|
In reply to this post by Sebastian Marek-2
Hi Sebastian!
I'm currently making some tests on the PHP plugin as I'd like to launch the vote within a couple of days. Can you give me an update on the issues you are working on, to know if these will be included in this release or the next one?
For the other issues that you have found, feel free to directly create JIRA tickets - as you're a member of the PHP team. @Gabriele: I guess you haven't had the time to work on the issues that you assigned to yourself, so I leave them planned for version 1.2.
Best regards,
On Wed, May 30, 2012 at 10:19 AM, Sebastian Marek <[hidden email]> wrote:
|
|
Fabrice,
SONARPLUGINS-1330 - now closed, as this has been fixed in SONARPLUGINS-1711. SONARPLUGINS-1351 - now finished, although I have a few questions/issues: 1. How to record metrics for multiple classes in a one file. Please see https://github.com/SonarCommunity/sonar-php/blob/master/sonar-php-plugin/src/main/java/org/sonar/plugins/php/phpdepend/PhpDependSummaryReportParser.java#L97 Not really happy with that. I am sure it is possible in Java as well. How do you approach this problem? 2. Since support for phpunit-xml is now deprecated, is it possible to mark an option in Sonar as deprecated? Like in UI, and the CLI when you run analysis? 3. Have you guys finally solved the problem with having multiple files with the same name in an analysed project? 4. Have you seen my post from some time ago? http://sonar.15.n6.nabble.com/sonar-dev-Comparing-and-asserting-measures-td4999616.html At the end I went for https://github.com/SonarCommunity/sonar-php/blob/master/sonar-php-plugin/src/test/java/org/sonar/plugins/php/HasComplexityDistribution.java but I am not entirely happy with this approach. I need to perform more testing on that, since I committed it last night, but the base functionality is there. I apologise for some of the question are probably basic java programming practices, but I hope you understand since I don't have a lot of experience in Java, and it is a learning curve for me. I appreciate all the feedback and help. Regards On 8 Jul 2012, at 14:04, Fabrice Bellingard wrote: Hi Sebastian! | Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
|
On Tue, Jul 10, 2012 at 9:51 AM, Sebastian Marek <[hidden email]> wrote:
Seen it, great.
This is actually not possible to have multiple measures for a specific metric on a single file. That's why you have this comment there.
In Java, there can be only 1 outer public class for a given file (and names must match), so metrics like DIT are recorded for this given class (even if there are inner classes).
Yes, in the CLI, you should log a warning message each time you see that this property is used. In the UI, you can enhance the property description to warn users about it.
If you want, I'll do both.
No, this is still an open issue on Sonar side (https://jira.codehaus.org/browse/SONAR-3024).
I'll have a look at it and will tell you.
No problem Sebastian, we do appreciate your participation in the PHP dev community :-)
|
|
On 10 Jul 2012, at 09:09, Fabrice Bellingard wrote:
Are there any plans to change it? It might be a bit problematic for PHP project. And don't get me wrong, I consider it to be a bad practise to have more then a one public class in a file, but it is still a common practise in PHP projects, especially legacy ones.
No problem, just did it.
Out of interest, does it affect other languages as well, including Java? I though you could have the same file names and class names as long as they are in different packages... Regards +------
| Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
|
On Tue, Jul 10, 2012 at 10:01 PM, Sebastian Marek <[hidden email]> wrote:
I don't think this will change (not even sure that we have an open ticket for that). On my side, I don't consider this as really problematic as the DIT is the only metric (IIRC) that we can't properly store because of this limitation (we don't have other class-related metrics). And IMO DIT is definitely not the most important metric out there.
Yes, in Java, we can have the same file names and class names as long as they are in different packages... because every Java IDE forces you to match packages with folder structure. This means that when you have "foo.MyClass" and "bar.myClass", they are located in 2 different folders within the root source directory (the first one in "foo" and the second one in "bar"). So 2 same file names and class names in different packages actually match 2 different file paths.
And as in Sonar, the relevant part of a file key is its path relative to the root source directory, this is not trivial to make it possible to have 2 files with the same relative path and the same name.
|
|
In reply to this post by Sebastian Marek-2
Hi Sebastian,
I'm making some tests with the new summary-xml parser, and the results I get are different from the ones I have with phpunit-xml format. For instance, when analysing the PHP Code Sniffer project using summary-xml, the results give me:
Have you experienced the same differences? Is it because the summary-xml format is more precise than the other one?
I tried to find where the difference lies, but on such a big project this is not possible to compare the raw results as the formats are different (and I don't get difference on simple and small projects). Best regards,
On Tue, Jul 10, 2012 at 9:51 AM, Sebastian Marek <[hidden email]> wrote:
|
|
Hello Fabrice,
I am aware of these differences. I know some of them are expected, since with the new report for example I am using ccn2 metric to report on complexity instead ccn. But these differences in number of lines, classes and methods do worry me. I will hopefully be able to have a look at these tonight. Regards On 11 Jul 2012, at 10:51, Fabrice Bellingard wrote: Hi Sebastian, +------
| Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
|
OK, fine. Here's the config I'm using for PHPCodeSniffer code for the sonar analysis (so that you can have the same as mine):
The differences are not big, but it's worth investigating.
In any case, this won't stop the release as the phpunit-xml format is still the default one. Talk to you tomorrow, Best regards,
On Thu, Jul 12, 2012 at 11:26 AM, Sebastian Marek <[hidden email]> wrote:
|
|
Fabrice,
I did compare the results, and as of now I think these are differences between the reports phpunit-xml format: Number of classes: 381 Number of methods: 950 Additional entries on top of what is in summary report: file '/Volumes/git/tools/PHP_CodeSniffer/CodeSniffer/CommentParser/DocElement.php' * PHP_CodeSniffer_CommentParser_DocElement - interface (8 methods, 105 loc) file '/Volumes/git/tools/PHP_CodeSniffer/CodeSniffer/MultiFileSniff.php' * PHP_CodeSniffer_MultiFileSniff - interface (1 method, 48 loc) file '/Volumes/git/tools/PHP_CodeSniffer/CodeSniffer/Report.php' * PHP_CodeSniffer_Report - interface (1 method, 55 loc) file '/Volumes/git/tools/PHP_CodeSniffer/CodeSniffer/Sniff.php' * PHP_CodeSniffer_Sniff - interface (2 methods, 94 loc) summary-xml format: Number of classes: 377 Number of methods: 938 That basically means that phpunit xml report takes into account interfaces (and reports them as classes) while summary-xml don't. Previous versions of PHP Depend actually are buggier and include in phpunit xml file things that don't actually exists! Same thing is about number of methods and lines of code (the difference is regarding the methods and lines of code belonging to the interfaces that are not included in summary xml report) Now I wonder how these interfaces should be really reported... How is it in JAVA? Are they treated as classes? Or ignored? Regards On 12 Jul 2012, at 10:54, Fabrice Bellingard wrote: OK, fine. Here's the config I'm using for PHPCodeSniffer code for the sonar analysis (so that you can have the same as mine): | Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
|
On Fri, Jul 13, 2012 at 12:01 AM, Sebastian Marek <[hidden email]> wrote:
OK, so if I understand correctly, for most metrics summary-xml gives better result, but the only drawback is that it does report on interfaces. Well, there's nothing we can do on the plugin's side, right? (maybe just fill a bug request on PHPDepend) So I suggest that this is something that we document on the Wiki. And in this case, I think you can resolve your ticket and I'll launch the vote. WDYT?
In Java (and in C# also), interfaces are treated like classes.
|
|
Fabrice,
summary-xml report doesn't include interfaces details. phpunit-xml does. summary-xml report with a different metric - NOI - but it's only a number. And at the moment PHP plugin doesn't use it. I'll talk to Manual Pichler and see whether he is planning including interfaces details into the report. Ta On 13 Jul 2012, at 07:56, Fabrice Bellingard wrote:
+------
| Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
|
OK, so what we can do is to release the plugin as it currently is, and make sure that when phpunit-xml is deprecated within the next release(s), interfaces are properly handled through the summary-xml report type.
If you agree, I'll resolve your ticket with this comment, and will launch the vote. Best regards,
On Fri, Jul 13, 2012 at 10:10 AM, Sebastian Marek <[hidden email]> wrote:
|
|
Fabrice,
I am fine with. Let's go for it. Regards On 13 Jul 2012, at 10:37, Fabrice Bellingard wrote: OK, so what we can do is to release the plugin as it currently is, and make sure that when phpunit-xml is deprecated within the next release(s), interfaces are properly handled through the summary-xml report type. +------
| Sebastian Marek Broadband Solutions for | Software Architect Home & Business @ | Plusnet www.plus.net | | Registered Office: The Balance, 2 Pinfold Street, Sheffield, S1 2GU | Registered in England no: 3279013 | + ----- PlusNet - The smarter way to broadband ---------| |
| Powered by Nabble | Edit this page |
