14 May 2009

We needed to build a Sharepoint WSP file in TFS as part of our continuous integration process. Already using WSPBuilder interactively we just needed to get it into the team build and copied to the staging location.

WSPBuilder

Brian Farnhill discusses the process of building a WSP in TFS by first including it in the project file (summary by Alex Degaston). This pointed me in the right direction, but I really just wanted to build the WSP in the team build after check-in.

We just copied the basics from Brian's post, and hoped it would work, and amazingly, we had a WSP file. Frustratingly, the WSPBuilder will happily create a WSP file even if it finds nothing to put in it.

After some experimenting on the command line, it turns out you need to specify both SolutionPath and BinPath to get WSPBuilder to build successfully, using the team build property OutDir worked for this. Including the feature.xml and workflow.xml as content in the root of the project ensures they're in the output folder.

The default name for the WSP is the folder name, so to override this, use WSPName.

File drop

The easiest way to get the files out was to override BeforeDropBuild and put them in the OutDir. I'm using xcopy for this as it's easier to test on the command line (also, using the copy task would require (I think) further nesting the copy operation because of the order of item expansion). They're then ready for the team build to perform the drop to the staging location.

Finally

All this boils down to this two liner added to the TFSBuild.proj:

  <Target Name ="BeforeDropBuild" >

    <PropertyGroup>

      <WspDir>$(SolutionRoot)\Code\IL.SharePoint.Workflows\DeploymentFiles</WspDir>

    </PropertyGroup>

    <Exec Command='"C:\Program Files\WSPTools\WSPBuilderExtensions\WSPBuilder"

          -SolutionPath "$(OutDir)"

          -BinPath "$(OutDir)"

          -OutputPath "$(WspDir)"

          -WSPName IL.SharePoint.Workflows.wsp'

          />

    <Exec Command='xcopy /E /Y /I

          "$(WspDir)"

          "$(OutDir)DeploymentFiles"'

          />

  </Target>

Posted on Thursday, May 14, 2009 by campey

No comments

12 May 2009

Trawling through Microsoft.TeamFoundation.Build I found the flag for IncrementalGet. Not getting full sources every time has cut 40 seconds out of every build. This is particularly useful when debugging a build script.

Buck Hodges discusses IncrementalGet and IncrementalBuild and links to Martin Woodward's 30 Useful Team Build Properties. Not sure I'm ready for IncrementalBuild yet, I like having shiny new dll's.

This is what I added to my root level PropertyGroup just before DropLocation:

    <!-- INCREMENTAL GET

      Setting this flag will set:

      CleanCompilationOutputOnly: true

      SkipInitializeWorkspace: true

      ForceGet: false

      (Microsoft.TeamFoundation.Build Line:379)

    -->

    <IncrementalGet>true</IncrementalGet>

Posted on Tuesday, May 12, 2009 by campey

No comments

03 April 2009

Yay, today I finished the last stage of Bloons Tower Denfense III on hard. Hopefully this will cure the compulsion. Oh look, meeblings...

Posted on Friday, April 03, 2009 by campey

1 comment

01 October 2008

The only time I hit the Caps Lock key is by accident. Well, the only time I used to hit that key was by accident.

After sitting down for a little think, I decided it would be good to remap the key to Enter. With the help of US Netizen's Fix Caps Lock page, I was well on my way.

Adding the above key to HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout and rebooting gave me another Enter key. It adds a certain symmetry to the keyboard.

And it still gives me happy jollies every time I hit it on purpose. Synapse-creation ahoy!

Posted on Wednesday, October 01, 2008 by campey

No comments

02 September 2008

I've done very little poking around on gravitas in the last year, my SVN repo only saw commits in September last year and March. Recent changes:
  • Physics works well enough to set up orbits.
  • New models. (for the observant, the red planet is the ball from the dx samples)
XNA 2.0 might be part of the reason for stalling, I've been pondering the move to there.

Posted on Tuesday, September 02, 2008 by campey

No comments

18 August 2008

I've gotten off the starting block with implementing the message update JEP. The implementation has matured in the 2 years (!) since I drafted the JEP and it's become a lot simpler.

What I've done so far: use gajim's sent message history to select a message, then insert the replace element when retransmitted. The replace element is all that we need to correct typos.

The image also illustrates the elegant degrading as neither client supports the protocol. Yet.

Gajim tx done. Gajim rx and Psi tx/rx to come. And a shiny new XEP

Posted on Monday, August 18, 2008 by campey

No comments

05 September 2007

So I dug up the ol' gravitas solution and decided it was time to load a mesh in there. Coding4Fun again proved helpful. Unlike the very uninformative error messages from DirectX. With some playing about, I managed to get the sample heli.x to load and render in stark white.

Then I had to turn on the lights. (device.RenderState.Lighting = true; device.RenderState.Ambient = Color.White;)

For some reason my point list is now ignoring its colours and using the last one that heli did. Sheep.

Posted on Wednesday, September 05, 2007 by campey

No comments