On 15/11/2012, at 6:32 AM, Adam Murdoch wrote:

> 
> On 15/11/2012, at 10:06 AM, Marcin Erdmann wrote:
> 
>> Hi all, 
>> 
>> I've started working on some stuff based around the design spec 
>> @https://github.com/gradle/gradle/blob/master/design-docs/reporting.md 
> 
> Excellent.
> 
>> and have a few questions that don't seem to be covered in the spec. 
>> 
>> You can have a look at the code I managed to produce in my fork in 
>> reporting-improvements branch 
>> (https://github.com/erdi/gradle/tree/reporting-improvements). Basically it's 
>> just a sketch of the task with only inputs and outputs specified and without 
>> any implementation. The plan was to see how far I could get without any 
>> major conceptual problems. Obviously I plan to add tests to it when I'll 
>> find the answers to my questions. 
>> 
>> The following are the problems/questions I have: 
>> 
>> - Test task doesn't implement reporting so it won't be picked up by the 
>> plugin when collecting all the reports to be put in the build dashboard 
> 
> I forgot to put that in as a story. We'd need to either:
> 
> * Change Test to implement Reporting, or
> * Split out a separate TestReport task that implements Reporting, or
> * Have GenerateBuildDashboard task know about Test task type.
> 
>> 
>> - given the fact that GenerateBuildDashboard task should take a set of 
>> Report instances as input (as per design doc) it is impossible to generate 
>> any useful information in the build dashboard report about the reports apart 
>> from the name (which is usually html, xml or text) and path. It is 
>> impossible to link a report to a task that has generated the report.
> 
> Why do you want to link a report to a task? To get a better name for the 
> report? Or something else?

The viewer needs to understand what the report is. How else are you going to 
differentiate between the “test” and “integTest” reports?

>> Should we use Reporting instances as input to GenerateBuildDashboard task 
>> and add something like getName() method to the Reporting interface? Or 
>> should we assume that Reporting (probably should be called ReportingTask 
>> then) will only be implemented by tasks and get a meaningful name for the 
>> sections of build dashboard from the path of the task? 
>> 
>> - should all files from the enabled Reports passed as the input to 
>> GenerateBuildDashboard task be used as @InputFiles for that task? The 
>> obvious choice for outputs seems to be the build dashboard html file 
> 
> The contents of the files aren't really inputs to GenerateBuildDashboard. 
> It's the destination path that is the input. That is, if the check style 
> report is moved from build/reports/checkstyle.xml to 
> build/checkstyle/report.xml, then we need to regenerate the dashboard report. 
> But, if the contents of the check style report changes, then the dashboard 
> report doesn't need to change (at this stage). 
> 
>> 
>> - how should the public api of GenerateBuildDashboard task look like? Is 
>> something like that ok: 
>> 
>>     task generateMyDashboard(type: GenerateBuildDashboard) { 
>>         aggregate reportingInstance1, reportingInstance2, ... 
>>     } 
> 
> That looks fine.
> 
>> 
>> - what should be used to actually generate the html of the build dashboard? 
>> A templating engine, builder etc.? 
> 
> What would you like to use? It has to be fast, as this report, when enabled, 
> will be generated for pretty much every build.

I like the concept of http://code.google.com/p/jatl/. I don't know what the 
quality is like. I think this would be the sweet spot, a strongly typed builder.

I'm not keen on a template based solution.

-- 
Luke Daley
Principal Engineer, Gradleware 
http://gradleware.com


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

    http://xircles.codehaus.org/manage_email


Reply via email to