Giter VIP home page Giter VIP logo

ravendb.contrib's Introduction

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.