External Contributions to RavenDB
C#
Latest commit 13ae89f Sep 19, 2015 @mj1856 mj1856 Update README.md
I'm no long in a position keep this maintained, and thus far it doesn't look like anyone else is stepping up.

README.md

RavenDB Community Contributions

These projects are for community contributions to RavenDB, such as extension methods, base classes and helper methods. Feel free to fork this project, add your own code, and submit a pull request.

This project is maintained and supported by the RavenDB community, not by Hibernating Rhinos. For questions, please visit the RavenDB Google Group.

Status

The project is relatively stable, but is no longer being maintained. Please consider that the contributions here were written in the Raven 2.x time frame, and may or may not act differently in the current release.

Installation

There are multiple projects in this repository, but the primary one is Raven.Client.Contrib. It can be installed via NuGet:

PM> Install-Package RavenDB.Client.Contrib

The NuGet feed can be found here

Other projects may also have NuGet packages, or may require manual compilation.

Contribution Guidelines

To contribute to this project, fork the main repository from here and make your changes locally. Then submit a pull request with your changes. Be sure to describe what your contribution does and what value it adds to Raven.

Please keep the following in mind:

  • We are using Visual Studio 2012.

  • The master branch targets RavenDB 2.5, and whenever possible targets both .Net 4.0 and 4.5 via linked projects.

  • The 2.0 branch is currently maintained for RavenDB 2.0 under .Net 4.0. If an item is compatibile with RavenDB 2.0, it should be added to both branches. Of course, code that is not applicable to RavenDB 2.0 will only exist in the master branch.

  • We are not supporting RavenDB 1.0 at all.

  • Whenever possible, libraries should support the current stable release of RavenDB. However, the minimal supported stable version of RavenDB should be referenced unless their is a breaking change.

  • You should use xml summary comments on all public members, so that consumers of your code can use intellisense to easily figure out what your contribution does. This is especially important for extension methods.

  • There are additional restrictions for the Raven.Client.Contrib project, as follows:
    ** No dependencies on 3rd party libraries or nuget packages. If you require a dependency, build a separate project.
    ** Must support the current stable release of RavenDB.

  • Contributions to this repository should augment the official RavenDB libraries - not subvert them. A pull request for code that does something Raven already handles (even if in a slightly different way), will likely be rejected.

  • Contributions should be small, discrete chunks of code that can operate independently from each other. If you have a medium to large sized bundle, extension, or demo, then it should probably be hosted in your own repository.

  • Hibernating Rhinos retains the right to veto anything we do here. Raven is their baby. Let's not make it ugly. Try to keep their design principles in mind, such as "Safe by Default".

  • If something contributed here is eventually pulled in to Raven, it should be deprecated by marking it with an [Obsolete] attribute and replacing the contrib implementation with a call to the new official version.

  • If you contribute something to this project, you should be prepared for others to modify it. You can certainly still make changes, but you are relinquishing control back to the community at large. If you desire to retain control of your project, you should keep it in your own github repository.

  • Everything in this repository is MIT licensed. You may not change the license for any partial contribution. Unlike Raven's Contribution Rules, we do not require a signed contributor license agreement. By submitting a contribution, you are agreeing to release the code under the MIT license.

  • If you have a suggestion, opinion, or disagreement, please either create an issue on github here, or discuss in the RavenDB Google Group.

THANKS!