MEF going MS-PL, the little engine that could.


MEF is going MS-PL!!!

Several weeks ago, we shipped our first drop of MEF on CodePlex. The source license for that drop was MS-LPL or the Microsoft Limited Permissive License. This license enables the source to be freely used on the Windows Platform.  Obviously, we don’t ship everything under MS-PL. In the case of MEF, it was our long-term plan because it made sense for us to do so, especially because it had the potential for universal appeal, including for cross-platform use.  Shipping MS-LPL was the easiest way for us to quickly get MEF out the door as we worked through some details.

Once we shipped we heard a bunch of feedback from the .NET community, including from Miguel De Icaza, founder of Mono. The crux of the feedback was that they wanted MEF licensed under an OSI-approved license, such as the MS-PL.  We have listened to the community feedback and are accelerating our efforts. Thanks for caring!

When / How?

It's already done! As a matter of fact if you check CodePlex, you'll see we're already there, and have released new source. There are two caveats to this move.

  • There is a piece of code that MEF currently depends on which we are not planning to ship as part of MEF's official release in the framework. For the current drop we have ripped this source into a separate System.ComponentModel.StructuredValues.dll which the new MEF source references and which is still under the MS-LPL license. The rest of the source that references the dll (which is 99% of MEF) is now MS-PL.
  • In order to put the new license in place, we've needed to purge the old releases and source. This is because Codeplex projects can't have source drops with 2 different licenses simultaneously.  Fortunately you can have one release that has 2 licenses as this one does. :-)  - Special thanks to Sara Ford and Pete Coupland for their last-minute after-hours fire-fighting jedi skills to get the purge done and the license change so we could get out the door.

We are doing this interim drop with the dll as a stop-gap measure. In the next full drop, which will be in about 3 to 4 weeks,  this dll dependency will be removed from MEF completely and the entire drop will be MS-PL.

Why not wait?

We could have waited and not done this interim drop. That would have been the easiest, and we would have had less explaining to do ;-) We chose not to wait based on your feedback. We want you to know that we heard you and are doing something about it. We want to show you sooner rather than later that we mean business.

What does all this mean?

It means you can grab MEF's source and use it on whichever platform you like!

If you take the source you are also free to fork it. MEF ships in the .NET Framework so we are going to be super responsive to customer asks. We hope that forking is not needed however it’s nice to know that it’s an option if necessary.

Go get it here: