It’s a long time since the last major FAKE release and the community has contributed a lot of really cool features. This is so awesome and I want to thank all the contributors. You rock.
Today, I’m happy to annouce the FAKE 2.2 release. This release is really a very big change, so if you are still on FAKE 1.x there might be some problems for the upgrade. Feel free to contact me if you need help.
What’s new?
There is really a lot happening in this release so I want to talk about some of the improvements. Let’s start with the change of the project stucture. We separated the projects into different nuget packages in order to deploy a much smaller FAKE.Core package. These are the packages we have on nuget.
- Fake.Deploy – allows to use FAKE scripts in deployment.
- Fake.Experimental – exciting new stuff we want to try out and might want to remove again.
- Fake.Gallio – contains the Gallio runner support.
- Fake.SQL – Contains tasks for SQL Server.
- Fake.Core – All the basic build features and FAKE.exe. If you only want the basic functionality then you would probably want to use this.
- FAKE – Contains all the stuff above. We keep this package for compatibility.
FAKE.Deploy
As you can see the FAKE.Deploy package is now finally released. A big thanks to Colin Bull and all the others that are working in this area. See this tutorial for more information.
FAKE.Boot
Another interesting sub project is FAKE.Boot by Anton Tayanovskyy. It’s also released today. Read more about it in Anton’s blog.
New tasks
Of course we have plenty new tasks:
- ReleaseNotes parser
- Dynamics NAV helper
- Support for MSTest and fixie
- Parallel NUnit task
- New AssemblyInfoFile task (the old one is marked as obsolete)
- Support for Octopus Deploy
- Support for MAGE
- Suppport for Xamarin’s xpkg format
- Many other new tasks
New globbing system
We (which means Colin 🙂 ) changed the implementation of the file scanning in FAKE. The original implementation was way to complicated and had tons of bugs in it. The new version is really elegant and only a fraction of the original code size. If you are interested in Functional programming check this out. It’s an interesting problem.
You will notice that a lot of the original file pattern functions are marked as obsolete. The file patterns implement IEnumerable, so you don’t need to use the “Scan” function any more.
What’s next?
I have some ideas how to reorganize the project and how to make it easier to debug build scripts. There are also ideas floating around how we can change the way FAKE bundles the FSI and but this still needs some time.
In the meantime we try to improve the existing tasks and continue to improve the documentation.
Up for grabs
The FAKE project joined the Up For Grabs project and I started to add tasks which are meant for new contributors to join the project. So if you want to get involved in FAKE then these might be interesting for you.
SemVer
I want to start using SemVer but I still have to figure out all the details of the new version number strategy. If someone has ideas about this then please let me know.
Monitoring external projects
Most of the tasks in FAKE are calling external tools. It’s very hard to test this properly so one approach is that FAKE is dogfooding the latest FAKE version to build itself. This ensures that most issues are catched very early. But of course FAKE’s own build script doesn’t use all the supported tasks.
In order to make FAKE more stable I want to monitor more external projects. So if you have an OSS project with a public CI build which is using FAKE then please let me know. I will try to maintain a list of these projects and will start to monitor if a new FAKE version would break these projects.
Go and grab the bits
Thanks again to all the 39 contributors – I thinks that’s an awesome number for an OSS Â project that’s written in F#.