From time to time, a new version of mooix will make some change that is not
backwards compatible with older versions. Consult the list below to
determine when such changes are made and what you need to do about it.

Often such a change will involve the moo database, and provision exists for
semiautomatic database upgrades. The mooupgrade program can handle updates
from older versions of the database. If one of the notes below says "run
mooupgrade, it means to run it as root after installing the new version of
mooix, while mood is running. Pass it the following parameters, adjusted
for wherever you have mooix installed on your system:
	mooupgrade -r -s /usr/lib/mooix /var/lib/mooix

If you install mooix from a Debian or RPM package, the package should
take care of running mooupgrade for you when you upgrade it.

1.0rc5.pre1
	The ugly tinyfugue macros for offline file editing will no longer
	work. Offline file editing is now supported only by the MCP Simple
	Edit Package.
	
	The Ruby method Mooix.run no longer automatically converts
	arguments to hashes. Arguments are all arrays by default and
	must be converted if hashes are desired. As such, it now
	accepts no arguments.

1.0rc4
	The init system's shutdown list was split into two lists.
	Some objects have incorrect owners. Also, the single and scripted
	session classes were removed. Several objects moved around in the
	tree. Containers get messagefilter sub-objects. Run mooupgrade to
	deal with these changes.

	A mooix group should be added. The Debian package will do this on
	upgrade.

	Message filters have changed. Any objects that were manually turned
	into old style message filters will need to be changed to use then
	new system. Read =messagefilter= for details.

	Mood reads resource limits from /etc/mooix.conf, and these resource
	limits apply to both mood and all methods. The numbers may need to
	be adjusted for your system.

	All the session classes have moved from mooix:abstract/sessions to
	mooix:sessions. If you have code of your own that refers to the old
	location, update it.
	
	The python binding has changed how mooix fields are accessed.
	Any locally written python methods will require updates.

	The msg method has changed, and any code that did this:
		$obj->msg("foo", location => $bar, %_);
	Should be changed to do this:
		$bar->msg("foo", originator => $obj, %_);
	The above change also applies to python code.
	Zsh code that did this:
		object.msg "foo" $@
	Must change to name the first parameter:
		object.msg "event" "foo" $@
	Ruby code that used the message method:
		self.message("foo", @args)
	Should be updated to use msg instead. Both msg and message accept
	the same arguments, but using msg is cleaner and recommended. The
	message method is still provided but is deprecated and prints
	nasty messages to stderr.
	
	The ruby bindings have been refactored into several files. While:
		require "Mooix"
	still works, this may go away soon. Replace it with:
		require "mooix"
		require "mooix/thing"

1.0rc2
	Several file permissions changed. Run mooupgrade.

	If you have locally written python methods that used the Mooix
	python module, that module has been renamed to mooix, in lower
	case. Your methods should be updated to reflect this.

1.0rc1
	All rooms get location fields, balls get a bouncing field,
	ducks a waddling field, bird's flying field becomes group writable.
	Run mooupgrade.

0.9.17
	Anyone with home-grown session classes should make their write
	method support xml tags, epecially the anti-spoofing <sender>
	tag.

0.9.15
	Run mooupgrade to take care of reogranization of some contrib
	objects.

	If your moo has locally written look.msg or who.msg fields,
	they should be changed to use the new 'session' criteria. See
	=messages= for details.

0.9.3
	Run mooupgrade again to fix admin's shortcuts.

0.9.2
	Builders get a shortcuts field. Run mooupgrade.

0.9.0
	Programmers lose their .awarecounter field. Might want to run
	mooupgrade.

0.7.17
	Mass inheritance fix, run mooupgrade.

0.7.15
	A minor field name change, run mooupgrade

0.7.10
	Objects get hitpoints. Run mooupgrade.

0.7.8
	Any locally written code that uses $object->move(...) needs to change
	to use $object->physics->move(object => $object, ...)

