Difference between revisions of "PyOGP"

From Second Life Wiki
Jump to navigation Jump to search
(Added another archive)
 
(61 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{PyOGP/navigation}}
== Overview ==
== Overview ==


Pyogp is an open source project between Linden Lab and [[AWG]] to support the testing of the Open Grid Protocol ([[SLGOGP_Draft_1|OGP]]). Written in Python, Pyogp will consist initially of a [[Pyogp/Documentation/Specification/pyogp.lib.base|client library]] and [[Pyogp/Documentation/Specification/pyogp.interop|test functionality]] that will enable testing of OGP enabled virtual worlds like Second Life and compatible OpenSim implementations. These components will expand as the effort matures.
=== What Is It? ===


== Project Status ==
Pyogp is an open source project to explore a suite of python based Second Life client libraries and to produce an automated testing framework.  
* Client library and overall package architectural decisions have largely been formalized, and client library development continues nicely. Login and message parsing (udp) are well along their way, Teleport is up next.
* Test harness structure is being formalized, and test cases are being defined and built as we speak
: [[User:Enus Linden|Enus Linden]] 13:55, 23 July 2008 (PDT)


For more details, please see the Pyogp [[Pyogp/Roadmap|roadmap]].
PyOGP is useful for:
* learning more about Second Life's client-server relationship
* prototyping client side features
* quickly writing tests for software which communicates using LLMessageSystem-like messages
* demonstrating protocol proposals
* building test suites which validate Second Life simulator and grid functionality


== Project Tasks ([[Pyogp/Roadmap|Roadmap]])==
=== Getting Started ===
We plan on using the public jira (pjira) to list all of our tasks. This isn't currently set up, but we will be sure to keep you updated on the status.
These are tasks that need to be accomplished for the overall project. Each part of the project (library and harness) also has its own task list.
#Commit rights - need to get Tao and other contributors commit rights to the svn repo
#Expand on the roadmap - start filling in more details so we know exactly what to do and when
#Task list - the real down-n-dirty list of what needs to be done
#Start planning structure for Pyogp overall, with an initial emphasis on the client library.
#*[http://www.muthukadan.net/docs/zca.html ZCA], [http://pypi.python.org/pypi/zc.buildout buildout] and [http://peak.telecommunity.com/DevCenter/PythonEggs eggs] have been tapped as components/attributes of Pyogp...
#Start planning structure for test harness (see [[Pyogp/Test Framework]])


Recently completed tasks include:
See [[PyOGP Client Library Development Sandbox]] for instructions on the mechanics of working with the PyOGP package suite.
#Created pyogp@lists.secondlife.com mailing list
#License - The Apache V2 License has been selected as the license of choice for pyogp (or whatever name we agree upon, see next point).
#Naming - Pyogp
#Repository - So Mercurial, aka hg, was looking promising, but we decided internally that we aren't quite ready for that. There is a move toward Mercurial internally, but we need to work this out before moving forward with it on this effort. It is quite possible that this library and test harness work will become a guinea pig for hg with Linden Lab in the open source arena. Until then, I bring you pyogp on SVN: http://svn.secondlife.com/trac/linden/browser/projects/2008/pyogp.
#Contributions - As we are going to be hosting the source code for this, contributions will be subject to Linden Lab's standard [http://secondlifegrid.net.s3.amazonaws.com/docs/SLVcontribution_agmt.pdf contributor's agreement]. I hope this doesn't prevent good work here...
#Set up collaboration methods
#*Meeting Times - Enus is out of the Linden Lab office until July 14th. June 28th is unavailable for him, the following week is some silly American holiday, and the following Friday (July 11) is a travel day). July 18th will be the first sc heduled office hours where Pyogp will be a primary topic.


== Collaboration ==
For a more comprehensive overview of working within the structure of classes and event systems in PyOGP packages, take a look at [[PyOGP Client Library]].


=== Communication Channels ===
=== How To Contribute ===
*Communication
* Source: [[Pyogp/Client_Lib/The_Development_Sandbox | Checkout Instructions]]. See the [[Open_Source_Portal|Open Source Portal]] for details on being a contributor
**IRC: irc://irc.freenode.com/#pyogp
* in-world group: pyogp (open enrollement)
**mailing list: https://lists.secondlife.com/cgi-bin/mailman/listinfo/pyogp, pyogp@lists.secondlife.com
* IRC: irc://irc.freenode.com/#pyogp
* Jira: http://jira.secondlife.com/browse/OPEN
* Related Meetings
** Enus Linden's office hours: Friday @ 1:00 http://slurl.com/secondlife/Longfellow/9/97/28


