ASP.NET MVC Now Accepting Pull Requests

code, open source, asp.net, asp.net mvc 0 comments suggest edit

Changing a big organizations is a slow endeavor. But when people are passionate and persistent, change does happen.

Three years ago, the ASP.NET MVC source code was released under an open source license. But at the time, the team could not accept any code contributions. In my blog post talking about that release, I said the following (emphasis added):

Personally (and this is totally my own opinion), I’d like to reach the point where we could accept patches. There are many hurdles in the way, but if you went back in time several years and told people that Microsoft would release several open source projects (Ajax Control Toolkit, MEF, DLR, IronPython and IronRuby, etc….) you’d have been laughed back to the present.Perhaps if we could travel to the future a few years, we’ll see a completely different landscape from today.

Well my friends, we have travelled to the future! Albeit slowly, one day at a time.

As everyone and their mother knows by now, yesterday Scott Guthrie announced that the entire ASP.NET MVC stack is being released under an open source license (Apache v2) and will be developed under an open and collaborative model:

  • ASP.NET MVC 4
  • ASP.NET Web API
  • ASP.NET Web Pages with Razor Syntax

Note that ASP.NET MVC and Web API have been open source for a long time now. The change that Scott announced is that ASP.NET Web Pages and Razor, which until now was not open source, will also be released under an open source license.

Additionally, the entire stack of products will be developed in the open in a Git repository in CodePlex and the team will accept external contributions. This is indeed exciting news!

Hard Work

It’s easy to underestimate the hard work that the ASP.NET MVC team and Web API team did to pull this off. In the middle of an aggressive schedule, they had to completely re-work their build systems, workflow, etc… to move to a new source control system and host. Not to mention integrate two different teams and products together into a single team and product. It’s a real testament to the quality people that work on this stack that this happened so quickly!

I also want to take a moment and credit the lawyers, who are often vilified, for their work in making this happen.

One of my favorite bits of wisdom Scott Guthrie taught me is that the lawyers’ job is to protect the company and reduce risk. If lawyers had their way, we wouldn’t do anything because that’s the safest choice.

But it turns out that the biggest threat to a company’s long term well-being is doing nothing. Or being paralyzed by fear. And fortunately, there are some lawyers at Microsoft who get that. And rather than looking for reasons to say NO, they looked for reasons to say YES! And looked for ways to convince their colleagues.

I spent a lot of time with these lawyers poring over tons of legal documents and such. Learning more about copyright and patent law than I ever wanted to. But united with a goal of making this happen.

These are the type of lawyers you want to work with.

Submitting Contributions

For those of you new to open source, keep in mind that this doesn’t mean open season on contributing to the project. Your chances of having a contribution accepted are only slightly better than before.

Like any good open source project, I expect submissions to be reviewed carefully. To increase the odds of your pull request being accepted, don’t submit unsolicited requests. Read the contributor guidelines (I was happy to see their similarity to theNuGet guidelines) first and start a discussion about the feature. It’s not that an unsolicited pull request won’t ever be accepted, but the more that you’re communicating with the team, the more likely it will be.

Although their guidelines don’t state this, I highly recommend you do your work in a feature branch. That way it’s very easy to pull upstream changes into your local master branch without disturbing your feature work.

Many kudos to the ASP.NET team for this great step forward, as well as to the CodePlex team for adding Git support. I think Git has a bright future for .NET and Windows developers.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.

Comments

avatar