0.7.7
	Run mooupgrade to fix consumables.

0.7.6
	The contents list of all containers changed, and mass and volume
	information has to be calculated, so you must run mooupgrade.

0.7.5	The CALLSTACK environment variable has gone away, and locally
	written code that uses it should be fixed.

0.7.4
	The OBJSTACK environment variable went away, and NEWOBJSTACK is
	renamed to NEWCALLSTACK. Locally written code that uses either
	needs an update. Mooix::ObjStack is gone, replaced with
	Mooix::CallStack, but I doubt anyone has locally written code to
	use *that* old monstrosity.

0.7.1
	Several fields and methods were renamed. Run mooupgrade.

0.6.12
	thinglists can no longer contain encapsulated objects, and they are
	stored differently on disk. To convert them, run mooupgrade.

0.6.8
	Removed the roomcontents object; run mooupgrade.

0.6.7
	Perl methods that use switches after #!/usr/bin/perl will find them
	being ignored when they are run in mood's embedded perl
	interpreter. If you use #!/usr/bin/perl -w in locally written
	methods, you should add "use warnings;" instead.

0.5.99
	Huge changes made to the message system. Any locally written method
	that calls the old ->message method needs to be rewritten to call
	the new ->msg method. All "_msg" fields, including any you or your
	users may have created locally (or with addcommand), should be
	converted to a new format, and renamed to end in ".msg", or deleted.
	
	**** This all must be done manually. ****

	Rewriting methods:

		If you have locally written methods from before this release of
		mooix, they probably send messages like this:

			$this->location->tell(
				message => $this->message('ohit', %_),
				skip => $this
			);
			$this->tell(message => $this->message('hit', %_));
	
		This gets replaced with much simpler code:
	
			$this->msg('hit', %_);

		Methods would sometimes return a message, as a shortcut to
		get it displayed, like this:

			return $this->message('look', %_);

		That can no longer be done, you'll have to find some other
		way.

	Converting _msg files.

		_msg files used to be a simple list of messages, which had
		substitution variables in them that were expanded when the
		message was displayed. There often had to be two message
		files, one that displayed messages from the point of view
		of the person doing something, and the other that wrote the
		same messages from the point of view of others nearby.

		Now there should only need to be one combined file. The
		filename has changed to end in .msg. A special verb
		expansion can be used to conjugate verbs in the messages;
		this often suffices to make one message look right to both
		audiences. Messages are marked now with the sense that
		would be used to perceive them, and a single message might
		be written in several different ways for different senses.
		It's all explained in detail in the =messages= help topic.

0.5.1.12.1
	Added dependency on Tie::Cache perl module.

0.4.1.12.0
	Fixed mooadmin contents list. Run mooupgrade.

0.4.1.11.0
	Removed some cruft older versions of splittree put in
	/var/lib/mooix/abstract/roomcontents. Run mooupgrade if upgrading
	from versions prior to 0.4.0.0.0.

0.3.1.10.0
	Renamed avatar canregister field to register_ok.

	Running mooupgrade recommended.

0.3.1.9.0
	Changed the default starting location for guests and new avatars to
	mooix:system/entrance.

	*** This change cannot be handled by mooupgrade. ***

        If you customized the old default starting location, you'll need
	to either undo this change, or copy your customizations over to the
	new room.

	Added the housekeeper to the heartbeat.
	Renamed avatar's _sleeping method to sleeping.
	Fixed heartbeat object, which had fields copied into it
	incorrectly.
	Running mooupgrade required.
	
0.3.1.8.0
	Added heartbeat object to init's startuplist and shutdownlist.
	Running mooupgrade strongly recommended.

0.3.0.7.0
	Set ownership of system->init's shutdown and startuplists.
	Running mooupgrade pretty much mandatory.

0.2.0.6.0
	Small change to doors, running mooupgrade suggested.

0.2.0.5.0
	Database changes. Run mooupgrade.
