Difference between revisions of "PyOGP"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 7: Line 7:


== Project Status ==
== Project Status ==
*Current Interop project status - [[Interop_Live_Protocol]]
*First stab at framework is available at https://svn.secondlife.com/svn/linden/projects/2008/pyogp/
*Sample script which logs into aditi's agent domain and establishes a presence on a simulator on vaak: https://svn.secondlife.com/svn/linden/projects/2008/pyogp/examples/pyogp.lib-login.py
We have a few decisions to make:
*[http://www.muthukadan.net/docs/zca.html ZCA] or no ZCA - ZCA enables flexibility via modularity with a component based framework. The intent would be to incorporate this into the library, while the test harness bits would remain 'stock' python. Tao Takashi will extend his initial attempt at this one for AWG and LL to review early next week.
*Incorporate [http://pypi.python.org/pypi/zc.buildout/1.0.0b30 buildout]?
*Test framework: To [http://docs.python.org/lib/module-doctest.html doctest] or not to doctest? We are certainly planning to use [http://docs.python.org/lib/module-unittest.html unittest]
*Determine how to handle test data. I imagine we'll build a template and interface to an implementation of the template, and leave contents up to the developer.


== Technical Detail ==
== Technical Detail ==
Not much here yet... As the library grows, so does the need for documentation.
#The beta grid has an agent domain login accessible at https://login1.aditi.lindenlab.com/cgi-bin/auth.cgi
#The beta grid has an agent domain login accessible at https://login1.aditi.lindenlab.com/cgi-bin/auth.cgi
#Currently available Regionuri list (log into the agent domain running on aditi, show up on vaak!). Use the regionuri parameter in viewers built from http://svn.secondlife.com/trac/linden/browser/branches/interop-2, or better yet for this effort, use a pyogp script!
#Currently available Regionuri list (log into the agent domain running on aditi, show up on vaak!). Use the regionuri parameter in viewers built from http://svn.secondlife.com/trac/linden/browser/branches/interop-2, or better yet for this effort, use a pyogp script!
#*Regionuri list (log into the agent domain running on aditi, show up on vaak!). Use the regionuri parameter in viewers built from http://svn.secondlife.com/trac/linden/browser/branches/agent-domain-2
#*#http://sim1.vaak.lindenlab.com:13000    Dore
#*#http://sim1.vaak.lindenlab.com:13000    Dore
#*#http://sim1.vaak.lindenlab.com:13001    Card
#*#http://sim1.vaak.lindenlab.com:13001    Card
Line 31: Line 20:
#*#http://sim2.vaak.lindenlab.com:13001    Morris
#*#http://sim2.vaak.lindenlab.com:13001    Morris


== Open Topics ==
== Project Tasks ==
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.
#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.
#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...
#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...
#License - The Apache V2 License has been selected as the license of choice for pyogp (or whatever name we agree upon, see next point).
#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 (I'd like to not debate for an hour on these. Tao had suggestions, I like em. Please speak up if you have strong reservations about the suggested naming).
#Naming (I'd like to not debate for an hour on these. Tao had suggestions, I like em. Please speak up if you have strong reservations about the suggested naming).
Line 39: Line 29:
#*Python test framework (unittest/doctest) - ogptest
#*Python test framework (unittest/doctest) - ogptest
#Discussion Times - Despite Enus heading out for a 3 week vaca on the right coast of the usa, I'll set up an office hours time of sorts to meet with AWG and Lindens to chat about progress and next steps. Coming soon to a gcal near you.
#Discussion Times - Despite Enus heading out for a 3 week vaca on the right coast of the usa, I'll set up an office hours time of sorts to meet with AWG and Lindens to chat about progress and next steps. Coming soon to a gcal near you.
 
== Collaboration ==
== Components (and supporting environmental details)==
Once we get a collaboration schedule determined it will be posted here.
Initial stubs at a library codebase and directory structure can be found here using your favorite Subversion client:<br>
*Main Internal Contributors
* [[Pyogp_Client_Lib]] - wiki dedicated to the client lib
** Enus -
* https://svn.secondlife.com/svn/linden/projects/2008/pyogp/ - svn repo for the current pyogp project<br>
**Infinity -
Disclaimer*: Everything in the repo now will change dramatically in the next few weeks as things firm up structure wise. My desires for the work include: a simple, well defined library, a separate test framework (unittest, the initial high level code to be added this week), an samples/examples sandbox, and clean well commented code. That said, none of the above are in place now. They will be. More sophisticated implementations can evolve over time, or can be included on the side of the library...
**Locklainn -
 
*Main AWG Contributors (subject to the contributor's agreement)
These are the currently envisioned components.
**Tao Takashi -
#Login
**Saijanai Kuhn -
#*The beta grid has an agent domain login accessible at https://login1.aditi.lindenlab.com/cgi-bin/auth.cgi
#*Parameters = firstname, lastname, password (or md5-password as '$1$' + md5-hash)
#*Regionuri list (log into the agent domain running on aditi, show up on vaak!). Use the regionuri parameter in viewers built from http://svn.secondlife.com/trac/linden/browser/branches/agent-domain-2
#*#http://sim1.vaak.lindenlab.com:13000    Dore
#*#http://sim1.vaak.lindenlab.com:13001    Card
#*#http://sim1.vaak.lindenlab.com:13002    Grigiano
#*#http://sim1.vaak.lindenlab.com:12035    Island for Misfit Toys
#*#http://sim2.vaak.lindenlab.com:12035    Ahern
#*#http://sim2.vaak.lindenlab.com:13000    Miramare
#*#http://sim2.vaak.lindenlab.com:13001    Morris
#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 - unittest, doctest
#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)  
 
 
Tao Takashi has hit the ground running with an experimental framework which has been made available [http://code.google.com/p/pysecondlife/ here]. Read more at his blogpost describing the start of his work at his very long [http://mrtopf.de/blog/secondlife/worldofsl/setting-up-a-framework-for-a-python-implementation-of-the-open-grid-protocol-technical url]. Once a repository is available, I'd plan to pull this in.


== Links ==
== Links ==
Line 71: Line 43:
=== Project pages ===
=== Project pages ===
*[[Pyogp_Client_Lib|Python Client Library]]
*[[Pyogp_Client_Lib|Python Client Library]]
*[[Pyogp_Test_Harness|Pyogp Test Harness]]
*[[Pyogp_Test_Harness| Pyogp Test Harness]]
*[[Pyogp/Roadmap| Pyogp Roadmap]]
*[[Pyogp/Specification| Pyogp Specification]]
<br>
*Internal jira tracking Linden Lb's involvement with the work: uh, I'll get back to you.
*Internal jira tracking Linden Lb's involvement with the work: uh, I'll get back to you.
*Naming - Python client library name - pyogp
*Repository - http://svn.secondlife.com/trac/linden/browser/projects/2008/pyogp.
*Repository - http://svn.secondlife.com/trac/linden/browser/projects/2008/pyogp.
*Contributions - Enus, Infinity, and Locklainn will be working this internally, as well as AWG contributors (subject to the contributor's agreement). Tao Takashi and Saijanai Kuhn will be more engaged than most on this work.
*License - The Apache V2 License has been selected as the license of choice for pyogp.
*License - The Apache V2 License has been selected as the license of choice for pyogp.
*Communication
*Communication
**IRC: irc://irc.freenode.com/#pyogp
**IRC: irc://irc.freenode.com/#pyogp
**mailing list: TBD
**mailing list: TBD
**Discussion Times - Despite Enus heading out for a 3 week vaca on the right coast of the usa, I'll set up an office hours time of sorts to meet with AWG and Lindens to chat about progress and next steps. Coming soon to a gcal near you.
**External Wiki: https://wiki.secondlife.com/wiki/AWG_Test_Harness


=== OGP documentation ===
=== OGP documentation ===

Revision as of 06:41, 26 June 2008

Overview

AWG (in-world discussion group page) and Linden Lab plan to share the effort in writing a test harness which executes tests against implementations of the Open Grid Protocol (OGP). 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. 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 a smidge more detail on OGP, see a visual representation of the upcoming projects and a general introduction.

Project Status

Technical Detail

  1. The beta grid has an agent domain login accessible at https://login1.aditi.lindenlab.com/cgi-bin/auth.cgi
  2. Currently available Regionuri list (log into the agent domain running on aditi, show up on vaak!). Use the regionuri parameter in viewers built from http://svn.secondlife.com/trac/linden/browser/branches/interop-2, or better yet for this effort, use a pyogp script!

Project Tasks

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.

  1. 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.
  2. Contributions - As we are going to be hosting the source code for this, contributions will be subject to Linden Lab's standard contributor's agreement. I hope this doesn't prevent good work here...
  3. License - The Apache V2 License has been selected as the license of choice for pyogp (or whatever name we agree upon, see next point).
  4. Naming (I'd like to not debate for an hour on these. Tao had suggestions, I like em. Please speak up if you have strong reservations about the suggested naming).
    • Python client library name - pyogp
    • Python test framework (unittest/doctest) - ogptest
  5. Discussion Times - Despite Enus heading out for a 3 week vaca on the right coast of the usa, I'll set up an office hours time of sorts to meet with AWG and Lindens to chat about progress and next steps. Coming soon to a gcal near you.

Collaboration

Once we get a collaboration schedule determined it will be posted here.

  • Main Internal Contributors
    • Enus -
    • Infinity -
    • Locklainn -
  • Main AWG Contributors (subject to the contributor's agreement)
    • Tao Takashi -
    • Saijanai Kuhn -

Links

Please add to the list as you see fit. The more we throw in here, the better off we are in the long run.

Project pages


OGP documentation

A request has been made to keep docs more current

AWG Test Harness

Related scripting efforts

Related Chat Logs

irc

AWG In-world discussion group

Licensing

  1. 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.
 <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>

Picture of the Moment

  1. 05/29/08: Using quite nasty code, a first contact of sorts via python into the agent domain and onto a simulator:
    pyogp and ad enabled sl viewer on a vaak sim via aditi's agent domain