| [ Web Proxy ] |
| Viewing: https://opensource.microsoft.com/program/ | [Back] [Original] |
Our developers use more than 200,000 open source components every month while building products and services.
Relentless automation, engineering system innovation, and making it easy for our developers to "fall into the pit of success" have been key to using open source at enterprise-scale.
Here are just a few of the ways that we've built a strong open source program. We're sharing our process in hopes it helps others be more successful in open source too.
The Microsoft open source program is managed by the Open Source Programs Office in partnership with expert teams across Microsoft. A community of open source experts, open source leaders, and others help curate guidance and policy.
The 1ES team at Microsoft has made using, releasing and contributing to open source an easy, efficient, native part of the engineering experience.
Building on a foundation of eliminate (reducing complex and dated policies for the modern engineering era), automate (detecting open source use, automated policy and decision guides, legal alerts and security workflows), and delegate (letting business groups make decisions aligned with their priorities and goals), the open source program has scaled.
A coalition of teams, experts, and friendly resources are available to make sure that everyone at Microsoft understands how to use open source.
Trust is key to open source. Developers should be able to trust users to respect their licensing choices. And when you receive software, you should be able to trust that the open source licenses were followed.
The OpenChain Project plays an important role in building trust by setting standards that define how to operate a high-quality open source compliance program. It means that when you receive open source from a company that follows the OpenChain standard, you can be assured that the code went through a rigorous license compliance process. You can trust it.
We announced that Microsoft is OpenChain 2.0-conformant in December 2019 and continue to keep the program up-to-date, most recently self-certifying OpenChain 2.1 requirements.
Microsoft uses many tools and services in supporting its open source program. Here are just a few that you may find useful in your own company or open source community.
Microsoft has over 100 GitHub organizations dedicated to open source activities. Collectively, these are part of an enterprise account at GitHub.
Some of the features the enterprise product brings to us include:
While Microsoft uses many different continuous integration systems, and open source projects adopt whatever common toolset an open source community prefers, many projects are powered by GitHub Actions and Azure Pipelines.
At Microsoft, a internal extension for Azure DevOps called Component Governance was created to help provide automatic inventory of all the open source components used.
Many different bots and applications are used as part of Microsoft's open source program. Bots help teams to scale and provide a great experience for communities.
Some of the common building blocks for GitHub Bots used at Microsoft include:
When interfacing with third-party services such as GitHub, it is important to be able to identify employees at the same company working together on open source.
While GitHub allows organization members to publicize their organization membership on their individual profile, there is more to know. GitHub user management solutions will offer the following capabilities:
Microsoft's self-service GitHub management portal is implemented in TypeScript and is a Node.js service. The portal is open source at https://github.com/microsoft/opensource-portal.
ClearlyDefined provides license, source location, and attribution information on over 10 million open source components. We rely on this data for our compliance systems.
This open source project provides compliance data about open source components from across the package ecosystems. It uses multiple open source scanners and summarizes their results into a high-quality "definition" of the component upon which we base our business policy decisions internally. It also:
ClearlyDefined is an open source project of the Open Source Initiative (OSI) and its open source code is at https://github.com/clearlydefined.
The Microsoft's Contributor License Agreement is a Contributor License Agreement solution that integrates nicely with GitHub to make sure that all contributors to a project have agreed to common terms by enabling contributors to sign CLAs from within a pull request.
Microsoft has developed and adopted several different approaches to retrieving GitHub data about activity within our organizations: we use the GitHub REST API v3 and GraphQL to regularly make data about our GitHub repos, traffic data, issues and pull requests all available inside our big data systems.
By making data available in Azure Data Explorer, powered by Kusto, it's really quick for Microsoft engineers to be able to query data without having to build specialized GitHub API integrations.
Microsoft's 1ES team is in the process of open sourcing this technology.
Our business and legal review process - kicked off when a particular open source use, contribution, or release, scenario requires - integrates into the engineering system that includes Azure Boards. This helps meet engineers where they are, providing an easy way to review requirements, manage approvals and workflow, and eventually completing any necessary reviews.
This system is built by using the Work Item Tracking extensibility features and the Azure DevOps REST API.
This is a summary of how we approach using open source at Microsoft.
Using open source in Microsoft is encouraged. Building on the efforts of others allows us to create meaningful value for our customers faster and engage with new ecosystems and user-bases in a natural way.
Take the following steps to use an open source component at Microsoft:
This is a summary of how we approach contributing to open source at Microsoft.
We encourage our employees to contribute to open source communities. Contributing improvements to projects we use enhances the value everyone derives from the project and can drive a project forward.
Microsoft's contribution policy varies depending on the size and purpose of contribution.
Teams at Microsoft are encouraged to work in the open and are provided with straightforward guidance on when and how to release code to the world.
This is a summary of how we approach releasing open source at Microsoft.
All open sourcing of Microsoft source code and content (e.g., text, images, fonts, data) must be registered with your business and legal team using the workflow outlined in the release documentation.
In other cases, you may need to work with your management and legal teams to review the business case, success plan, and IP management strategy around your proposal.
All Microsoft open source code should be released on GitHub in one of Microsoft's GitHub orgs. The vast majority of projects will go in the official company org.
Where we are participating in existing community that does not work on GitHub, your code should go in the natural location for that community.
If you do not plan on releasing your code to the public, an InnerSource location provided by the One Engineering System team is a better option for private engineering work: for example, using Azure Repos.
Microsoft open source code should be released under the MIT license absent a compelling reason to do otherwise.
All contributions to a Microsoft-managed open source project must use the Microsoft Contributor License Agreement (CLA). The CLA must be agreed to by all contributors who are not Microsoft Full-time Employees (FTE) or interns prior to the contribution being merged into the project codebase.
The CLA requirement is waived in certain smaller contribution cases.
The following steps should be taken to release and maintain your open source project:
| Web Proxy Viewer | New URL | Original Page |