Scott Hanselman

Automating the tedious parts of open source on Azure

October 6, '14 Comments [12] Posted in Azure | Open Source
Sponsored By

Contributing to Open Source is a great way to get involved in community. Usually it's as simple as making your contribution, but when you start getting involved with larger projects at larger companies, legal gets involved. Projects need to have a "CLA" or Contributor License Agreement. For example, AngularJS has a form to fill out before sending a pull request. For individuals, it's a small form, but for companies, it's scanning, emailing, and/or faxing time.

As more and more of Azure goes open source with Azure SDK for .NET, PowerShell CmdLets, Mobile Services all on GitHub, as well as all the documentation available on GitHub as Markdown it needs to be easier to accept pull requests (PRs).

In fact, at the bottom of all the Azure Documentation is now a "Contribute to this article" where you can send PRs to help improve the docs or fix technical errors.

Contribute to Azure Articles

In order to make Contributing easier, the Azure folks made an Azure Pull Request Bot. It will automatically look at a PR, figure out if a contributor needs a CLA, setup the online form, even accept digital signatures and more! Even better, the way you start the bot's process is that you send a PR.

I'm going to submit a PR for Azure Documentation, specifically the article on Creating a Virtual Machine.

First, I'll fork the Azure Docs Repo from the GitHub site.

Forking a Repo

Next, I'll work on the article from my fork. I could do this locally, or on the GitHub site directly depending on the size of what I'm doing. The CLA only needs to be signed if you're changing more than about 15 lines.

Forking

The article on GitHub is here but I'll work on my fork here. It's Markdown, so I can either use an editor like MarkdownPad or edit online. I made a number of changes, some corrections, some additions to this article. Next I create a Pull Request.

Making a Pull Request

After making the pull request - instantly - the GitHub PR gets a comment from the Azure Pull Request Bot!

The Azure PR Bot

And the PR gets a label showing the status of my PR as requiring a CLA.

CLA Required

I click the link and can sign in with my GitHub account.

DocuSign at work

I fill out a quick form...

Who's my boss?

In a couple of minutes a verified email shows up from Docusign.

Signing the Document

I sign it, and I'm all set! The PR and CLA will get evaluated and merged. I'm hoping this process might be used by other teams at Microsoft as we continue to Open Source All The Things.


Sponsor: Big thanks to Octopus Deploy for sponsoring the feed this week. They are FANTASTIC. Truly, check it out, the NuGet team uses them. Using NuGet and powerful conventions, Octopus Deploy makes it easy to automate releases of ASP.NET applications and Windows Services. Say goodbye to remote desktop and start automating today!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb
Monday, 06 October 2014 19:06:52 UTC
This is great, I've always avoided contributing to MVC because the entire process of signing was just too long and complicated, this sounds like its going to massively reduce the barrier to entry on contributing.

Awesome stuff!
Monday, 06 October 2014 21:39:50 UTC
Thanks Phillip, we are hoping to roll this out everywhere if it works well. Definitely looking at ASP.NET ASAP. ;)
Scott Hanselman
Monday, 06 October 2014 23:48:12 UTC
@shanselman you said this:

> I sign it, and I'm all set!

Can you elaborate on exactly what you mean by 'I sign it'.

I thought you received an email (a verified email shows up from Docusign) .. so .. how do you 'sign' it? do you need a touch screen / tablet ? or can you use a mouse to 'sign' your name in some white box thingy?
Pure Krome
Tuesday, 07 October 2014 00:32:29 UTC
Pure Krome - It's an esig, so it can be a tablet, touchscreen, mouse, a digital signature, etc. They (Docusign) also capture your GeoLocation and bunch of other stuff, presumably in case something goes to court they can they say "we know all this about the 'person' who signed this.
Scott Hanselman
Tuesday, 07 October 2014 02:33:55 UTC
Awesome!

My (very small) contribution to the ASP vNext documentation went stale due to a process that was to long and winding for the company I'm currently working for.

This looks great!
Tuesday, 07 October 2014 09:05:07 UTC
@shanselman,
Wood be great to see how was it implemented our what API/comments are used.
Tuesday, 07 October 2014 09:06:09 UTC
Would, or :)
Tuesday, 07 October 2014 10:32:43 UTC
Not to ad for Dousing, but their API is awkward but reasonable, you do need to learn their 'objects', but you can be running automation like this fairly fast. Ive done integration for brokerages and they have a developer site, sandbox, etc.
Tuesday, 07 October 2014 10:33:33 UTC
Wow, Docusign , damn autocorrect
Wednesday, 08 October 2014 09:07:43 UTC
Hope GitHub can adopt this in a way that every open source projects there can opt-in a similar service. I believe most key open source projects already use a similar workflow but still in a more manual way. This automate solution looks fabulous!
Thursday, 09 October 2014 05:59:34 UTC
This is a great step! I was told by one of the Microsoft guys that I needed a CLA before my PRs could be accepted, so I went through the old way, of signing, scanning and all that stuff. Pain the backside, but never-the-less, I did it.

Unfortunately my PRs were then never even looked at! Even now on the Azure SDK for Ruby there are quite a few that have been sitting there for ages. It's a shame because in one case, there was a PR that added a feature which a Microsoft employee then re-implemented several months later!

Eventually I gave up, closed my PRs and now I just maintain my own fork. I've even had a couple of others contribute to my fork which is nice.

I really hope that more teams at Microsoft do begin see the value in community participation. Just hosting stuff on Github (or Codeplex, or Bitbucket etc) is an important step, but it's not enough. I know this will take time, and hopefully teams which do actively want contributions (such as the ones you mention in your post Scott) will help lead the way at Microsoft. I look forward to watching the situation improving :)
Timothy
Thursday, 09 October 2014 18:34:24 UTC
@shanselman
The link to https://getinvolved.com isn't returning anything.
Tim Cavanaugh
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.