We've just upgraded from version 4.6.4 of Buildmaster to 4.7.3 and have encountered what appears to be numerous breaking changes that don't appear to be documented anywhere in change notes.
Mercurial extension failed to load after upgrading Buildmaster. We uninstalled the extension and re-added it only to find that there was an update we had never been notified about through the extensions page. Fortunately upgrading the extension fixed this issue.
Source control providers now apparently have a name by each repository and the name defaults to a blank string. This would be fine except for the fact that Buildmaster requires this to match the name of the local repository clone folder for each repository. We currently have 122 repositories configured through Buildmaster and this was a nightmare to hack the Buildmaster database in order to get basic build functionality restored again.
Repositories have moved from an HgRepositories directory to a SrcRepos directory. After we finally resolved Issue #2 we had to manually copy all the repository clones from the original directory to the new directory to get builds working again as they weren't being cloned in a timely manner.
Issue #4 (currently unresolved):
We now get a server error 500 whenever we try to clone our template application to create a new one. Looking through the event logs I can see this message:
Applications_CloneApplication195`The INSERT statement conflicted with the FOREIGN KEY constraint "FK__VariableDefinitions__Releases". The conflict occurred in database "BuildMaster", table "dbo.Releases".
I've looked through the affected stored procedure and have hacked a couple of select statements in to try and diagnose the problem.
Here is the statement throwing the exception:
--==[VariableDefinitions: Application Variables]==--
PRINT 'VariableDefinitions: Application variables...'
INSERT INTO [VariableDefinitions]
FROM [VariableDefinitions] VD
WHERE VD.[Application_Id] = @Application_Id
This is trying to insert Application_Id/Release_Number combinations that don't exist in the Releases table such that FK constraints are being violated. We have release 1.0.0, 1.0.1 etc for the template application, however the clone stored procedure only creates a release of 0.0.0 for the new application so this will never work.
We are currently in a state where rolling back to an earlier VM snapshot and losing data is probably our only option to get application creation functionality back. The whole upgrade has been problematic and has been made worse by the fact that we had little to no warning some of these breaking changes were being introduced.
Can you please put some more details into the change notes, especially highlighting breaking changes that may affect existing production systems.
Mercurial Extension Notes:
It would be nice to know what was going on in each version rather than just the fact a new version was released.
Buildmaster Extension Notes:
Gives an overview of bug fixes but there is no blaring warning that any of the changes would be breaking.