Hi!

Enus Linden wrote:
In the pyogp discussion on Friday morning, we found ourselves talking about what might constitute a milestone which could be considered a release point. For those who wish to explore further, please see http://wiki.secondlife.com/wiki/User:Enus_Linden/Office_Hours/2008_August_15.

In general, consensus is that pyogp should try and target releases (0.1, 0.2, etc) to synchronize with the protocol documentation as defined in a particular version. So, the functionality in the initial pyogp release will intend to correspond to the current working doc at http://wiki.secondlife.com/wiki/Open_Grid_Protocol, which is Draft 2 of the protocol.

If (when?) the protocol gets splitted into functional pieces we maybe should also discuss if we do the same with our package structure. My idea for both the protocol and the library would be to have separate pieces which also might have alternatives which you can easily plug together (like different IM services, later on different 3d models etc.).

While pyogp adheres to the protocol as defined in this document, some initial work is required to facilitate practical library use. Here is a proposal for what features could be considered as representative of a body of work in pyogp.lib.base that could be considered a 0.1 tagged release.

  1. authentication against an agent domain
  2. login via rez_avatar/place
  3. maintenance of presence against the agent domain
  4. a functional messaging system (UPD, client <-> simulator)
  5. maintenance of presence against the simulator (via messaging system)
  6. avatar teleport
  7. unit tests for all code in the lib

The question here is what 3), 5) and 6) consist of. The actual loop IMHO should be part of the application, not the library but the library should provide all the tools you need (like serialization/deserialization of packets, keeping track of circuits/acks, providing caps infrastructure etc.). The rest very much depends on how you need your application to run I think.

So in general these should be all working as Locklainn showed. As for 1) I guess we wait for the auth changes before we should release it. Is there any timeframe on when this is going to happen.

As the functionality seems mostly in place I think before getting to 0.1 we should have some things cleaned up, added:

- using exceptions throughout the lib (any comments on my proposal, btw?)
- using logging throughout the lib (example coming)
- finished refactoring of the message system
- changed the auth scheme if the change is happening soon.

So should this then be 0.1 or 0.2? If we go with draft numbers maybe it should be 0.2? (although of course this would be strange for a first release, maybe 0.1 now and then jumping on draft numbers?)

As for numbering I would propose the following:

0.x for lib releases according to the draft number (x=draft number)
0.x.y for bugfix releases (no new features) for draft x
1.0 for the first official release according to spec v1.0

and so on.

x can then also be higher than 9, so 0.26 would mean library release for draft 26.

We should also make sure we make it clear in the docs that the API can still change quite a lot. We don't know yet how people really will use the library and what would make the most sense so I would assume that we have to change something. We are still in a quite early stage.

From some release on we can claim it semi-stable then which means that we need to track changes and deprecate old API calls and remove them in the over-next release or so. This means we would have to stay backwards-compatible at least 1 release. Not sure when this should/will happen though, depends on how confident we are and how much additional work we want ;-)

I'd also like to consider a similar target for pyogp.interop, where interop tests were funcational for all of the above. This would also include functional tests for the caps in the protocol.

Let's discuss this list please.

To get to a place where we are comfortable with a 0.1 release, what remains to be done? I believe it is implementing the pending messaging system refactoring, and some amount of good example scripts exercising all of the above.

So, thoughts? Once we've agreed on things, I'll update the wiki with intent.

See above.

cheers,

Christian


--
Christian Scholz                          Homepage: http://comlounge.net
COM.lounge                                   blog: http://mrtopf.de/blog
Luetticher Strasse 10                                    Skype: HerrTopf
52064 Aachen                             Video Blog: http://comlounge.tv
Tel: +49 241 400 730 0                           E-Mail [EMAIL PROTECTED]
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

neue Show: TOPFtäglich (http://mrtopf.de/blog/category/topf-taglich/)

_______________________________________________
Click here to unsubscribe or manage your list subscription:
https://lists.secondlife.com/cgi-bin/mailman/listinfo/pyogp

Reply via email to