17 responses

  1. Avatar for Steve Williams
    Steve Williams March 29th, 2012

    I'm hoping this is a movement that will spread to other teams at Microsoft.

  2. Avatar for Giscard
    Giscard March 29th, 2012

    Over the past few months, as I've read your posts and tweets I kept being impressed at how much you knew about open source licenses and OSS. Now it makes sense why that is :) Congrats to MS and to you for the part you played in making this happen.

  3. Avatar for Prashant
    Prashant March 29th, 2012

    LOLed at "As everyone and their mother knows by now", and it's very true.

  4. Avatar for Jay Zeng
    Jay Zeng March 29th, 2012

    Glad to see Microsoft made such a move. Definitely a plus.
    Why not move over to github? PHP and most other major open source projects have moved over to github.

  5. Avatar for Anton
    Anton March 29th, 2012

    Now we just need some decent tools to work with git on visual studio :)

  6. Avatar for James Manning
    James Manning March 29th, 2012

    yeah, i have to admit that using git as your DVCS but *not* using github doesn't make much sense from a technical perspective (at least in my experience). Other than appeasing other teams or NIH, it doesn't make much sense.
    Of course, if codeplex can let teams opt-in to (automated, not requiring setting up your own hooks) having bidirectional syncing with github, then it won't matter *quite* as much, but I really don't 'git' it (har har).
    Phil, thoughts? Oh, and has someone already forked it over to a project on github by now? :)

  7. Avatar for sean mortazavi
    sean mortazavi March 29th, 2012


    nice!
    note that the http://pytools.codeplex.com from microsoft, which turns VS into a full fledged Python development environment is also open source (apache 2.0) and has been taking contributions since its launch last march. it's nice to the rudder moving...

  8. Avatar for Mike
    Mike March 29th, 2012

    Don't worry about the commits, by choosing git Microsoft has ensured they won't get too much commits. I still hope they will wake up and switch to mercurial. It does exactly the same, yet is much easier to understand and supported way better on Windows.

  9. Avatar for Ghidello
    Ghidello March 29th, 2012

    I guess that moving to OSS was the best way to keep Haaked in the MVC loop.. :)

  10. Avatar for Justin
    Justin March 29th, 2012

    This is great news! Hopefully this will help show opponents of Mono that the fear of MS lawsuits is unfounded.

  11. Avatar for Konstantin Tarkus
    Konstantin Tarkus March 29th, 2012

    Good move. I believe it's gonna be beneficial for both Microsoft and the community around the ASP.NET MVC.

  12. Avatar for Diego Mijelshon
    Diego Mijelshon March 29th, 2012

    I really like the direction MS is following with this.
    There are still some rough edges, though. aspnetwebstack.codeplex.com/.../2029 is a good example of that.
    While Marcin has good intentions, and he was able to recover with humor from the criticism, the whole Contributor License Agreement thing scores a 10 in the annoying scale.
    I'm not saying I don't _understand_ the reasons for this; just that it gets in the way of community contributions.

  13. Avatar for Rafael Teixeira
    Rafael Teixeira March 29th, 2012

    The git repo link is still returning 404:
    https://git01.codeplex.com/aspnetwebstack.git

  14. Avatar for David Nelson
    David Nelson March 29th, 2012

    @James Manning
    "i have to admit that using git as your DVCS but *not* using github doesn't make much sense from a technical perspective"
    I understand this reaction, but look at it another way: having a project with such an enormous user base using its Git integration will (hopefully) push CodePlex to improve its Git tools and usability, and also (again hopefully) its overall user experience. That would in turn put pressure on Phil and GH to continue improving. Having more players competing at the top is good for everyone.

  15. Avatar for James Manning
    James Manning March 29th, 2012

    @David
    Oh, I get the pitch, but it's just adding friction that doesn't need to be there.
    IMHO it's also the exact opposite philosophy as what MVC as a project already did in the past - instead of continuing to 'compete' and reinvent the wheel, they embraced what the community had already done with jQuery even at the 'expense' of Microsoft-Ajax. It was the better technical decision, and the legion of MVC developers (and more importantly, the users of their sites) benefited from that good technical decision.
    Now we're looking at CodePlex adding Git support and ostensibly trying to compete with github.
    As a developer using MVC and as a user of sites using MVC (for instance, StackOverflow), I'm very selfishly interested in making sure that those willing and able to make positive contributions to MVC have the least amount of friction in doing so.
    Picking CodePlex with its new git support is clearly not the better technical decision *for the project*. Is it better for CodePlex? Sure. Is it potentially better in the long term for github and its users as competition? Perhaps, but that's an existing space with others competing already (bitbucket, code.google, sourceforge, etc) so it's not like github is completely lacking competition in the first place. :)
    Phrased differently, if the project had picked github and been announced as up and going on github, it seems reasonable to think that they'd have more and potentially better contributions, at least in the short term.
    Perhaps I'm wrong and people are so interested in contributing to the project that the added friction won't matter at all, but IMHO open source projects need to focus on dropping the friction for contribution to as low a bar as possible (and acceptable for things like legal teams worried about copyright assignment), and it just doesn't feel like that's what happened here.
    My $.02 I guess :)

  16. Avatar for Kevin Ortman
    Kevin Ortman March 30th, 2012

    Simply beautiful. I <3 MS!

  17. Avatar for Chris
    Chris April 19th, 2012

    As the ASP.NET Codeplex site is using Git, does this mean the Microsoft team are using Git internally? Seems a bit strange when the rest of Microsoft are using TFS!