Difference between revisions of "PyOGP Client Library Development"

From Second Life Wiki
Jump to navigation Jump to search
(New page: This is the Development page for the Pyogp Client Library.)
 
 
(42 intermediate revisions by 5 users not shown)
Line 1: Line 1:
This is the Development page for the [[Pyogp]] [[Pyogp/Client_Lib | Client Library]].
{{PyOGP/navigation}}
 
'''Note:''' Major revisions are needed to pull this document up to speed.
 
This is the development page for the [[Pyogp]] [[Pyogp/Client_Lib | Client Library]].
If you want to work with us on PyOGP here is all you need to know.
 
== Setup and Preliminary Info==
 
* [[Pyogp/Client_Lib/The_Development_Sandbox| How to setup a development sandbox for developing the library]]
* [[Pyogp/Client_Lib/Filesystem_Structure| The filesystem structure of pyogp]]
 
== Development Principles ==
 
* Tools we use (buildout, eggs, unit tests)
* How do I add new functionality the best way? See [[PyOGP_Client_Library]] for implementation details.
 
== How-Tos ==
 
* [[PyOGP_Client_Library#Extending_Functionality | How do I add a new component/subproject to the project?]]
* [[PyOGP_Package_Unittests | How do I write and run library unit tests? ]]
 
== Code Status ==
*[https://svn.secondlife.com/svn/linden/projects/2008/pyogp/ Current Pyogp Repo] - svn repo of the most up-to-date code we are using for the project
 
== Coding Guidelines ==
 
We've recently published goals to keep in mind while writing new code for PyOGP. Please follow [[PyOGP_Coding_Guidelines]] when possible.
 
== Documentation ==
* Pyogp created documentation
** [[Pyogp/Client_Lib/Packet]] - notes that may help understand the rest
** [[Pyogp/Documentation/Specification/pyogp.lib.base]] - documentation on the code
<br>
* Current Protocols
** [[Current_login_protocols]] - what login is like now
** [[Current_Sim_Capabilities]] - capabilities that are currently used
* OGP Protocols
** [[Structural_Design]] - the design of the new architecture
** [[Open Grid Protocol]] - the outline of the OGP protocols
** [[OGP_Draft_Login|OGP Draft Login flowchart]] - flowchart for current OGP login protocols
** [[SLGOGP_Teleport_Strawman]] - what login may be like
** [[Second_Life_Login_API_Strawman]] - what login may be like
** [[OGP_Draft_Login]] - diagrams of the OGP login
* General Notes
** [[Second_Life_Grid_Protocols/Foundation]] - general protocol information
** [[Protocol]] - this is general information about messaging and the various protocol systems
** [http://en.wikipedia.org/wiki/Comet_(programming) COMET programming]
** [[Eventlet]] - a networking library written in Python, probably going to be used for this project
***NOTE: We have been testing eventlet and it seems there's a problem posting to the seed capability.
****[[Pyogp_Client_Lib/Login_Test_Script]] - a very simple test script using eventlet that fails at the post to the seed cap
***Windows Instructions - Eventlet for Windows is a bit tricky to install
****[[User:Baba_Yamamoto/Eventlet]] - there are some problems with eventlet that Baba has looked into
****greenlet - you MUST have Visual Studio 2003 installed to install greenlet on windows (are there binary versions?). Use easy_install greenlet to install it.
****pyOpenSSl - windows versions
*****[http://webcleaner.sourceforge.net/pyOpenSSL-0.6.win32-py2.4.exe pyOpenSSL py2.4] - windows pyOpenSSL for Python 2.4
*****[http://webcleaner.sourceforge.net/pyOpenSSL-0.6.win32-py2.5.exe pyOpenSSL py2.5] - windows pyOpenSSL for Python 2.5
****util.py - has a dependency on fcntl. Go into eventlet's util.py, and either comment out all the fcntl calls, or for a slightly (not a good fix) better solution, [https://lists.secondlife.com/pipermail/sldev/2007-September/004790.html Donovan's Fix]
** [[Circuit]] - the way to pass two-way information along a UDP connection
** [[Message]] - more detail of messages
** [[Reverse_HTTP]] - I believe this is used (or will be) in the OGP protocols
** [http://www.libsecondlife.org/wiki/Protocol_%28network%29 General Packet Format] - libsecondlife - describes what the general format is for a packet
** [http://www.libsecondlife.org/wiki/ACK ACKs] - libsecondlife - describes what an ACK is
* Coding notes
** [http://www.muthukadan.net/docs/zca.html ZCA Guide] - ZCA that the lib project will be using
* Python Docs
** [http://www.python.org/doc/current/lib/module-distutils.html DistUtils] -
*** [http://www.python.org/community/sigs/current/distutils-sig/ Sig for utils]
** [http://peak.telecommunity.com/DevCenter/PythonEggs Python Eggs] -
*** [http://peak.telecommunity.com/DevCenter/setuptools setuptools] - lib to handle eggs
 
* Old Code
**[http://pysecondlife.googlecode.com/svn/pyogp/pyogp.lib.base/trunk: Tao Takashi's Pyogp] - svn repo - 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].
**[[Presence_Code_Python| Sai's Presence]] and [[Presence_Code_Python_cmd_line| Sai's Presence_cmd_line]] - Saijanai Kuhn's first attempts at some Python presence
**[https://svn.secondlife.com/svn/linden/projects/2008/pyogp_old/ Linden Pyogp] - svn repo of Linden's first stab at framework, using Sai's code as a base
***[https://svn.secondlife.com/svn/linden/projects/2008/pyogp_old/examples/pyogp.lib-login.py pyogp.lib-login.py] - sample script which logs into aditi's agent domain and establishes a presence on a simulator on vaak:
***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...
**[[Example_protocol_code]] - code written about login and presence
** [http://zhaewry.wordpress.com/2008/06/05/happy-jumpy-ruths-interop-takes-a-step/ Interop Ruths] - some news that may be of interest to us
 
== 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.
 
  <excerpt>
  Copyright 2008, Linden Research, Inc.
  <br>
  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
  <br>
  http://www.apache.org/licenses/LICENSE-2.0
  <br>
  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>
 
[[Category: Pyogp_Client_Lib]]

Latest revision as of 10:45, 25 June 2010

Note: Major revisions are needed to pull this document up to speed.

This is the development page for the Pyogp Client Library. If you want to work with us on PyOGP here is all you need to know.

Setup and Preliminary Info

Development Principles

  • Tools we use (buildout, eggs, unit tests)
  • How do I add new functionality the best way? See PyOGP_Client_Library for implementation details.

How-Tos

Code Status

Coding Guidelines

We've recently published goals to keep in mind while writing new code for PyOGP. Please follow PyOGP_Coding_Guidelines when possible.

Documentation


  • Old Code
    • Tao Takashi's Pyogp - svn repo - Tao Takashi has hit the ground running with an experimental framework which has been made available here.
      • Read more at his blogpost describing the start of his work at his very long url.
    • Sai's Presence and Sai's Presence_cmd_line - Saijanai Kuhn's first attempts at some Python presence
    • Linden Pyogp - svn repo of Linden's first stab at framework, using Sai's code as a base
      • pyogp.lib-login.py - sample script which logs into aditi's agent domain and establishes a presence on a simulator on vaak:
      • 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...
    • Example_protocol_code - code written about login and presence
    • Interop Ruths - some news that may be of interest to us

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>