Difference between revisions of "Project Snowstorm"

From Second Life Wiki
Jump to navigation Jump to search
(scrum time has changed some time ago)
 
(18 intermediate revisions by 6 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"
{{Box|Communications|2=
|valign="top" width="50%"|
*[[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]]
}}
 
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]]. 


{{Box|Mission &amp; Goals|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].
'''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 daily builds from the Development (integration) repository
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''':
 
* Fix Viewer bugs
{{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).
* Import improvements from open source contributors
* Add small features that have high value/low cost
}}
{{Box|Team|2=
* [[User:Oz_Linden|Oz Linden]]
* Grumpity ProductEngine and three contract engineers.
* Open Source Contributors
}}
}}


|valign="top" width="50%"|
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]].
{{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=
*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])
*Daily Scrum: M-F 9:15am&ndash;9:30am {{SLT}} at [http://maps.secondlife.com/secondlife/Hippotropolis/146/73/26 Scrum Platform]
*[[Project Snowstorm/Meetings|Other regularly scheduled meetings]]
*[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://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. 
===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].
** [[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.
}}


==Questions & Answers==
==Questions & Answers==
Line 73: Line 33:
: Commit access by open source contributors is not available to any Linden Lab repository, including viewer-development.
: 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.
: 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.
: 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 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://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}}
{{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.