# Contributor guidelines

Thanks for your interest in contributing to Second Life! This document
summarizes some of the most important points for people looking to contribute
to the platform especially those looking to provide bug reports and code
changes.

## Table of contents

- [Communication](#communication)
- [Reporting bugs and requesting features](#reporting-bugs-and-requesting-features)
- [Contributing pull requests](#contributing-pull-requests)

## Communication

Second Life has multiple channels for communication. Some of these channels are
more end-user focused, while others are more tailored for
developer-to-developer or support.

- [feedback.secondlife.com][] is Second Life's primary community engagement
  forum. Ideas and bug reports should be placed here unless they relate to
  ongoing development issues and developer-to-developer communication.
- [Public user groups][slug] are held on a regular basis, including those for
  discussing open source development, content creation, server topics and more.
- [Github issues][] provide a means for staff to organize their
  work and collaborate with other developers. By default most user-facing
  discussions should happen on [feedback.secondlife.com][] so that they are
  visible to more people, can build consensus, and be placed onto our public
  roadmap. Github issues are useful for collaboration between viewer forks
  and the official upstream and when engineering-specific and technical
  collaboration is beneficial. 
- [Official forums][] exist for many topics including content creation,
   scripting, social topics and more. 
- The [opensource-dev mailing list][] is useful for announcements and
  discussion between viewer maintainers. 


## Reporting bugs and requesting features

Report bugs and provide ideas for features using the respective board on Second
Life's feedback portal:

- [Features](https://feedback.secondlife.com/feature-requests)
- [Scripting bugs](https://feedback.secondlife.com/scripting-bugs)
- [Scripting features](https://feedback.secondlife.com/scripting-features)
- [Server bugs](https://feedback.secondlife.com/scripting-bugs)
- [Viewer bugs](https://feedback.secondlife.com/bug-reports)
- [Web/Marketplace bugs](https://feedback.secondlife.com/web-bugs)
- [Web/Marketplace features](https://feedback.secondlife.com/web-features)

Creating posts on feedback.secondlife.com is important as it allows the greatest
exposure and input from Second Life users. It also allows Linden Lab staff to
place work on a single public roadmap.

Issues created on feedback.secondlife.com are imported onto Github after they
have been reviewed by staff and accepted. 

## Contributing pull requests

If you wish to contribute a new pull request, please ensure that:

- You talk to other developers about how best to implement the work.
- The functionality is desired. Be sure to talk to users and Second Life staff to ensure
  the work is a good idea and will be accepted.
- The work is high quality and the PR follows [PR etiquette][]
- You have tested the work locally

The [Git Style Guide](https://github.com/agis/git-style-guide) is also a good
reference for best git practices.

[feedback.secondlife.com]: https://feedback.secondlife.com
[slug]: https://community.secondlife.com/blogs/entry/6509-introducing-the-second-life-public-calendar/
[PR etiquette]: https://gist.github.com/mikepea/863f63d6e37281e329f8
[Github issues]: https://github.com/secondlife/viewer/issues
[Official forums]: https://community.secondlife.com/forums/
[opensource-dev mailing list]: https://wiki.secondlife.com/wiki/OpenSource-Dev