About p&p Contrib Projects
p&p "Contrib" projects are community-developed and community-managed projects that extend patterns & practices deliverables with new and useful functionality. Currently, the following p&p Contrib projects are live:
Contrib projects are of two types:
- Extensions - extend the functionality in the core patterns & practices deliverable by leveraging built-in extensibility points. They do not modify or fork the original deliverable.
- Forks - contain modifications to the guidance packages and/or application blocks. These may also include extensions.
While core patterns & practices deliverables are developed by Microsoft and its vendors, anyone in the community may contribute to a p&p Contrib project, subject to processes and standards determined by the community team.
Q: Why has the patterns & practices team set up "Contrib" projects?
A: The p&p Contrib projects were started to make it easier for community members to extend the value of p&p deliverables, without needing to wait for the p&p team to implement good ideas in official releases. While it has always been possible for
community members to create and share extensions / forks to p&p deliverables, the Contrib projects are intended to provide a "center of gravity" to encourage easier sharing and discovery of useful code. Additionally through contrib the community
can establish a set of standards for such projects thereby resulting in a clear set of expectations and more uniform experience for users of the contrib projects.
Q: I have built an extension to a p&p deliverable. Why would I want to contribute it to a p&p Contrib project?
A: Obviously it's up to you to decide if and how to share code you have developed. The big advantage of sharing code through a Contrib project is that it will be exposed to a lot of people without you needing to do your own promotion. It also offers a benefit
to users, as they can go to one location to find a variety of useful extensions, rather than having to find many different deliverables from different sites with different licenses. On the other hand, contributing to a p&p Contrib project will give you
limited control over the license, positioning and the evolution of the code, since these will be decided by a team of community developers.
Q: Is anyone allowed to contribute to a p&p Contrib project?
A: Anyone who has created an extension to a p&p deliverable is encoraged to contribute to the relevant p&p Contrib project. However in order to maintain the desired level of quality, each project team may have its own standards and requirements for
developers who wish to join the team. These requirements will be decided by project team, and will not be dictated by Microsoft. Anyone interested in contributing to a project should contact one of the project coordinators, as listed on the
tab in CodePlex.
Q: Who gets to be a "coordinator"?
A: Project coordinators are responsible for deciding who gets to check in, establishing and enforcing processes and guidelines, and ensuring the codebase remains at a suitable quality. Initially this role will be played by p&p members, but our plan is to
transition this role to one or more external community members over time. If you believe you are qualified for this role and are able to dedicate the necessary amount of time, please contact an existing coordinator to discuss this further.
Q: What license will apply to code I contribute to a p&p Contrib project?
A: Any code you contribute to a p&p Contrib project will be distributed under that project's license (typically, the Microsoft Permissive License).
Q: Will code in p&p Contrib projects ever make its way into core p&p deliverables such as Enterprise Library?
A: This is not the primary intent of Contrib projects. In general you should expect that extensions in Contrib projects will remain separate from the core p&p deliverables. If there are any contributions that both the community and the p&p team agree
should become part of the core deliverable, Microsoft may investigate options for licensing the code; however this is unlikely to be a common scenario.
Q: Can I trust code in a p&p Contrib project?
A: As with other open source and patterns & practices projects, the Contrib projects come with no warranties or guarantees, and it is up to the user to decide how much they trust the code. Ultimately the quality of the code and the processes around testing
and consistency will be governed by the community.