Difference between revisions of "Project Snowstorm"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(52 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Multi-lang}}
__NOTOC__
__NOTOC__
{{Open Source Portal/Links}}
[[Image:New-Snowstorm-icon.png|left]] '''''Snowstorm'' is the project name we use for contributions from the open source development community.'''


<div style="padding: 0.5em; font-size: 11pt;">[[Image:Snowstorm-icon.png|left]] '''''Snowstorm'' is the name of the team responsible for coordinating development and integration of the Second Life Viewer 2, and for engaging the open source development community in its evolution. The Snowstorm team and Project Snowstorm started in August, 2010.'''</div><br clear="all"/>
{{Box|Communications|2=
*[[User:Vir_Linden|Vir Linden]], Manager of Second Life Viewer
*Email list: [https://lists.secondlife.com/cgi-bin/mailman/listinfo/opensource-dev opensource-dev] ([http://lists.secondlife.com/pipermail/opensource-dev/ archive])
* [https://community.secondlife.com/blogs/entry/6509-introducing-the-second-life-public-calendar/ Public User Groups]
*[[Linden Lab Official:Viewer Source Repositories]]
}}


{|cellspacing="5px"
By nature, open source contributions generally do not fit well into schedules, but getting them into the main stream of viewer development does require some structure.  If you have work that you'd like to do, it helps to understand our [[Viewer Integration and Release Processes]]. 
|valign="top" width="50%"|


{{Box|Mission|2=
'''If you are looking for tasks''' you can use to get familiar with how to work on the viewer, check out the [https://github.com/secondlife/viewer/labels/good-first-issue good-first-issue label].
'''To improve the performance, reliability, and ease of use of the Second Life Viewer, while enabling the rapid, effective deployment of new Viewer features and functionality to the Second Life Resident population.'''
}}
{{Box|Goals|2=
'''Evaluate & Prioritize work by asking''':
:''Does it make Second Life faster, easier, and more fun?''


'''Work in the open''':
There is a page on [[How To Propose A Viewer Feature]]; the Snowstorm team meets every other week with the Product Team (an internal cross-functional group) to review open source proposals for open source contributions.  The goals of this review are:
* Share work processes, branches, and backlog.
* To determine whether or not the proposal is one that fits into our vision for the viewer
* Demonstrate rapid responsiveness to feedback and contributions from the open source community
* To ensure that it does not conflict with other work being done inside the Lab
* Provide builds from the Development (integration) repository bi-weekly
It helps to have a comprehensive and specific description of the proposed change; what the user interface will be, how it will affect the shared experience of users, what backward compatibility issues it may have, etc.  For obvious bug fixes, the review can be nearly pro forma, but even then we may ask you to wait until another time or to modify the proposed fix in some way.  The result of this review may be that we will ask you to modify or refine the idea further, or we may decide that it is not suitable for inclusion in the main viewer code.
'''Improve user experience''':
* Clean up broken glass
* Fix Viewer bugs
* Import improvements from Snowglobe, other Third Party Viewers, and open source contributors
* Add small features that have high value/low cost
}}
{{Box|Team|2=
* [[User:Q_Linden|Q Linden]] - Tech Lead
* [[User:Esbee Linden|Esbee Linden]] - Product/Business Lead
* [[User:Oz_Linden|Oz Linden]] - Open Source Lead
* [[User:Merov_Linden|Merov Linden]] and three contract engineers. Alas, [[User:Tofu_Linden|Tofu Linden]] and [[User:Aimee_Linden|Aimee Linden]] are no longer with the team.
* Open Source Contributors
}}
{{Project Snowstorm Nav|width=100%}}


|valign="top" width="50%"|
{{KBnote|Changes that introduce new Viewer features may not be submitted for integration without having a proposal reviewed and accepted first. Changes to fix a bug that the triage process has Accepted may be submitted at any time so long as all integration criteria have been met (but a proposal for these is a good idea).
{{Box|Communications|2=
*Email list: [https://lists.secondlife.com/cgi-bin/mailman/listinfo/opensource-dev opensource-dev] ([http://lists.secondlife.com/pipermail/opensource-dev/ archive])
*IRC: [irc://irc.freenode.org/opensl #opensl on freenode]
*[http://twitter.com/snowstormsl Twitter stream]
*[http://blogs.secondlife.com/community/technology/snowstorm Blog]
*[http://www.google.com/calendar/hosted/lindenlab.com/embed?src=lindenlab.com_k0e2g2gmqrhm0esbrh31f0qbac%40group.calendar.google.com&ctz=America/Los_Angeles Calendar] ([http://www.google.com/calendar/ical/lindenlab.com_k0e2g2gmqrhm0esbrh31f0qbac%40group.calendar.google.com/public/basic.ics ical])
*Daily Scrum: M-F 10:30am-10:45am {{SLT}} at [http://maps.secondlife.com/secondlife/Hippotropolis/146/73/26 Scrum Platform]
*[http://hg.secondlife.com/viewer-development Viewer Development Source Repository]
*[http://dimentox.com/snowstorm/ Internal (doxygen) Code Documentation]
}}
{{Box|Testing|2=
*[[Downloading test builds]]
{{ViewerDevelopmentInstallers}}
}}
}}
{{Box|Processes|2=


Snowstorm uses a modified [http://en.wikipedia.org/wiki/Scrum_%28development%29 scrum] process.
The review and QA process of open source issues issues is reflected in Github issue tracking its work, so you can track the status of any contribution by watching its status there.  This flow is described in [[How To Submit A Viewer Change#Open Source Submissions]].


We maintain a list of all the work we'd like to be doing, called the ''Product Backlog''; it is a public living document, and new proposals may be added to it at any time:
===Other Helpful Links===
* [http://jira.secondlife.com/secure/VersionBoard.jspa?selectedProjectId=10244 Product Backlog].
** [[How To Propose A Viewer Feature]]
Work is organized into two week ''sprints''.  At the beginning of each sprint, we choose items to work on from the product backlog to construct the ''sprint backlog'', the list of tasks we are committing to complete in the sprint.  Once defined, we do not normally change this list during the sprint.  We track progress daily at the ''Snowstorm Team Standup'' - a short (target: 15 minutes) meeting in which contributors who have committed to deliverables in the sprint report on daily progress, goals, and impediments:
* [https://jira.secondlife.com/secure/TaskBoard.jspa?selectedBoardId=11117&selectedProjectId=10244&type=TB&start=0 Current Sprint Backlog]
** Daily scrum is 10:30am-10:45am {{SLT}} at [http://maps.secondlife.com/secondlife/Hippotropolis/146/73/26 Scrum Platform]
**: ''Note: the daily scrum is public, but only attendees who have committed to deliverables in the sprint are allowed to speak or add to chat during the meeting.''
** [[Snowstorm Daily Scrum Archive|Daily Scrum Archive]]
** [[Snowstorm Sprint Retrospective Archive|Sprint Retrospective Archive]]
In addition to its own development tasks, the Snowstorm team is responsible for integration of all contributions to the Viewer from other Linden Lab development teams and from open source. 
* [[Viewer Integration and Release Processes]]
* [[How To Submit A Viewer Change]]
* [[Basic Mercurial Workflow]]
* [[Creating a version control repository]]


''Note: Changes that introduce new Viewer features may not be submitted for integration without having been reviewed and accepted into the product backlog.  Changes to fix a bug that the triage process has Accepted may be submitted at any time so long as all integration criteria have been met.''
* [[Develop Viewer Code]] a quick overview of how to set up and manage your working repositories
}}


|-
|}


==Questions & Answers==
==Questions & Answers==


; What is the team process?
: We use a modified Scrum process
:* We intend to release development builds every Wednesday
:** We focus on integration of new things on Mondays.
:** Wednesday is test, release, and reprioritization day.
:** We will create a Second Life Development Viewer channel for the releases.
; What is our release strategy?
: See the [[Viewer Integration and Release Processes]] page
; What are the steps to develop a Viewer change?
: See [[Develop Viewer Code]]
; How are “big features” released?
: The project team for the feature (whether inside or outside Linden Lab) creates a clone of the development repository and develops the feature there; we call this a "Project branch".
: Projects are encouraged to build the Viewer from the Project branch and give it to residents to test and experiment with the feature.
: When the feature is ready, the Snowstorm team pulls it back to the development repository.
: Our goal is short term, low cost, individual fixes, aimed at incremental improvements that will improve the Viewer.  Other teams within Linden Lab will normally be aiming for larger, feature-centered, high-value projects that will require integration of resources across multiple technology centers.
; Who gets commit access?
; Who gets commit access?
: Individual development teams decide who has commit access to their Project branches.
: Commit access by open source contributors is not available to any Linden Lab repository, including viewer-development.
: For the Development branch, the Snowstorm Team has a JIRA-based queue for requests for integration (pull requests) from Project branches. Nothing in that queue should be a surprise, as all of it should have gone through the Viewer Product Team. The Snowstorm team commits to servicing the items in that queue within 1 business day.
: Individual development teams, whether inside or outside Linden Lab, decide who has commit access to their Project branches.
: For the Development branch, the Snowstorm Team has a Github-based queue for requests for integration (pull requests) from Project branches that have met the integration criteria. The Snowstorm team commits to servicing the items in that queue within 1 business day.
; Which issue tracker are we using?
; Which issue tracker are we using?
: We’ll continue to use pJira until the new integrated Jira 4 becomes available. We’ll be using VWR and moving appropriate open issues from SNOW and Linden Lab internal projects (these will become part of the Snowstorm Team backlog).
: We use the public [https://feedback.secondlife.com feedback.secondlife.com] and [https://github.com/secondlife/viewer/issues Github Issues].


[[Category:Open Source Portal]]
[[Category:Open Source Portal]]
{{Multi-lang}}

Latest revision as of 01:20, 27 January 2024

New-Snowstorm-icon.png

Snowstorm is the project name we use for contributions from the open source development community.

Communications


By nature, open source contributions generally do not fit well into schedules, but getting them into the main stream of viewer development does require some structure. If you have work that you'd like to do, it helps to understand our Viewer Integration and Release Processes.

If you are looking for tasks you can use to get familiar with how to work on the viewer, check out the good-first-issue label.

There is a page on How To Propose A Viewer Feature; the Snowstorm team meets every other week with the Product Team (an internal cross-functional group) to review open source proposals for open source contributions. The goals of this review are:

  • To determine whether or not the proposal is one that fits into our vision for the viewer
  • To ensure that it does not conflict with other work being done inside the Lab

It helps to have a comprehensive and specific description of the proposed change; what the user interface will be, how it will affect the shared experience of users, what backward compatibility issues it may have, etc. For obvious bug fixes, the review can be nearly pro forma, but even then we may ask you to wait until another time or to modify the proposed fix in some way. The result of this review may be that we will ask you to modify or refine the idea further, or we may decide that it is not suitable for inclusion in the main viewer code.

KBnote.png Note: Changes that introduce new Viewer features may not be submitted for integration without having a proposal reviewed and accepted first. Changes to fix a bug that the triage process has Accepted may be submitted at any time so long as all integration criteria have been met (but a proposal for these is a good idea).

The review and QA process of open source issues issues is reflected in Github issue tracking its work, so you can track the status of any contribution by watching its status there. This flow is described in How To Submit A Viewer Change#Open Source Submissions.

Other Helpful Links


Questions & Answers

Who gets commit access?
Commit access by open source contributors is not available to any Linden Lab repository, including viewer-development.
Individual development teams, whether inside or outside Linden Lab, decide who has commit access to their Project branches.
For the Development branch, the Snowstorm Team has a Github-based queue for requests for integration (pull requests) from Project branches that have met the integration criteria. The Snowstorm team commits to servicing the items in that queue within 1 business day.
Which issue tracker are we using?
We use the public feedback.secondlife.com and Github Issues.