Hans Dockter wrote:

On Jul 21, 2009, at 6:43 AM, Adam Murdoch wrote:

Hi,

I've just checked in a 'code-quality' plugin, which currently adds Checkstyle and CodeNarc tasks to Java and Groovy projects, respectively. My plan is that this plugin would later also add support for tools such as cobertura, PMD, and so on.

I have some questions about which conventions this plugin should follow. I've just made some stuff up, based on what I've done on various projects, but I have no idea if they are conventions or not. Please let me know if you have an opinion on these:

- Where should the config files for these tools live? Currently, the plugin expected to find them at $projectDir/config/checkstyle.xml and $projectDir/config/codenarc.xml.

With checkstyle you pretty often need additional configuration files. So may be $projectDir/config/checkstyle/checkstyle.xml might be a better choice. We might do it the same for codenarc. If more and more plugins need configuration files we might need to come up with some additional structure.


I think this make sense. I will change the default to config/$toolName/$configFileName


- Should we provide some default configuration for these tools? Maybe some named configuration sets?

Our future archetype plugin could either create empty templates or optionally preconfigured xml files.


I'm not that keen on solutions which rely on an archetype plugin being used. An archetype plugin feels to me like a work-around for over-complex initial setup. I think it would be much better if we choose good defaults and have sensible behaviour when things are not present.


- Should it be possible to ignore violations?

I think so.

(and why?)

Because some users want it :)


And why do they want it? I want to figure out if we need a consistent model for handling violations, and what that might be. I don't want to expose something that is different per-tool.

We have a few options:
1. Nothing other than what the tool provides via it's config file (eg checkstyle suppressions file)
2. An ignoreViolations flag on the task
3. A maxViolations property on the task

But they can disable this behavior already by setting the appropriate properties, can't they.

Not yet. The Checkstyle and Codenarc tasks don't have any settings which let you control this.


Adam


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to