Difference between revisions of "Project Snowstorm"

From Second Life Wiki
Jump to: navigation, search
m (future proofing for easier linkpaste)
m
 
(57 intermediate revisions by 9 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:Oz_Linden|Oz Linden]], Director of Second Life Engineering
 +
*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]
 +
*[[Project Snowstorm/Calendar|Calendar]] ([http://www.google.com/calendar/ical/lindenlab.com_k0e2g2gmqrhm0esbrh31f0qbac%40group.calendar.google.com/public/basic.ics ical])
 +
*[[Linden Lab Official:Viewer Source Repositories]]
 +
*[https://jira.secondlife.com/secure/Dashboard.jspa?selectPageId=13615 Snowstorm Jira Dashboard]
 +
}}
  
{|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://jira.secondlife.com/secure/IssueNavigator.jspa?mode=hide&requestId=14035 Open Source Development Ideas filter].
'''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
+
  
For specific plans, see the [https://spreadsheets.google.com/ccc?key=0AnxJWUubGIsodENWR2xPNW5kUl9veXJmS0VDOUN4S0E&hl=en Product Backlog], the current list of product plans and priorities; this is a living document, subject to change based on community feedback, business priority, and coordination with other teams in the Lab.
+
{{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|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]], [[User:Tofu_Linden|Tofu Linden]], [[User:Aimee_Linden|Aimee Linden]], and three contract engineers
 
* Open Source Contributors
 
}}
 
{{Project Snowstorm Nav|width=100%}}
 
  
|valign="top" width="50%"|
+
The review and QA process of Snowstorm issues is reflected in the Jira workflow, 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]].
{{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 6:30am-6:45am {{SLT}} at [http://maps.secondlife.com/secondlife/Hippotropolis/146/73/26 Scrum Platform]
+
===Testing===
+
*[[Downloading test builds]].
+
*[http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/snowstorm_viewer-development/latest.html Latest Build]. ''This build may not have been tested at all. Use at your own risk.''
+
*[http://hg.secondlife.com/viewer-development Get the source code]
+
===Sprints===
+
====Sprint 4====
+
:*[https://spreadsheets.google.com/ccc?key=0AsjYANl9JgoKdFpBdGlXaUNIZ0pDZi16SzVJM0VuM3c&hl=en&authkey=CLquydEM VWR-20694, VWR-20702 and Regression suite] - r209332.
+
:*[https://spreadsheets.google.com/ccc?key=0AsjYANl9JgoKdFFxQkthZ2RwOUJxRUNjT01GRVRrSEE&hl=en&authkey=CJuyn58G Latest Smoke test] &mdash; r209678.
+
====Sprint 3====
+
:*[https://spreadsheets.google.com/ccc?key=0AsjYANl9JgoKdHJ2dlVvZElMbEd2Ukl4cUt1dE1lTXc&hl=en&authkey=COW-4Fc Last build of Sprint 3] r209456 - Smoke
+
}}
+
{{Box|Processes|2=
+
  
Snowstorm uses a modified [http://en.wikipedia.org/wiki/Scrum_%28development%29 scrum] process. 
+
===Other Helpful Links===
  
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:
+
* [[Develop Viewer Code]] a quick overview of how to set up and manage your working repositories
* [http://jira.secondlife.com/secure/VersionBoard.jspa?selectedProjectId=10244 Product Backlog].
+
** [[Basic Mercurial Workflow|More comprehensive Mercurial workflow]] (not needed for small changes)
** [[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:
+
* [http://jira.secondlife.com/secure/TaskBoard.jspa?selectedBoardId=10749&selectedProjectId=10244&type=TB&start=0 Sprint 4 Backlog]
+
** Daily scrum is 6:30am-7:30am {{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.''
 
}}
 
 
|-
 
|}
 
  
 
==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 JIRA-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://jira.secondlife.com/ Jira]. New issues should be created in the BUG project, and we'll move appropriate open issues from there and Linden Lab internal projects to the public STORM process.
  
 
[[Category:Open Source Portal]]
 
[[Category:Open Source Portal]]
 +
{{Multi-lang}}

Latest revision as of 06:37, 12 November 2014

New-Snowstorm-icon.png
Snowstorm is the project name we use for contributions from the open source development community.


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 Open Source Development Ideas filter.

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 Snowstorm issues is reflected in the Jira workflow, 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 JIRA-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 Jira. New issues should be created in the BUG project, and we'll move appropriate open issues from there and Linden Lab internal projects to the public STORM process.