**[[AW Groupies]] - AWG in-world discussion group, Pyogp is occassionally covered at the Tuesday morning meetings at 9:30 SLT
== Project Status ==
**In-world meeting: Fridays, 1:00PM SLT. This is starting July 11.
***We will post the location as soon as we decide.
 
=== Contributors ===
*Main Linden Lab Contributors
**Enus -
** [[User:Infinity Linden|Infinity]] - login and teleport test cases.
**Locklainn -
*Main AWG Contributors (subject to the contributor's agreement)
**Tao Takashi -
**Saijanai Kuhn -
**(your name here)


=== Related Chat Logs ===
PyOGP has moved to https://bitbucket.org/account/user/lindenlab/projects/PYOG
[[:Category:Pyogp Transcripts|Pyogp discussion transcripts]]
* April: [[AWGroupies-2008-04-29|AW Groupies 29 April]]
* May: [[AWGroupies-2008-05-20|AW Groupies 20 May]]  · [[User:Which_Linden/Office_Hours/2008_May_22| Which LInden Office Hours 22 May]]
* June: [[User:Zero_Linden/Office_Hours/2008_June_19|Zero Linden Office Hours 19 June]] [[AWGroupies-2008-06-24|AW Groupies 24 June]] [[User:Zero_Linden/Office_Hours/2008_June_24|Zero Linden Office Hours 24 June]]
* July
** Enus office hours [[User:Enus_Linden/Office_Hours/2008_July_18|18]]
** Pyogp Daily Meeting: [[Pyogp/Chat_Logs/Daily_Meeting/14_jul_2008|14]] [[Pyogp/Chat_Logs/Daily_Meeting/15_jul_2008|15]] [[Pyogp/Chat_Logs/Daily_Meeting/16_jul_2008|16]] [[Pyogp/Chat_Logs/Daily_Meeting/21_jul_2008|21]] [[Pyogp/Chat_Logs/Daily_Meeting/16_jul_2008|16]] [[Pyogp/Chat_Logs/Daily_Meeting/23_jul_2008|23]]


=== In World Meetings ===
client_proxy is now stable[https://lists.secondlife.com/pipermail/pyogp/2010-June/000255.html], though it's only logging things currently.  
[[Pyogp/In-World-Meetings]] - visit this page to see the agendas and discussions that took place<br>
We're going to start having daily meetings at "infinity is full of stars" in Levenhall at 9:30AM SLT each day. These meetings are for the PyOGP coders to meet and discuss design, process and status. In the near term, these are likely to be "somewhat beefy" meetings where design issues are discussed and differences hammered out. In the longer term, these will hopefully be more "Agile Stand-Up" style meetings where we discuss: a. what we've done in the last 24 hours, b. what we're going to do in the next 24 and c. what we're blocked on.


{|style="background:white" width="100%" cellpadding="5"
Note: I think the official repository got lost when bitbucket abandoned mercurial. I saved a copy of the 3 repositories: https://bitbucket.org/tapplek/ [[User:Tapple Gao|Tapple Gao]] ([[User talk:Tapple Gao|talk]])
|- style="background:lightgrey;"
| rowspan="7" style="background:lightgrey;" valign="center" align="center" width="33%" | [[Image:Infinityisfullofstars.jpg]]
|- style="background:lightgrey;"
| align="center" | what
| align="center" | PyOGP Coders Meeting
|- style="background:lightgrey;"
| align="center" | who
| align="center" | PyOGP l33t C0d3rZ
|- style="background:lightgrey;"
| align="center" | where
| align="center" | <span class="plainlinks">[http://world.secondlife.com/place/00b9bc7f-24c3-7be0-ced1-248fcd8915ea "infinity is full of stars" @ Levenhall/91/208/22]</span>
|- style="background:lightgrey;"
| align="center" | when
| align="center" | 9:30AM SLT / 12:30PM Eastern Time / 5:30PM GMT / 6:30PM Central European Time
|- style="background:lightgrey;"
| align="center" | why
| align="center" | for PyOGP contributors to  hash out architecture, design, test and deploy issues
|- style="background:lightgrey;"
| align="center" | notes
| align="center" | there were some notes taken [[User:Infinity_Linden/pyogp|and posted here]]. Sai posted [[Pyogp/Chat_Logs/Daily_Meeting/14_jul_2008|the transcript here]].
|}


== Links ==
Another archive of the repositories that were non-empty in [https://bitbucket-archive.softwareheritage.org/projects/li/lindenlab/ the softwareheritage.com capture]: https://github.com/orgs/SL-PyOGP/repositories [[User:Kadah Coba|Kadah Coba]] ([[User talk:Kadah Coba|talk]])
Please add to the list as you see fit. The more we throw in here, the better off we are in the long run.


* [[Pyogp/LinkCollection|Link Collection]] - a comprehensive list of ressources
== Pic of the Moment ==
[[Image:355571.jpg|900x835px|the EnusBots are coming!]]


* [https://lists.secondlife.com/cgi-bin/mailman/listinfo/pyogp Pyogp mailing list]
Image used with permission. Taken by [[User:Opensource_Obscure|Opensource Obscure]]. (thanks oo! <3)
*[[Pyogp/Client_Lib|Python Client Library]] - dedicated page to the client library
**[[Pyogp/Client_Lib/Development| Pyogp Lib Development Information]] - how is development being done, how do I setup my development sandbox, how do I get the code?*[[Pyogp/Test_Harness| Pyogp Test Framework]] - dedicated page to the test harness
*[[Pyogp/Roadmap| Pyogp Roadmap]] - the overall plan for pyogp. Each dedicated page, however, has its own roadmap
*Internal jira tracking Linden Lab's involvement with the work: uh, I'll get back to you.
*Repository - http://svn.secondlife.com/trac/linden/browser/projects/2008/pyogp.
**Note that the code here has changed. The new code is Tao's base code. The old code, the Linden code, is at pyogp_old.
*License - The Apache V2 License has been selected as the license of choice for pyogp.


== Licensing ==
== Licensing ==
# The code written as part of this effort is subject to the Apache v2 license. Read more at http://opensource.org/licenses/apache2.0.php.
Contributions to Pyogp are subject to Linden Lab's [[Linden_Lab_Official:Contribution_Agreement|Contribution_Agreement]]. The Pyogp open source code is made available subject to the Apache v2 license. Read more at [http://opensource.org/licenses/apache2.0.php opensource.org] and [http://www.apache.org/licenses/LICENSE-2.0 apache.org].


   <excerpt>
   <excerpt>
Line 119: Line 61:
   </excerpt>
   </excerpt>


== Picture of the Moment ==
== History ==
# 05/29/08: Using quite nasty code, a first contact of sorts via python into the agent domain and onto a simulator:
 
Linden Lab and the [[AWG]] ([[AW_Groupies|in-world discussion group page]]) worked together to develop a set of open protocols called the [[Open Grid Protocol]] that can be used to create a virtual world where regions are independently operated (not only by Linden Lab). The project aimed to allow people (organizations, individuals, and the like) to host their own regions in the virtual world and be able to interact and communicate with people in regions hosted elsewhere. In essence, the project's goal was to allow open-source region hosting.
 
AWG and Linden Lab plan to share the effort in writing a test harness that executes tests against implementations of the Open Grid Protocol.
 
The intent is not to test SL or OpenSim (or gridX) themselves. Rather, the desire is to create a framework where the implementations of the protocols can be tested in any virtual environment implemented per the Open Grid Protocols as documented. The goal is to use the test harness to test the implementations to make sure that the virtual environment is interoperable with the other virtual environments that have implemented the OGP. However, we also plan to test the current SL protocols (the Legacy protocols). We plan to be able to test at the smallest functional level possible, akin to unit testing, and to have the ability to use the framework to sequence steps to enable state specific tests to be run.
 
The longer-term vision is essentially a [[Pyogp_Client_Lib|client library]], capable of navigating the grid and interacting with the various hosts, sitting next to a testing framework, happily running along telling us what works where, and where something needs a little attention to work according to specification...
 
For more detail on OGP, see a visual representation of the upcoming [[Open Grid Platform Projects Q2-Q3|projects]] and a general [[Structural Design Overview|introduction]].
 
=== Notes from the kickoff meeting ===
 
At the AWG meeting held April 29, 2008, we discussed what a test harness could look like that would be used to test the agent-domain, rez-avatar, and overall work being done implementing the open grid protocols. I'd like to summarize, and continue the discussion on the mailing list, in-world, and on the wiki. See [[AWGroupies-2008-04-29|meeting chat log]].
 
How do we start?
 
Let's work on defining the test harness components (from the meeting):
# Login
# Caps (and while it's around the UDP pipe)
# Message Handlers (see chttp)
# Basic web server parts for the Agent, Region and grid bits (ideally a snap in framework)
# Test framework
# Test data (I put this here, not really as a component of the harness, more as a "i'm not telling you my test account's password and what are we gonna do about it" thing)
 
Python seems to be the flavor of choice here, with a requirement that it accommodate non-python components as needed. The repository for the code is proposed to be maintained by Linden Lab, distributed as an open source export, under the Apache v2 License (see http://opensource.org/licenses/apache2.0.php). The process and details here are tentative, and need more attention...
 
There is plenty to be figured out. How to start, who wants to play, details are all TBD. My role is primarily intended as one who will facilitate dialogue and contribute as much as possible, but this is intended as a joint effort.


[[Image:Pyogp_roots.jpg|thumb|none| pyogp and ad enabled sl viewer on a vaak sim via aditi's agent domain]]
-- Enus Linden


[[Category:Architecture Working Group]]
[[Category:Architecture Working Group]]
[[Category:Grid_Interoperability]]
[[Category:Grid_Interoperability]]
[[Category: Pyogp|*]]
[[Category: Pyogp|*]]
[[Category:Pyogp_Kitchen_Sink]]
[[Category: AW Groupies]]
[[Category: AW Groupies]]
[[Category:Automated Testing]]

Latest revision as of 03:19, 13 September 2022

Overview

What Is It?

Pyogp is an open source project to explore a suite of python based Second Life client libraries and to produce an automated testing framework.

PyOGP is useful for:

  • learning more about Second Life's client-server relationship
  • prototyping client side features
  • quickly writing tests for software which communicates using LLMessageSystem-like messages
  • demonstrating protocol proposals
  • building test suites which validate Second Life simulator and grid functionality

Getting Started

See PyOGP Client Library Development Sandbox for instructions on the mechanics of working with the PyOGP package suite.

For a more comprehensive overview of working within the structure of classes and event systems in PyOGP packages, take a look at PyOGP Client Library.

How To Contribute

Project Status

PyOGP has moved to https://bitbucket.org/account/user/lindenlab/projects/PYOG

client_proxy is now stable[1], though it's only logging things currently.

Note: I think the official repository got lost when bitbucket abandoned mercurial. I saved a copy of the 3 repositories: https://bitbucket.org/tapplek/ Tapple Gao (talk)

Another archive of the repositories that were non-empty in the softwareheritage.com capture: https://github.com/orgs/SL-PyOGP/repositories Kadah Coba (talk)

Pic of the Moment

the EnusBots are coming!

Image used with permission. Taken by Opensource Obscure. (thanks oo! <3)

Licensing

Contributions to Pyogp are subject to Linden Lab's Contribution_Agreement. The Pyogp open source code is made available subject to the Apache v2 license. Read more at opensource.org and apache.org.

 <excerpt>
 Copyright 2008, Linden Research, Inc.
 
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </excerpt>

History

Linden Lab and the AWG (in-world discussion group page) worked together to develop a set of open protocols called the Open Grid Protocol that can be used to create a virtual world where regions are independently operated (not only by Linden Lab). The project aimed to allow people (organizations, individuals, and the like) to host their own regions in the virtual world and be able to interact and communicate with people in regions hosted elsewhere. In essence, the project's goal was to allow open-source region hosting.

AWG and Linden Lab plan to share the effort in writing a test harness that executes tests against implementations of the Open Grid Protocol.

The intent is not to test SL or OpenSim (or gridX) themselves. Rather, the desire is to create a framework where the implementations of the protocols can be tested in any virtual environment implemented per the Open Grid Protocols as documented. The goal is to use the test harness to test the implementations to make sure that the virtual environment is interoperable with the other virtual environments that have implemented the OGP. However, we also plan to test the current SL protocols (the Legacy protocols). We plan to be able to test at the smallest functional level possible, akin to unit testing, and to have the ability to use the framework to sequence steps to enable state specific tests to be run.

The longer-term vision is essentially a client library, capable of navigating the grid and interacting with the various hosts, sitting next to a testing framework, happily running along telling us what works where, and where something needs a little attention to work according to specification...

For more detail on OGP, see a visual representation of the upcoming projects and a general introduction.

Notes from the kickoff meeting

At the AWG meeting held April 29, 2008, we discussed what a test harness could look like that would be used to test the agent-domain, rez-avatar, and overall work being done implementing the open grid protocols. I'd like to summarize, and continue the discussion on the mailing list, in-world, and on the wiki. See meeting chat log.

How do we start?

Let's work on defining the test harness components (from the meeting):

  1. Login
  2. Caps (and while it's around the UDP pipe)
  3. Message Handlers (see chttp)
  4. Basic web server parts for the Agent, Region and grid bits (ideally a snap in framework)
  5. Test framework
  6. Test data (I put this here, not really as a component of the harness, more as a "i'm not telling you my test account's password and what are we gonna do about it" thing)

Python seems to be the flavor of choice here, with a requirement that it accommodate non-python components as needed. The repository for the code is proposed to be maintained by Linden Lab, distributed as an open source export, under the Apache v2 License (see http://opensource.org/licenses/apache2.0.php). The process and details here are tentative, and need more attention...

There is plenty to be figured out. How to start, who wants to play, details are all TBD. My role is primarily intended as one who will facilitate dialogue and contribute as much as possible, but this is intended as a joint effort.

-- Enus Linden