User:Enus Linden/Pyogp Refactor Notes

From Second Life Wiki
Revision as of 21:56, 18 August 2009 by Enus Linden (talk | contribs)
Jump to navigation Jump to search

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