Difference between revisions of "Project Snowstorm"

From Second Life Wiki
Jump to navigation Jump to search
m
m
(22 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
<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, 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"/>
[[Image:New-Snowstorm-icon.png|left]] '''''Snowstorm'' is the project name we use for contributions from the open source development community.'''


{|cellspacing="5px"
|valign="top" width="50%"|
{{Box|Mission &amp; Goals|2=
'''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.'''
'''Evaluate & Prioritize work by asking''':
:''Does it make Second Life faster, easier, and more fun?''
'''Work in the open''':
* Share work processes, branches, and backlog.
* Demonstrate rapid responsiveness to feedback and contributions from the open source community
* Provide daily builds from the Development (integration) repository
'''Improve user experience''':
* Clean up broken glass
* Fix Viewer bugs
* Import improvements from open source contributors
* Add small features that have high value/low cost
}}
{{Box|Team|2=
* [[User:Oz_Linden|Oz Linden]] - Open Source Lead
* [[User:Merov_Linden|Merov Linden]]
* Grumpity ProductEngine and three contract engineers.
* Open Source Contributors
}}
|valign="top" width="50%"|
{{Box|Testing|2=
The following is links to the most recent builds from the main viewer-development integration repository:
{{ViewerDevelopmentInstallers}}
<!--and the viewer that we expect to be the next beta:
{{ViewerInstallers|2.6.1 Beta Candidate|in testing now - candidate for release on the Beta channel March 29|task=viewer-pre-beta}}-->
and we also frequently publish [[Downloading test builds|test builds]] for things that have not yet been integrated.
}}
<!-- {{Box|Quick Links|2={{Project Snowstorm Nav|nobox=true}}}} -->
{{Box|Communications|2=
{{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])
*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]
*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])
*[[Project Snowstorm/Calendar|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]
*[[Linden Lab Official:Viewer Source Repositories]]
*[[Project Snowstorm/Meetings|Other regularly scheduled meetings]]
*[https://jira.secondlife.com/secure/Dashboard.jspa?selectPageId=13615 Snowstorm Jira Dashboard]
*[http://hg.secondlife.com/viewer-development Viewer Development Source Repository]
*[https://codereview.secondlife.com/ Code Review Tool] and [[Code Review Tool|documentation on how to use it]]
*In-Code (doxygen) Documentation:
**[http://developer.dimentox.com on dimentox.com updated nightly from main viewer-development repo]
**[http://omvviewer.byteme.org.uk/viewer-development/ on byteme.org.uk]
*[http://community.secondlife.com/t5/Tools-and-Technology/bg-p/blog_technology Technology Blog]
}}
}}
|}
==Processes==


Snowstorm uses a modified [http://en.wikipedia.org/wiki/Scrum_%28development%29 scrum] process.   
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]].   


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:
'''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].
* [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=11363&selectedProjectId=10244&type=TB&start=0 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]]


{{KBnote|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.
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|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===
* [[Develop Viewer Code]] a quick overview of how to set up and manage your working repositories
** [[Basic Mercurial Workflow|More comprehensive Mercurial workflow]] (not needed for small changes)


==Questions & Answers==
==Questions & Answers==
Line 80: Line 38:
: 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.
: 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 use the public [https://jira.secondlife.com/ Jira]. New issues should be created in the VWR project, and we'll move appropriate open issues from there and Linden Lab internal projects (these will become part of the Snowstorm Team backlog) to the public STORM process.
: 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}}
{{Multi-lang}}

Revision as of 07: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.