Contributions Policy

Any contributions must comply with the following OpenSim contribution policy

OpenSim Contributions Policy

In order to accept your contribution you need to read and adhere to the OpenSim Code Conventions and also follow the licensing conditions.

OpenSim Core Values
So, you're thinking of contributing? Great! In order to make your ride as smooth as possible, here's listing some of this projects guiding principles: This means that we value simple and naive solutions over efficiency - we will optimize but first we need to get the basics right. It also means a very optimistic use of the word 'stable'. This means that we value decoupling, modularity and indirection over clock cycles and feature completeness. This means that any given patch, fix or feature is very much up to whether somebody thinks it fun, worthwile or would pay good money for it. Being through four major architectural changes in six months means we still have lots of tangly and bushy remnants of old ways of doing stuff. Yes, believe it or not, we're aiming at continously trying to make the code as simple, structured and readable for newcomers as time and experience will let us. Even though we're trying to document the things that are reasonably set, instead of documentation and commenting we try to make the code as simple, strightforward and readable as possible. This means we will go to lengths to avoid bringing in new technologies that would provide thresholds for installing and using the code on different environments. The default configuration should always be build- and runnable on checkout, provided you are on a c# .net/mono environment with either vs build or nant. Other technologies than those can be provided, but will not be guaranteed not to break at any given time. Codewise, we're trying to move towards looser coupling and better code reuse - and to separate the code into a 'framework' layer, a 'service' layer and an 'application' layer; the framework layer defines all base classes and interfaces, the service layer provide networked and persistent implementations of those, and the application layer provides configuration logic and executables.
 * This is an early alpha experimental project
 * This is a 3D application platform, not a Second Life wannabe world simulator
 * We are all in this for our own separate reasons, some to have fun, some to make money
 * This is a young project
 * This is a noob-friendly project
 * The code is the documentation
 * We are a multi-platform project

OpenSim Licensing Conditions
To make sure that we can accept your contribution and continue to distribute the OpenSim materials under the most free license possible, any contributions to the OpenSim project need to follow the following licensing conditions:


 * Your contribution is either wholly your own, or if it contains third party materials, they are licensed in a manner compatible with the OpenSim project. If you rely on third party contributions, acknowledge them and include a copy of the license conditions for those components if they differ from the OpenSim project license. We cannot accept virally licensed code unless there is a specific F/OSS exemption for BSD-licensed projects.


 * You accept whole liability for any contributions you make for inclusion of third party intellectual property, in the jurisdiction of both yourself, and where the servers are located (United States). If you are unsure about the licensing conditions for a piece of source, do not include it and work around it. If you have a problem here, ask the rest of the developers as they may be able to help.


 * You have not witnessed, seen or been party to the development of the official Linden Lab Server Software. If you have been involved in the official server development your contributions may affect the licensing of the main codebase and we cannot accept the contributions without a waiver from Linden Lab disclaiming any interest in your contributions.


 * You have not studied or copied sourcecode from the GPL Second Life viewer to submit your contribution