Update: Allthough I still use it (version 1.5.0, not released) NPanday has been retired from Apache Incubator.
It has been a while since the last release now. 1.2.1 was released at Codeplex in September 2010. Late last year we moved the project over to Apache, where we now wait to grow from incubation top-level Apache project.
Now we are pleased to announce our first official release of NPanday under the Apache umbrella!
Info: This post supersedes my post about the withdrawn 1.3-incubating release.
What is NPanday?
NPanday is a tool for build and release management. It brings Maven to .NET (and Mono). It offers a set of plugins to build and test projects, and it defines all the necessary packaging types for deploying and resolving .NET artifacts.
Apache Maven comes with a great infrastructure for dependency management, artifact transport, artifact repositories, release flows with scm-integration, and much more. If you don’t know Maven, go read here. Maven is great!
There is also a Visual Studio 2005/2008/2010 Add-in for English Visual Studio installations.
Why NPanday, now there is NuGet
Wrong question. Competition is great. Sad though, that at least some of the originators for NuGet didn’t even know about Maven and NPanday. NPanday has been around long before NuGet was initialized.
And Maven is an ecosystem grown over almost 10 years. It has much more to offer than auto-download of dependencies. Still I think we need to integrate the dependency-resolving and deployment part with NuGet and NuGet-gallery (See future plans).
What is new in this release?
NPanday now supports .NET 4.0 and Visual Studio 2010. There has also been major internal improvements. The PAB and UAC directories where removed. Now NPanday uses a clean maven local repository. This also removed the necessity for custom additions to the install and deploy phases – which where duplications of the corresponding maven plugins.
In total we resolved 63 issues including many general fixes. Fixes I worked on:
- NPanday ran all tools from %PATH% instead of the configured Framework. Now the complicated %PATH% setup is not necessary anymore, because NPanday detects installed SDKs and uses the binaries with absolute paths. You’ll only need to have NUnit on the PATH for executing tests.
This also included:
- Better detection of installed SDKs.
- Better handling for executing binaries and projects that contain whitespaces in their path.
- The compile plug-in did not bind concrete versions of other NPanday plugins, when registering them in the lifecycles. In many cases it was necessary to specify all pug-in’s versions explicitly in a project’s pom. But now, all further plugins are bound to the current version of the compile plug-in in use.
- Improved Documentation
- Better committer experience
- MVN 3-Support
- Targeting .NET 3.5 without having Compact Framework installed
- Better exceptions (exposing root causes many places they previously where hidden, removed silent catches)
For more, read the full release notes.
What are the future plans?
On short notice we will release 1.4.1-incubating, containing 14 more issues.
At the same time we are working on version 2.0, which is a huge internal change. NPanday uses a internal RDF database where it keeps additional information for artifacts and depsendencies. This is obsolete, but lots of work to remove.
We also want to lead NPanday to more .NET-like conventions for directory structures i.e., while still maintaining the Maven-influenced layout. Of course we also try to improve stability, ease of use and documentation.
My agenda for NPanday:
- Integrate with NuGet and NuGet Gallery (nuget.org)
- Support for other test frameworks (MSTest, xUnit, …) through Gallio Test
- Support for localized Satelite Assemblies (Globalization, Multi-language) (Which enables German VS support for the Add-in)
We are 4-5 active committers from which 2 work full-time on NPanday as of today. We would really like to get more committers involved. Find out on how to develop NPanday in the Get Involved Guide.
Where do I get it?
You’ll find everything you need here: NPanday – NPanday Overview
Downloads: NPanday – Download
Current Docs: NPanday – Documentation