Google Summer Of Code 2013¶
Read more about the Google Summer of Code here: http://www.google-melange.com/gsoc/homepage/google/gsoc2013
Background information about CCNet.¶
CruiseControl.NET is an Open Source Automated Continuous Integration server, implemented using the .NET Framework.
It's a project with a long history (it started somewhere around 2001). From the first commit in GIT you can see that it is a CVS to SVN conversion in 2003.
This means that a lot of different people have contributed to it and that the code base has grown organically.
You can find statistics on Ohloh
More general information can be found here : About
Developer information can be found here :
- General development information
- Getting the source
- Making Packages
- Making plugins for CCNet server or Dashboard
- Server Extensions
- Documentation
- Mono support
Breaking changes are not a real problem, but should be kept at a minimum as this requires users to update their configs / plugins.
If a new feature gives great benefit, a breaking change is not a problem, but a breaking change for getting text bold in the UI is not acceptable.
Project list¶
New Web Dashboard¶
Brief explanation: create a new WEB UI for CCNet adding CRUD actions on the build projects.
Expected results:Create a modern Web UI that also allows for project maintenance (adding, editing of build projects) while remaining the
current functionality :
- Overview of current build activity
- Viewing build artifacts (build results, nant output, nunit output, ...)
- security aspects (right to view a project, to force a build, to edit configuration, ...)
- plugin architecture must be kept (preferably the current one, if required another one is an option)
- the concept of packages
- the power of the pre-processor must be kept (templates)
- the dashboard visualizes several build servers.
you can see our buildserver here
We know that this is a lot of work, but if the ground work is done, we're also very happy.
Information about the technologies used must be provided.
Knowledge Prerequisite:
Good knowledge of C# and modern web development. Knowledge what a build server does is a plus.
Mentor:
Ruben Willems or Daniel Nauck
Mono compatibility¶
Brief explanation:
Make CCNet work on MONO out of the box.
Expected results:
Alter the code and possibly the build so that MONO compatibility is ensured
This could mean that projects have to be split (not a problem).
Knowledge Prerequisite:
Good knowledge of C# and MONO.
Mentor:
Daniel Nauck or Ruben Willems
Memory friendly XSLT parsing¶
Brief explanation:
Goal is to reduce/eliminate out-of-memory exceptions on xslt transforms.
Lesser CPU usage is also a possible gain here.
Expected results:
Transforming the large build artifacts with xslt should put lesser strain on the build server.
This problem occurs more frequently when there are a lot of builds at the same time.
For example : compile CCNet with msbuild on it's most verbose setting, and merge FXCop, Gendarme, NCover and NDepend results into it.
This gives a rather large result file, and every output in the dashboard / mailing loads this big result set.
Other ideas on fixing this problem are also welcome.
For the moment there is already the possibility on pre-processing the in-between xml files, making them smaller by eliminating unwanted information.
But this is not out-of-the-box as we can not predict what is unwanted information for each user.
Ditching xml is not an option since most tools output in XML.
Knowledge Prerequisite:
Knowledge of C# and XML/XSLT.
Mentor:
Daniel Nauck or Ruben Willems