Working full-time with getting Nancy running on CoreCLR
For the past three weeks I have been living the dream - full-time development of Nancy, while still picking up a salary. Not long after I wrote my blog post about "Support the development of Nancy financially" I was contacted by a company, that are invested in Nancy and wanted to discuss a potential win-win scenario.
A couple of conference calls later and the deal was signed for me to work, full-time, on fast-tracking our plans to make Nancy run on the CoreCLR. This has always been a goal of ours, but we have been holding back on it because it has been a very moving target and there have been plenty of other fish in the sea to focus on.
Building Nancy on a contract
So what does this mean? In the bigger picture, very little has changed. Everything is still happening in the open, following the same procedures as we have always done.
What this means is:
- They are not making any claims to the code that is produced during the contract
- We are not obligated to make any modifications to Nancy, that we otherwise would not have made, to facilitate their business requirements. If we feel something does not align with the Nancy ethos then it simply will not happen
- All produced code is sent in as pull-requests and will go through the same scrutiny as always
In short, nothing has changed other than the fact that a lot more time is being put towards working on Nancy.
Making Nancy run on the CoreCLR
Work is already well on the way and it is happening on a separate coreclr branch (if you try and access this branch and it does no longer exist, chances are that enough time has passed that the work is done and we've merged it back into master
) and we will happily accept pull-requests as usual.
From an API point of view we are quite compatible with the CoreCLR and we have been using very few APIs which are no longer available on the new CLR. Most of the removed APIs have established migration paths which are backwards compatible with the full-framework.
We are also taking the opportunity to change some concepts in Nancy and they will be part of the upcoming 2.0-alpha
release that we are planning. Part of this has also been to make use of the new project.json
based project system and on master
we now support both project.json
and the old csproj
-based formats.
What kind of impact has full-time work had?
Massive! Take a look for yourself
This is screenshot of the monthly pulse of the Nancy GitHub repository, at the time of writing. Even though we have closed nearly 1400 pull-requests, through out the lifetime of the project, closing 65 in a month is phenomenal.
I want to point out that the majority of these pull-requests are not old ones that we have finally gotten around to closing. It is, for the most part, new code that has been produced during this time.
Had this been done under normal circumstances we would have been looking at several months worth of work so, yes, financially supporting open-source project that you use can have a tremendous impact. Moving these projects forward means you get to reap the rewards, it is a win-win situation. Plain and simple.