Introduction

In August of 2019, I wrote a post called My GitHub cheat sheet for PnP contributions — an interactive cheat sheet which explains the GitHub commands that I use when I start a contribution. The post is interactive: you just tell it your GitHub username and what repository you want to contribute to, and it customizes the instructions for you.

NOTE: I have since updated the interactive cheat sheet to a Summary Cheat Sheet with all the same interactive steps, but without all the lengthy explanation.

I also wrote another post talking about how impressed I am with David Warner II’s offer to help anyone with their first contribution. I have since joined the Sharing is Caring initiative and proudly co-host all the session with David Warner

After briefly chatting with David I realized that the biggest hurdle for people is that they just don’t know where to get started. In my post, I recommend that you read the contribution guidelines for every repo, but I found that they are often hard to find in each repository.

I also say that most repositories want you to start from the dev branch, but as the Chris Kent pointed out in the August 22nd PnP community call, some repositories prefer you use the master (or, more and more commonly, the main) branch.

So, with David’s help, we compiled a list of the most common PnP repositories to help you get started. We only show the repositories that provide contribution guidelines.

The list contains the following:

  • Repo: Name of the repository
  • What is it?: Description of the repository
  • Getting started: Links to the most likely resource if you want to get started contributing to that repository
  • Branch: The branch you should target when submitting your pull requests

NOTE: The information in each of the repositories can change and that you should always refer to the repository for the latest information.

Popular repositories

RepoWhat is it?Getting startedBranch
CLI for Microsoft 365 PnP/CLI-Microsoft365Manage Microsoft 365 and SharePoint Framework projects on any platform
https://aka.ms/o365cli

NOTE: This repository prefers "one commit per pull request"

Contribution guidelines
Adding a new command
Submitting a PR
dev
Microsoft 365 Community Docs MicrosoftDocs/microsoft-365-communityMicrosoft 365 community contributed documentation
https://docs.microsoft.com/microsoft-365/community
Adding contentmaster
Microsoft Graph .NET Client Library MicrosoftGraph/Microsoft-SDK-DotNetMicrosoft Graph Client Library for .NET!
https://graph.microsoft.com/
Contributing to the Microsoft Graph .Net Client Librarydev
Microsoft Graph .NET Core Client Library MicrosoftGraph/Microsoft-SDK-DotNet-CoreThe core Microsoft Graph client library for .Net. (Microsoft.Graph.Core)
https://graph.microsoft.com/
Contributing to the Microsoft Graph .Net Client Librarydev
Microsoft Graph documentation MicrosoftGraph/Microsoft-Graph-DocsDocumentation for the Microsoft Graph REST API, which feeds the Microsoft Graph Developer Portal. https://docs.microsoft.com/graphContribute to Microsoft Graph documentationmaster
Microsoft Graph JavaScript Client Library MicrosoftGraph/Microsoft-SDK-JavaScriptThe Microsoft Graph JavaScript client library is a lightweight wrapper around the Microsoft Graph API that can be used server-side and in the browser.
https://graph.microsoft.com/
Contributingdev
Microsoft Graph Library for PHP MicrosoftGraph/Microsoft-SDK-PHPMicrosoft Graph Library for PHP
https://docs.microsoft.com/graph/toolkit/overview
Contributing to the Microsoft Graph PHP SDKDocumentation changes, use master
Otherwise, use dev
Microsoft Graph PowerShell SDK MicrosoftGraph/Microsoft-SDK-PowerShellThe Microsoft Graph PowerShell SDK is a collection of PowerShell modules that contain commands for calling Microsoft Graph service.Contributingdev
Microsoft Graph SDK for Java MicrosoftGraph/Microsoft-SDK-JavaGet started with the Microsoft Graph SDK for Java by integrating the Microsoft Graph API into your Java application!
https://developer.microsoft.com/graph
Contributing to the Microsoft Graph SDK for Javadev
Microsoft Teams Development Community Samples
PnP/teams-dev-samples
Contains community samples that demonstrate different usage patterns for developing on Microsoft Teams as a platform. Samples are generally not production-ready, but are intended to show developers specific patterns and use cases for use in complete applications.
http://aka.ms/teams-dev-samples
Contribution guidancemaster
Microsoft365DSC Microsoft/Microsoft365DSCManages, configures, extracts and monitors Microsoft 365 tenant configurations
https://aka.ms/M365DSC
Setting up your environment and contributing to the projectmaster
Modernization Tools and Solutions
PnP/sp-dev-modernization
All modernization tooling and guidance
http://aka.ms/sppnp-modernize
The modernization repositorydev
PnP Framework
PnP/PnPFramework
PnP Framework is a .Net Standard library targeting Microsoft 365 containing the PnP Provisioning engine and a ton of other useful extensionsdev
PnP Modern Search
Microsoft-Search/PnP-Modern-Search
Home of PnP Modern Search solutions, helping you move from classic to modern SharePoint and beyonddevelop
PnP PowerShell
PnP/PnP-PowerShell
SharePoint PnP PowerShell CmdLets
https://aka.ms/sppnp-powershell
Contribution guidancedev
PnP Sites Core Library PnP/PnP-sites-coreOffice 365 Dev PnP Core component (.NET) targeted for increasing developer productivity with CSOM based solutions.
NOTE: Will only be maintained until end of 2020
Contribution guidancedev
PnPJs
pnp/pnpjs
SharePoint Patterns and Practices Reusable Client-side Libraries
https://pnp.github.io/pnpjs
Contribution guidedev
SharePoint Developer Documentation
SharePoint/sp-dev-docs
SharePoint Developer Documentation
https://docs.microsoft.com/en-us/sharepoint/dev/
Contribute to SharePoint developer documentationmaster
SharePoint Framework Client-Side Web Part Samples & Tutorial Materials
PnP/sp-dev-fx-webparts
Code samples and developer content targeted towards SharePoint Framework client-side web parts. Maintained by the nicest guy 😁.
http://aka.ms/spfx-webparts
Contribution guidelinesmaster
SharePoint Framework Extensions Samples & Tutorial Materials
PnP/sp-dev-fx-extensions
Code samples and developer content targeted towards SharePoint Framework client-side extensions — maintained by yours truly.
https://aka.ms/spfx-extensions
Contribution guidancemaster
SharePoint Framework Library Component Samples & Tutorial Materials
PnP/sp-dev-fx-library-components
Samples that demonstrate different usage patterns for the SharePoint Framework library component.Contribution guidanceCreate from: master
Submit to: dev
SharePoint Framework React Controls
PnP/sp-dev-fx-controls-react
Reusable React controls for SPFx solutions
https://pnp.github.io/sp-dev-fx-controls-react/
Contribution guidelines
Submitting a PR
dev
SharePoint Framework React Property Controls
PnP/sp-dev-fx-property-controls
Reusable SPFx property pane controls – Open source initiative
https://pnp.github.io/sp-dev-fx-controls-react/
Contribution guidelines
Submitting a PR
dev
SharePoint List Formatting Samples
PnP/sp-dev-list-formatting
SharePoint List Formatting Samples
https://pnp.github.io/sp-dev-list-formatting/
Contribution guidelinesmaster

