We use CCNet as our integration server. We had been using v1.3. Our build scripts rev our product versioninfo files. Using either a build task or a publisher task in CCNet a vault COMMIT would randomly fail (I suspect due to a cache conflict between "actual vault" and the default CCNet Vault Source Control Block. Ok, you all have provided a "new and improved" source control block. We moved to that one and now we cannot use the <modificationWriter> CCNet element. Your new vaultplugin aborts immediately after getting the latest source. Your new vaultplugin does copious logging - normally. But alas, there is NO debug loggin information on this one.
The problem is remedied by removing the modificationWriter element. But we NEED the modificationWriter for our build. Anyway, after a TREMENDOUS amount of investigation which included using Lutz Roeder's Reflector to disassemble your vaultplugin and tediously comb the source I have found a flaw that prohibits your plugin from working properly when modificationWriter is use:
ccnet.fortressvault.plugin.FortressModification is marked Friend. That class derives from ThoughtWorks.CruiseControl.Core.Modification which is used by the modificationWriter. I believe CCNet is using reflection to discover/create instances of this type - which throws an access exception because it is not publicly creatable.
Boy it'd be nice if that were fixed
Er, actually I fixed it in my disassembled version - but when recompiled I cant seem to get a list of repositories. Anyway, SIMPLE fix. And it would unblock any folks out there whose build scripts try to parse the change log generated by CCNet!
regards,
t
CCNet vaultplugin and modificationWriter
Moderator: SourceGear
friend, internal... shared, static... (), []... C'mon cut me a LITTLE slack. Everybody knows multi-lingual folk toss elements from language A into a conversation spoken using language B
Now that I think about it... What does it matter? I deconstructed your assembly - taking it from MSIL back down into code. I could have chosen to reconstitute it into VB, C# or any other supported vernacular. Not my fault Reflector defaulted to VB. The point is I did 4 hours of debugging on SourceGear binaries that resulted in (what I'm fairly sure is) a neatly packaged solution to a rather large integration incompatibility in one of your products (albeit an somewhat unsupported/opensource product). I did not ask for accolades nor compensation. In fact I asked for Nothing (though it seems I should have asked for null) except the implementation of the fix. What DID I get? A terse response pointing out what for all intents and purposes, amounts to a spelling error. Nice. But at least we all now know that you wrote this plugin in C#.
Anyway, thank you for the prompt response. I eagerly await the next version.
pip pip,
t
Now that I think about it... What does it matter? I deconstructed your assembly - taking it from MSIL back down into code. I could have chosen to reconstitute it into VB, C# or any other supported vernacular. Not my fault Reflector defaulted to VB. The point is I did 4 hours of debugging on SourceGear binaries that resulted in (what I'm fairly sure is) a neatly packaged solution to a rather large integration incompatibility in one of your products (albeit an somewhat unsupported/opensource product). I did not ask for accolades nor compensation. In fact I asked for Nothing (though it seems I should have asked for null) except the implementation of the fix. What DID I get? A terse response pointing out what for all intents and purposes, amounts to a spelling error. Nice. But at least we all now know that you wrote this plugin in C#.
Anyway, thank you for the prompt response. I eagerly await the next version.
pip pip,
t
I wasn't berating you, by any means, I suppose the comment stemmed from my confusion as to how you got Friend anyway I'm sorry for the trouble we caused you by overlooking an obviously simple thing that cause you a big problem. I've made the change, if you'll send an email to shannon at sourcegear dot com I'd be happy to send you a link to a pre-release build as soon as I've got one.