Two months ago I started to use the RELEASE_NOTES.md files feature in FAKE to describe FAKE’s own changelog. It’s working pretty well with FSharp.Formatting and the whole process got much easier for me. One of the intersting side effects is that I didn’t use the develop branch any more. Pre-release packages can be pushed directly from master.
So in order to make it easier for new contributors I will follow standard git workflow and remove the develop branch completely. Please send your pull request directly to the master branch.
Today I released FAKE 2.12 with a lot of small bug fixes and improvements. The biggest feature is that we now use NancyFx for FAKE.Deploy. A big thanks to all of the 60 contributors.
- Add getDependencies to NugetHelper #373
- Add more F# friendly functions for IO.Path #374
- SourceLink support #345
- NancyFx instead of ASP.NET MVC for FAKE.Deploy #376 â big thanks to @MorganPersson
- Allows to execute processes as unit tests #379
- Allow to run MsTest test in isolation #367
- Fixed Nuget.packSymbols #366
- Fixed bug in SemVer parser #364
- New title property in Nuspec parameters #359
- Added option to disabled FAKE’s automatic process killing #357
- Better AppyVeyor integration #353, #345
- Added ability to define custom MSBuild loggers #352
- Fix for getting the branch name with Git >= 1.9 #351
- Added functions to write and delete from registry #350
- NUnit NoThread, Domain and StopOnError parameters #349
- Add support for VS2013 MSTest #346
- Lots of small fixes
If you new to FAKE you should read the getting started guide or clone the F# ProjectScaffold.
Go and grab the bits
Feel free to contact me if you need help for the upgrade.
I’m happy to annouce the new release of theÂ FSharpx.Collections package on nuget.
Most important changes:
Please tell me if it works for you.
The current version of FAKE contains two tasks for Xamarins xpkg format. These are already used in Daniel Nauckâs Portable.Licensing project (read more about this project).
Thank you Daniel for this contribution.
, F-sharp Make
Today I released two new AssemblyInfo tasks for FAKE and marked the old one as obsolete. One advantage of the new tasks is that they only generate the specified attributes and no more. There are already a lot of predefined attributes but itâs also possible to specify new ones. Here is a small example:
, F-sharp Make
Jenkins is an extendable open source continuous integration server. In this blog post I show you how you can build FAKEâs Calculator sample with Jenkins. If you are familiar with Jenkins or Hudson then this should be straight forward.
Go to http://jenkins-ci.org/ and download/install Jenkins. In addition install the following plugins:
Create a new Task
Create a new âfree-styleâ task in Jenkins:
Use git as the Source Control Management tool and configure the repo as following:
Configure the build step to run FAKE from the command line:
And finally configure the post build actions:
Running the build
If everything is setup correctly, then you should be able to start the build from the project page:
The output should look similar to this:
, Continuous Integration
My friend Björn Rochel (@BjoernRochel) built a really cool generic model for using fakes and automocking on top of Machine.Specifications (or MSpec) called Machine.Fakes (or mfakes).
Today he released version 0.1.0.0 (get it from nuget.org) and I want to talk a bit about the build process. Björn and myself thought a tool called âMachine.Fakesâ should of course be built with a tool called âFAKE â F# Makeâ. In order to do so I had to fix some stuff in Fake which resulted in the new Fake version 18.104.22.168.
Here are some things I fixed:
- New task DeleteDirs allows to delete multiple directories.
- New parameter for NuGet task which allows to specify dependencies.
- Bundled with docu.exe compiled against .Net 4.0.
- Fixed docu calls to run with full filenames.
- Added targetplatform, target and log switches for ILMerge task.
- Added Git.Information.getLastTag() which gets the last git tag by calling git describe.
- Added Git.Information.getCurrentHash() which gets the last current sha1.
Machine.Fakes build setup
The build script for Machine.Fakes performs the following steps:
- It retrieves the version no. via GitHubs REST API
- It cleans all directories from old stuff
- It compiles the app and test projects
- It uses MSpec to test the application
- It merges StructureMap and StructureMap.AutoMocking into the app by using ILMerge
- It generates the XML documentation using the .NET 4.0 version of docu.exe
- It zips the app and the documentation files
- It builds and deploys a Nuget package with just Machine.Fakes
- It builds and deploys bundled Nuget packages in the following flavors:
Now you can start using this awesome project by calling:
After a very interesting talk by Alexander Groß at the ADC2011 about MSpec I started to play around with it. I really like the concepts and especially the Selenium support.
Today I released a new âFake â F# Makeâ version with initial support for machine.specifications (MSpec) and fixed some NuGet problems incl. support for automatic push to the http://nuget.org/ feed.
Using MSpec in Fake is pretty straight forward and nearly the same like the NUnit or xUnit task:
The following sample is taken from the NaturalSpec build and creates a NuGet package. It takes the AccessKey from the build params and pushes the new package to nuget.org. There are still some missing features but you can use them by manually editing the .nuspec file.
The corresponding .nuspec file looks like this:
, F-sharp Make