Conclusion

Let’s keep this list up to date! If you find that we forgot a repository, or that something is wrong, let us know in the comments of via Twitter and we’ll get it updated!

Thanks to David Warner II with putting together this list, and for always making yourself available to help people in this community.

This list wouldn’t be possible without the hard work of all of those who contributed (and continue to contribute) to the above repositories. Thank you for your contributions!

Photo credit

Image by StockSnap from Pixabay

Updates

  • October 18, 2020: There was so much interest around the Microsoft Graph Toolkit repo that I also added the Microsoft Graph repos. Thanks Jeremy Thake for giving me a list of repos.
  • October 15, 2020: Microsoft Graph Toolkit accepts contributions now! Woo hoo!
  • October 13, 2020: Thanks to Nanddeep Nachan for pointing out I had forgotten to list the PnP/Teams-dev-samples!
  • October 12, 2020: The Office 365 CLI is now called the CLI for Microsoft 365. Added Microsoft365DSC as per Dean Gross‘s suggestion.
  • July 27, 2020: Updated repos within PnP organization.
  • April 03, 2020: Yes, both the SPFx extensions and web parts samples repositories now ask you to submit to the master branch. This article was updated accordingly.
  • March 03, 2020: This repository is getting a lot of traffic these days, so I figured I’d update it and add the super-useful microsoft-365-community repo
  • November 22, 2019: I’m incredibly proud to be part of the Sharing is Caring initiative, where we walk people through the process of contributing to open-source repositories and show people how to create their first pull request! If you haven’t done so yet, sign up.
  • September 25, 2019: David Warner II has launched a new initiative to help anyone who wants to create their first PnP contribution. It is called Sharing Is Caring and you can register to attend a live online hands-on session where he walks you through step-by-step instructions to create your first pull request.
  • August 25, 2019: Thanks to Bert Jansen for providing us with details for the SharePoint/sp-dev-modernization repository.
  • August 23, 2019: Erwin van Hunen Tweeted to remind us about SharePoint/PnP-Sites-Core. It is so foundational to other components, I don’t know how we missed it. Urgh! I hate to disappoint someone I hold in such high regard! Sorry!
  • August 23, 2019: Waldek Mastykarz rightly pointed out that we forgot the PnPjs repository.
Author

Microsoft MVP and PnP Team Member. Independent consultant. Certified SCRUM Master. SharePoint, Office 365 and Dynamics 365 are his favourite toys.

3 Comments

  1. Dean, thanks for the suggestion. I did update the article with the repo you asked for. It was a great find!

    Thank you!

  2. Pingback: My GitHub cheat sheet for PnP contributions — an interactive cheat sheet – Tahoe Ninjas

How can I help?

This site uses Akismet to reduce spam. Learn how your comment data is processed.