Highlights of the CCNet 1.5 release

It has taken a lot of time, but here it finally is : the final release of 1.5

Keep in mind

  • The email publisher config is NOT compatible with 1.4.4 if you used the group element, check the new configuration in the documentation.
  • Some internal interfaces are changed, so 3rd party plugins could be broken

For people coming from the 1.4.4, and not following up on the CTP and RC, here's a small list of the new items :

Security

It is now possible to secure parts of CruiseControl.NET. Security is all based on the server-side, and is set in ccnet.config.
Currently it is possible to lock down the following items:

  • Viewing projects
  • Forcing/aborting builds
  • Starting/stopping projects
  • Viewing security settings
  • Modifying security settings
  • Viewing configuration
  • Changing configuration

Read Security for more info.

Client-side tables for the dashboard

The projects list in the web dashboard is now interactive - you can now sort on any column, even multi column sorting is possible.

A few new source control systems

RoboCopy, VSTS, Ftp, Git and Mercurial. The last 2 are DVCS, so an entire new kind of source control!

New Tasks/Publishers

A number of new tasks have been added:

  • Parallel Task and Sequential Task - allow running tasks in parallel or in sequence, or any combination of the two. While this can speed things up, be careful of using too much parallelism as each parallel task uses its own thread and there is only a limited thread pool.
  • NCover tasks - perform NCover analysis and reporting within CC.NET itself (no need to run it in a build script).
  • PowerShell Task - run a PowerShell script.
  • Conditional Publisher - this provides a standard way of only running publishers for certain build states.
  • CruiseServer Control Task - send control commands to a local or remote instance of CruiseControl.NET.
  • Ftp task - Publisher- upload / download files from a server

Dynamic Parameters

This allows to ask the user for input on forcing a build, so reducing the amount of CCNet projects.
eg.: ask which branch to build
See Dynamic Parameters for details.

Time Line chart

This shows the a build overview as a chart.

Translation of the webDashboard

Current translation involve French, German and Polish.

A duplicate finder

This task scans files for duplicates, just a task, no merging needed. Duplicate Finder Task

