User:Enus Linden/Pyogp Refactor Notes
I'll keep track generally of what I do here. Sometimes it will be very explicit, particularly when dealing with architecture, other times it will just be narrative...
Step 1
ToDo List:
1. move all license info to top of file in trunk of pyogp.lib.base, with a new line at the top so Sphinx doesn't capture it...
Done:
1. removed the obvious directories
Last revision prior to the refactor starting.
enus$ svn info
Path: .
URL: https://svn.secondlife.com/svn/linden/projects/2008/pyogp
Repository Root: https://svn.secondlife.com/svn/linden
Repository UUID: a6265765-422e-0410-accc-9fb60e44a920
Revision: 2596
Node Kind: directory
Schedule: normal
Last Changed Author: kotler.linden
Last Changed Rev: 2595
Last Changed Date: 2009-08-10 14:51:57 -0700 (Mon, 10 Aug 2009)
Directory listing of the root of https://svn.secondlife.com/svn/linden/projects/2008/pyogp:
enus$ ls -l | awk -F" " '{print $9}'
CONTRIBUTORS.txt
LICENSE.txt
apps
buildouts
examples
indra
pyogp.interop
pyogp.lib.agentdomain
pyogp.lib.base
pyogp.testharness
sandbox
tests
First steps: clean up the root directory of cruft...
https://svn.secondlife.com/svn/linden/projects/2008/pyogp should be the home for a set of packages, nothing more.
To accomplish this, we need to:
create pyogp.apps as a package
create pyogp.test (move pyogp.interop components here, create a new test wrapper)
removes apps/ (depends on: create pyogp.apps as a package)
remove examples/
remove indra/
remove sandbox/
remove tests/
we'll also get rid of buildouts/, but must first come up with alternate install/config instructions
CONTRIBUTORS.txt and LICENSE.txt need to move to each package
Done:
1. removed the examples directory
enus$ svn log examples
------------------------------------------------------------------------
r1348 | tao.takashi | 2008-10-23 14:09:06 -0700 (Thu, 23 Oct 2008) | 29 lines
enus$ svn delete examples
D examples/simplelogin/login.py
D examples/simplelogin/README.txt
D examples/simplelogin
D examples/presence/presence/configure.zcml
D examples/presence/presence/__init__.py
D examples/presence/presence/test1.py
D examples/presence/presence/events.py
D examples/presence/presence
D examples/presence/setup.py
D examples/presence/setup.cfg
D examples/presence
D examples/old_scripts/makepacketdict.py
D examples/old_scripts/zerocode.py
D examples/old_scripts/legacy/presence_code.py
D examples/old_scripts/legacy
D examples/old_scripts/README.txt
D examples/old_scripts/pyogp-login.py
D examples/old_scripts
D examples/README.txt
D examples
2. removed the indra directory
enus$ svn log indra
------------------------------------------------------------------------
r1189 | enus.linden | 2008-09-16 10:46:22 -0700 (Tue, 16 Sep 2008) | 1 line
enus$ svn delete --force indra
D indra/indra.base/trunk/setup.py
D indra/indra.base/trunk/docs/HISTORY.txt
D indra/indra.base/trunk/docs
D indra/indra.base/trunk/README.txt
D indra/indra.base/trunk/indra/__init__.py
D indra/indra.base/trunk/indra/base/lllog.py
D indra/indra.base/trunk/indra/base/tests/testDocTests.py
D indra/indra.base/trunk/indra/base/tests/__init__.py
D indra/indra.base/trunk/indra/base/tests/indrabase.txt
D indra/indra.base/trunk/indra/base/tests
D indra/indra.base/trunk/indra/base/llsd.py
D indra/indra.base/trunk/indra/base/lluuid.py
D indra/indra.base/trunk/indra/base/__init__.py
D indra/indra.base/trunk/indra/base/cllsd_test.py
D indra/indra.base/trunk/indra/base/config.py
D indra/indra.base/trunk/indra/base/metrics.py
D indra/indra.base/trunk/indra/base
D indra/indra.base/trunk/indra
D indra/indra.base/trunk/setup.cfg
D indra/indra.base/trunk
D indra/indra.base/branches
D indra/indra.base/tags
D indra/indra.base
D indra/buildout/bootstrap.py
D indra/buildout/buildout.cfg
D indra/buildout/src/EXTERNAlS.txt
D indra/buildout/src
D indra/buildout
D indra/indra.ipc/trunk/indra.ipc.egg-info/SOURCES.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info/top_level.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info/namespace_packages.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info/PKG-INFO
D indra/indra.ipc/trunk/indra.ipc.egg-info/entry_points.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info/dependency_links.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info/not-zip-safe
D indra/indra.ipc/trunk/indra.ipc.egg-info/paster_plugins.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info/requires.txt
D indra/indra.ipc/trunk/indra.ipc.egg-info
D indra/indra.ipc/trunk/setup.py
D indra/indra.ipc/trunk/docs/HISTORY.txt
D indra/indra.ipc/trunk/docs
D indra/indra.ipc/trunk/README.txt
D indra/indra.ipc/trunk/indra/__init__.py
D indra/indra.ipc/trunk/indra/ipc/siesta.py
D indra/indra.ipc/trunk/indra/ipc/webdav.py
D indra/indra.ipc/trunk/indra/ipc/compatibility.py
D indra/indra.ipc/trunk/indra/ipc/llmessage.py
D indra/indra.ipc/trunk/indra/ipc/russ.py
D indra/indra.ipc/trunk/indra/ipc/tokenstream.py
D indra/indra.ipc/trunk/indra/ipc/httputil.py
D indra/indra.ipc/trunk/indra/ipc/llsdhttp.py
D indra/indra.ipc/trunk/indra/ipc/mysql_pool.py
D indra/indra.ipc/trunk/indra/ipc/saranwrap.py
D indra/indra.ipc/trunk/indra/ipc/__init__.py
D indra/indra.ipc/trunk/indra/ipc/xml_rpc.py
D indra/indra.ipc/trunk/indra/ipc/servicebuilder.py
D indra/indra.ipc/trunk/indra/ipc/siesta_test.py
D indra/indra.ipc/trunk/indra/ipc
D indra/indra.ipc/trunk/indra
D indra/indra.ipc/trunk/setup.cfg
D indra/indra.ipc/trunk
D indra/indra.ipc/branches
D indra/indra.ipc/tags
D indra/indra.ipc
D indra/indra.util/trunk/setup.py
D indra/indra.util/trunk/docs/HISTORY.txt
D indra/indra.util/trunk/docs
D indra/indra.util/trunk/README.txt
D indra/indra.util/trunk/indra/__init__.py
D indra/indra.util/trunk/indra/util/named_query.py
D indra/indra.util/trunk/indra/util/shutil2.py
D indra/indra.util/trunk/indra/util/helpformatter.py
D indra/indra.util/trunk/indra/util/llversion.py
D indra/indra.util/trunk/indra/util/llmanifest.py
D indra/indra.util/trunk/indra/util/__init__.py
D indra/indra.util/trunk/indra/util/llsubprocess.py
D indra/indra.util/trunk/indra/util/fastest_elementtree.py
D indra/indra.util/trunk/indra/util/term.py
D indra/indra.util/trunk/indra/util
D indra/indra.util/trunk/indra
D indra/indra.util/trunk/setup.cfg
D indra/indra.util/trunk
D indra/indra.util/branches
D indra/indra.util/tags
D indra/indra.util
D indra
3. removed the sandbox directory
enus$ svn log sandbox
------------------------------------------------------------------------
r1189 | enus.linden | 2008-09-16 10:46:22 -0700 (Tue, 16 Sep 2008) | 1 line
enus$ svn delete sandbox
D sandbox/trunk/setup.py
D sandbox/trunk/sandbox/__init__.py
D sandbox/trunk/sandbox/mrtopf/zerocode.py
D sandbox/trunk/sandbox/mrtopf/example1.py
D sandbox/trunk/sandbox/mrtopf/__init__.py
D sandbox/trunk/sandbox/mrtopf/notes/highlevel_api1.txt
D sandbox/trunk/sandbox/mrtopf/notes
D sandbox/trunk/sandbox/mrtopf/networktest/1/client.py
D sandbox/trunk/sandbox/mrtopf/networktest/1/server.py
D sandbox/trunk/sandbox/mrtopf/networktest/1
D sandbox/trunk/sandbox/mrtopf/networktest/2/connection.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/threadedclient.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/threadedclient2.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network/selectudp.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network/threadedudp.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network/threadedudp2.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network/twistedudp.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network/__init__.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network/t.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/network
D sandbox/trunk/sandbox/mrtopf/networktest/2/twistedclient.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/t.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/twistedclient2.py
D sandbox/trunk/sandbox/mrtopf/networktest/2/server.py
D sandbox/trunk/sandbox/mrtopf/networktest/2
D sandbox/trunk/sandbox/mrtopf/networktest/3/client.py
D sandbox/trunk/sandbox/mrtopf/networktest/3/server.py
D sandbox/trunk/sandbox/mrtopf/networktest/3
D sandbox/trunk/sandbox/mrtopf/networktest/4/server2.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/mclient-1.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/mclient.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/mclient2.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/client.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/mclient3.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/mclient4.py
D sandbox/trunk/sandbox/mrtopf/networktest/4/readme
D sandbox/trunk/sandbox/mrtopf/networktest/4/server.py
D sandbox/trunk/sandbox/mrtopf/networktest/4
D sandbox/trunk/sandbox/mrtopf/networktest/README.txt
D sandbox/trunk/sandbox/mrtopf/networktest
D sandbox/trunk/sandbox/mrtopf/._zerocode.py
D sandbox/trunk/sandbox/mrtopf
D sandbox/trunk/sandbox
D sandbox/trunk/setup.cfg
D sandbox/trunk
D sandbox/branches
D sandbox/tags
D sandbox
4. removed the tests directory
enus$ svn log tests
------------------------------------------------------------------------
r734 | tess.linden | 2008-07-03 16:43:08 -0700 (Thu, 03 Jul 2008) | 1 line
enus$ svn delete tests
D tests/simulator
D tests/test_rez_avatar.py
D tests/agentdomain
D tests/test.py
D tests/test_request_rez_avatar.py
D tests/test_derez_avatar.py
D tests/client
D tests
5. check it all in:
enus$ svn ci -m "removing nonessential root directories" .
Deleting examples
Deleting indra
Deleting sandbox
Deleting tests
Committed revision 2602.
Step 2
Clean up directories in pyogp.lib.base/branches
enus$ ls -l | awk -F" " '{print $9}'
appearance
appearance2
asset_upload
callback-refactor
combined_message_handling
enus-refactor
inventory_extension
kotler_tests
mrtopf-networklayer
wx-base
enus$ svn ci -m "removing unneeded branches" --username enus.linden .
Deleting branches/callback-refactor
Deleting branches/combined_message_handling
Deleting branches/enus-refactor
Deleting branches/inventory_extension
Deleting branches/mrtopf-networklayer
Deleting branches/wx-base
Committed revision 2611.
Clean up other base dirs
enus$ svn delete pyogp.testharness/
D pyogp.testharness
enus$ svn ci -m "removing unused package namespace" --username enus.linden .
Deleting pyogp.testharness
Committed revision 2612.
Updated and distributed CONTRIBUTORS.txt LICENSE.txt and README.txt
enus$ svn ci -m "moving LICENSE.txt and CONTRIBUTORS.txt into the proper locations" --username enus.linden
Deleting CONTRIBUTORS.txt
Deleting LICENSE.txt
Adding pyogp.interop/trunk/CONTRIBUTORS.txt
Adding pyogp.interop/trunk/LICENSE.txt
Adding pyogp.lib.agentdomain/trunk/CONTRIBUTORS.txt
Adding pyogp.lib.agentdomain/trunk/LICENSE.txt
Sending pyogp.lib.agentdomain/trunk/README.txt
Adding pyogp.lib.base/trunk/CONTRIBUTORS.txt
Adding pyogp.lib.base/trunk/LICENSE.txt
Adding pyogp.lib.base/trunk/README.txt
Transmitting file data ........
Committed revision 2614.
Remove extra buildout branch
enus$ svn delete --force buildouts/xrds_support
D buildouts/xrds_support/trunk/IGNORES.txt
D buildouts/xrds_support/trunk/bootstrap.py
D buildouts/xrds_support/trunk/buildout.cfg
D buildouts/xrds_support/trunk/src/EXTERNALS.txt
D buildouts/xrds_support/trunk/src
D buildouts/xrds_support/trunk
D buildouts/xrds_support/branches
D buildouts/xrds_support/tags
D buildouts/xrds_support
enus$ svn ci -m "removing unnecessary branch" --username enus.linden
Deleting buildouts/xrds_support
Committed revision 2615.
Removing extra pyogp.interop branch
enus$ svn delete ./pyogp.interop/branches/enus-refactor
D pyogp.interop/branches/enus-refactor/setup.py
D pyogp.interop/branches/enus-refactor/docs/HISTORY.txt
D pyogp.interop/branches/enus-refactor/docs
D pyogp.interop/branches/enus-refactor/README.txt
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_agent_session.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_rez_avatar_place.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_legacy_login.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_region_connect.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_rez_avatar_request.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/__init__.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_agent_info.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_sim_movement.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/helpers.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_teleport.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_rez_avatar_rez.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/chat_window.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_get_region_public_seed.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_sim_presence.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_login.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_rez_avatar_derez.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_agentdomain_event_queues.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_ogp_cap_region_info.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests/test_sim_chat.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/tests
D pyogp.interop/branches/enus-refactor/pyogp/interop/__init__.py
D pyogp.interop/branches/enus-refactor/pyogp/interop/testconfig_template.cfg
D pyogp.interop/branches/enus-refactor/pyogp/interop
D pyogp.interop/branches/enus-refactor/pyogp/__init__.py
D pyogp.interop/branches/enus-refactor/pyogp
D pyogp.interop/branches/enus-refactor/setup.cfg
D pyogp.interop/branches/enus-refactor
enus$ svn ci -m "removing unnecessary branch" --username enus.linden
Deleting pyogp.interop/branches/enus-refactor
Committed revision 2616.
We are left with this core directory structure:
[22:39:23] [enus@sune] pyogp$ ls -l | awk -F" " '{print $9}'
apps
buildouts
pyogp.interop
pyogp.lib.agentdomain
pyogp.lib.base
So we can start on packaging improvements themselves next. First, to explore the pyogp.lib.base package, since that is our focus. We'll clean up other things down the road as needed.
Documentation
Wiki: Current: https://wiki.secondlife.com/wiki/PyOGP https://wiki.secondlife.com/wiki/PyOGP_Client_Library_Development_Sandbox https://wiki.secondlife.com/wiki/PyOGP_Client_Library https://wiki.secondlife.com/wiki/PyOGP_Client_Library_Development https://wiki.secondlife.com/wiki/PyOGP_Client_Library_File_System https://wiki.secondlife.com/wiki/Pyogp/Client_Lib/Architecture https://wiki.secondlife.com/wiki/Pyogp/Client_Lib/Packet https://wiki.secondlife.com/wiki/Pyogp/Documentation/Specification/pyogp.lib.base https://wiki.secondlife.com/wiki/Pyogp/Documentation/Specification/pyogp.interop