Bug fixes

  • LdapHelper should recursivly search directory
  • Preprocessor: xml node in scope
  • error in vsts ssc : System.Exception: TF30076: The server name {0} http://lowapp7:8080 provided does not correspond to a server URI that can be found.
  • Reporting failed task in CruiseControl.NET -
  • Build Parameter Dialog does not call ParameterBase.Convert()
  • Synergy integrates tasks even when build failes
  • VSTS Source Control Provider
  • Git Source Control does not detect merge commits
  • Refresh Status button on web dashboard - ViewProjectReport.aspx puts build into loop after forcing build
  • Cannot open CVS/Entries for reading
  • preprocessor broken : cb:include does not work anymore
  • How to remove the following message "[CCNet Server:WARN] Configuration does not have any version information - assuming the configuration is for version 1.5"
  • Perforce Auto Get Source should not fail silently
  • There should be posibility to set Activity column style base on actual status of project
  • Hide passwords in email build notifications
  • VSS "Version not found" error
  • Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed:
  • StarTeam provider fails to parse dates for modified files
  • MSBuild XMLLogger outputs wrong build duration
  • Schedule trigger does not build at specified time
  • Modification set always empty for MKS source control
  • Xml publisher is throwing an exception
  • State file not created
  • Vault source control exception during checking modification does not result in a build failure
  • MSBuild task truncates output
  • Date String Format Exception with MKS
  • Build fails even though msbuild return 0 errors
  • WebDashboard gives FileIOPermission exception when handling requests
  • CVS checkout fails with "Server attempted to update a file via an invalid pathname" error
  • Projects with + in title produce invalid URLs in web dashboard
  • Source Control Operation Failed: cvs rlog: cannot find module 'ccnet'
  • Triggers is not working fully
  • Modifications to files in subprojects in MKS 2005 are not detected.
  • CCNet triggers builds when there are no build triggers
  • Dashboard Refresh
  • Problem MSBuild XML Logger
  • If ForceBuild is turned off CCTray circumvents this setting
  • No modifications detected. Could not detect modification by MKS. Hence IfModificationExists of intervalTrigger doesn't work for MKS source control
  • Changes are not detected
  • ForceBuild should not wait for the period specified in modification delay
  • Windows service hangs when console succeeds.
  • Unable to create autobuilds using TFS plugin and CCNet (latest release)
  • Out of memory exception in ccnet.exe still causes ccnet.exe to crash
  • cc.net chokes on a non-existent publisher with an obscure Exortech.NetReflector.NetReflectorException error
  • Wrong merging of NUnit-results.xml with <![CDATA ....
  • Drop the P/Invoke for the TrayIcon support in CCTray App
  • VSTS Plugin
  • CCNet service throws error for notification node in Email publishers group node.
  • Team Foundation Server Plug-In no longer works with latest version of CCNet
  • sometimes a null reference exception is thrown on changing ccnet.config by a copying over a new one
  • Dashboard Administration: Fails to install packages 'Access to the path is denied'
  • CCService does not start when running as LOCALSYSTEM
  • Default packages done seem to be installed out the box.
  • SECURITY: LDAP user does not work.
  • RakeTask only a single entry in buildArgs is supported
  • CCTray is only connecting...
  • Build Parameters Window Property Grid
  • INTERNAL ERROR: Collection was modified; enumeration operation may not execute.
  • Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation has timed out.
  • MsBuild task shows error about missing file
  • showing task execution failed in log, but build is ok
  • breakers are no longer exposed into the message in the dashboard, or in the xmlstatusreport, breaking bvc2
  • cctray shows wrong servername when having multiple buildservers
  • Race condition prevents lockqueues from guarenteed correct locking
  • ConditionalPublisher does not execute all tasks
  • Only last MSBuild task merged
  • CCTRay Server Column displays wrong build server name
  • Package download does not download the file complete.
  • Merging the build logs of multiple nant tasks results in a log containing the log of the last nant task multiple times
  • checkpointOnSucces is not available for MKS source contol
  • Specifying a user defined log file for the nant task does not work any more
  • Package Publisher: Empty package when the property baseDirectory is a relative path.
  • cnet.exe -noerrorpause -config:check.config -validate -nologging not behaving correctly
  • CLONE -CCTray showing the wrong server when the same project is on multiple servers.
  • CCTray showing the wrong server when the same project is on multiple servers
  • Page refresh should not trigger a forced build
  • Getting Error when i am doing Email publisher using Cruise Control.net 1.5 version
  • Exception when click on the project name in the dashboard
  • ScheduleTrigger introduces infinite loop
  • Assembly Version Labeller does not increment on a triggered build
  • CC.NET under Linux/Ubuntu with Mono: <exec> task does not return
  • LDAP authentication does not works
  • HTML Report Linking
  • Wrong filename when downloading from PackageList
  • when getting source from svn with externals; cannot read cached credentials
  • Exception on showing the build graph in german language
  • Svn does not save LastRepositoryRevision if not triggered by modification
  • Out of memory exception on viewing build summaries
  • Entering an invalid URL gives a runtime error.
  • ProjectGrid.vm percentage status bar is broken since revision 6287
  • CVS Set HOME environment variable on windows
  • CVS cvs.exe cannot find ".cvspass"
  • CVS cvs.exe checkout: cannot open CVS/Entries for reading: No such file or directory
  • SvnSource doesn't update and write to state the LastChangeNumber.
  • environment of the calling process is passed to a new process created instead of the current environment
  • XmlReader exception loses all nunit logging
  • svn's tagOnSuccess behavior is broken if <trunkUrl> is missing
  • Configuration problem : entering empty sourcecontrol tag in ccnet.config results into crash iso reporting an error that is meaningfull
  • Grouping by date failes on Summarised Data (statistics) tab on german system
  • Build server is not sensitive to changes in svn
  • Unit test exceptions when building 1.4.2 source code on Vista x64
  • Changing X10 settings for CM11 controller causes Access to COM port was denied exception
  • Communication with some CM11 controllers times out.
  • Pages not found when project names contain spaces
  • fix designer of mainform of cctraylib
  • ExternalSourceControlHistoryParser.Parse() is not locale aware
  • Hide sensitive data / plugins / messages
  • project with a space in the name gives an error in the dashboard (ViewProjectReport) when viewed with IIS7 (Visa)
  • Dynamic Parameters: Prompt for input not displayed
  • Propertyinjection in MergeFilesTask does not work
  • RetrieveFile.aspx throws a Socket time out exception
  • Documentation problem with Email Publisher
  • Preprocessor include file change not reloading projects
  • NDepend 2.12.1 results transformation broken
  • Configuration File will not reload after auto update with Team Foundation Server
  • Build detailed statistics shows incorrent FxCop warnings/errors count
  • package publisher failes sometimes due to a lock
  • Exceptions not serialising
  • dashboard in ccnet 1.5 does not work anymore with firefox
  • Program files has greater security in newer versions of Windows and doesn't allow modifications
  • Gendarme Task dies because of a PathTooLongException in gendarme.exe
  • 1.5.0.4364: Unable to build email "XSL stylesheet file not found"
  • Git plugin repeats modifications in build log for each file
  • CCTray Balloon notification for broken build only shows Breakers, not which build is broken
  • Zips created by the package publisher can not be opened by Windows XP built in zip handling
  • After a fresh installation the Webdash does not work.
  • SECURITY: Logout functionality does not work.
  • SECURITY: Security blocks the Force Build Publisher
  • BUILD 1.5.0.4439: Server Error in '/ccnet' Application.
  • SECURITY (1.5.0.4439): Exception when trying to access project reports
  • NullReferenceException in CCValidator
  • EMAIL PUBLISHER: Attachement file remains locked after being sent.
  • Get the XmlFragmentWriter to work on Mono
  • Email Publishing error in CCNET v 1.5.0.6067
  • Crash when log file is big
  • (1.5.0.6092) Dynamic Parameters/Integration Properties - CCNetBuildDate & CCNetBuildTime incorrect.
  • Publishers don't clean target directory prior to copy
  • Build failure due to loss of network connection to VSS does not clear away when network is restored
  • Bug in XslReportBuildPlugin, Parameters collection is not loaded properly

Improvements

  • CCNET\-153 - better management when publishers are executed
  • CCNET\-398 - Subversion should check for modifications by revision number instead of by date.
  • CCNET\-452 - Improve Dashboard Project Grid Sorting
  • CCTray should allow definition of a default project
  • MsBuildTask: Read .NET Framework path from the registry by default
  • Authorised actions
  • API that will allow control remote File System from Dashboard.
  • RoboCopy source control system
  • Double clicking CCTray icon should toggle status window
  • <merge> task should support non-XML files cleanly
  • CCNET should support source control systems that have non-numeric change "numbers"
  • provide user name if forced build started by dashboard
  • CCTray should show Category in Detail view
  • Run CruiseControl.Net tests on mono (first Windows, then Linux)
  • "Source Control" code normalization
  • groups in the email publisher must be able to be set to multiple build types, like the modifiernotificationtype
  • move configuration of the xsl files used for the email publisher in the email publisher itself
  • update tests so that non english locals do not fail some tests
  • CCValidator must also support warnings, and not only exeptions to identify problems in the config
  • Make NAnt master build script platform independent
  • Implement messaging-type communications with the server
  • foresee overloaded method for processwarning and processerror in the validator, (string, args)
  • Dynamic Parameters: Suggest renaming range parameter.
  • Dynamic Parameters: Actual use of a retrieved value seems overly complex.
  • Package publisher should allow an output location
  • weird error when the / closing tag in the build publisher
  • urls should be case insensitive
  • Dynamic Parameters: Select Parameter when using <sourceFile> should update on every 'Force' build.
  • Add a new extension to allow throttling the total number of concurrent builds on a server
  • create an NCover task
  • Replace custom commadline arguments parsing code with Mono's Options.cs
  • add support for 3 light X10 systems.
  • speech enhancements cctray
  • refactor tasks to a common task base
  • null task should have a parameter for letting the build fail if desired
  • null source control should have settings for simulating failures in the different stages
  • add a LOT more debug logging :
  • add FTP publisher / task / source control
  • Implement support for getting process output line by line with an event from ProcessExecutor
  • Implement BuildProgressInformation support to Subversion Source Control Block
  • Implement BuildProgressInformation support to the Gendarme Task
  • Implement BuildProgressInformation support to the NAnt Task
  • Implement BuildProgressInformation support to the MSBuild Task
  • Implement BuildProgressInformation support to the BaseExecutableTask
  • Add support for "-listener" switch in NAnt task
  • Allow Dynamic Properties to be applied to Source Control Blocks
  • failed integration and exception during integration must be split in the email publisher
  • Implement BuildProgressInformation support to CVS Source Control Block
  • Implement BuildProgressInformation support to Mercurial Source Control Block
  • Exception thrown due to bad configuration is not indicative of such
  • Allow validation on triggers

New features

  • Forced builds - adding comment to build results
  • Subversion should use LastChangeNumber of previous build when checking for modifications
  • CCNET Security
  • Add user input to dashboard
  • CCTray should automatically recognise and add new projects on a connected server
  • Report which task failed through CCTray
  • Default Labeller should allow an initial build number, so you don't have to start at 1
  • It would be nice to be able to have a drive letter mapped in Service environment
  • Parallel Execution of Tasks
  • Add User Rights Management To CCTray
  • Mercurial support
  • Command line interface to CruiseControl.Net server
  • PowerShell Task
  • Build Status Breakdown
  • Implement a File Merge Task for binary files like images
  • Dynamic Parameters: Range Parameter to allow initialisation from a file.
  • Dynamic Parameters: addition of Boolean parameter (Check Box)
  • Dynamic Parameter: Range parameter should allow for return values that are not equal to the display name.
  • Implement support for Git source control system
  • Added Growl Notifications to CCTray
  • Updating from more than one source