2006-07-18  Reinout van Rees  <reinout@zestsoftware.nl>

	* src/instancemanager/utils.py: Added svn export support.

	* setup.cfg: Released 0.3.

2006-07-18  Maurits van Rees  <maurits@zestsoftware.nl>

	* src/instancemanager/defaults.py: Fixed missing comma and wrong
	order of actions in fresh and soft multiaction.

2006-07-17  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/actions.py,
	src/instancemanager/actionutils.py: Refactor use of
	InvokedInVolatileDir Exception: move it to actionutils and also
	use it in class CreateInstanceAction.

2006-07-17  Russ Ferriday <russf@topia.com>

	* src/instancemanager/actions.py: renamed avoidUsageWithinProductsDir()
	to  trapUsageWithinVolatileDir and raise exception. More generic approach 
	can be used with similar tests in ZEO handing. Ref. email with Mauritz.

2006-07-17  Reinout van Rees  <r.van.rees@zestsoftware.nl>

	* src/instancemanager/actions.py: Added forced full backup,
	snapshot backup, snapshot restore and sync options to a new
	--repozo action. 

	* src/instancemanager/actionutils.py: Refactored the backup and
	restore actions in preparation for a more diverse repozo action.

	* src/instancemanager/actions.py: Large-scale restructuring of the
	way instancemanager handles options. I'm using python's optparse
	module now. See "instancemanager -h" for a usage message.

	Big change also: multi-actions. You can provide per-project
	collections of actions grouped together under a single name. By
	default, fresh and soft are provided.

2006-07-17  Russ Ferriday <russf@topia.com>
	* src/instancemanager/actions.py: added avoidUsageWithinProductsDir()
	to prevent occurrence of current dir being deleted and raising
	unexplained IOError. Currently warns in the case the post execution
	directory will be invalid.
	
	* src/instancemanager/sources.py: trivial logging and comment change
	
2006-07-12  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/actions.py (CreateInstanceAction.run): Fixed
	old TODO: Also check for current working dir being *below* the
	instance dir before creating a new instance.

2006-07-12  Reinout van Rees  <reinout@vanrees.org>

	* src/instancemanager/actions.py: Added support for a zeo
	server+client setup. If you add a use_zeo=True option to your
	config, instancemanager will create a zeo server and a zeo client
	for you. Copying an existing database will copy it to the zeo
	server's var/ directory, then. There's an extra startzeo/stopzeo
	command, also.

2006-07-10  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/quickreinstaller.py: Added FakeResponse as
	this was needed by a product. That product still gives other
	errors, but those should be unrelated.

2006-07-09  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/quickreinstaller.py,
	src/instancemanager/actions.py, src/instancemanager/defaults.py :
	Added config option 'generic_setup_profiles' to apply site
	customizations with GenericSetup.  Please test.
	
2006-07-08  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/sources.py: First check if target is symlink
	before removing it.  Previous implementation would remove the
	contents of a symlink to a directory and then fail.

2006-07-06  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/actions.py: check for existence of
	bin/zopectl.

	* src/instancemanager/mainprogram.py: add performActionOnProject
	function to remove some code duplication.
	
2006-07-02  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/defaults.py: Changed double archive_sources and
	archive_basedir_template to their bundle variants.	
	
2006-06-27  Russ Ferriday <russf@topia.com>

	* replaced "tgz" with "archive" in config attribute names, while
	maintaining compatibility with attribute names in existing config
	files.  Allowed non-gzipped archives, and refactored archive
	expansion into one utility function.

2006-06-26  Reinout van Rees  <reinout@isengrim.ddns.hightechcampus.nl>

	* src/instancemanager/configuration.py: Patch by Russ Ferriday to
	prevent copying of .pyc files to the .instancemanager config dir.

2006-06-22  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/sources.py: warn before removing a product
	when switching to another version (e.g. symlink instead of tgz).
	Also use removeTargetIfExists() when adding a tgz or symlink
	source.

	* src/instancemanager/configuration.py: sort the sources so the
	order of product installation is clear: bundles first, then
	singles.

2006-06-21  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* bash_completion, src/instancemanager/actions.py: Added fg action
	to put the zope instance in the foreground.  You first need to
	stop it manually (e.g. with the stop action).

2006-06-21  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/instancemanager/mainprogram.py: loglevels in lowercase are
	allowed now.

2006-06-20  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/mainprogram.py, src/sources.py: Added command line option to
	set the log level for the log that is printed to standard out.
	With help from Joris Slob.

2006-06-20  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* bash_completion: pretty functional now.

2006-06-19  Reinout van Rees  <reinout@isengrim.ddns.hightechcampus.nl>

	* src/instancemanager/mainprogram.py: Added project alias ALL that
	performs the action (like 'stop') for all projects.

2006-06-08  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* src/quickreinstaller.py: Use request for making a new plone
	site, which makes this work again.  Also check if ATContentTypes
	needs to be updated.

	* src/sources.py: If a tgz source ends with 'zip' unzip it instead
	of using tar.

2006-06-06  Reinout van Rees  <r.van.rees@zestsoftware.nl>

	* src/mainprogram.py: Corrected error on first startup: the config
	dir is now being created.

	* setup.py: Large-scale moving: putting instancemanager as a
	directory inside src/ instead of having the files directly in
	src. Also switched to using setuptools.

	* setup.py: instancemanager is now easy-installable using
	"easy_install instancemanager"!

2006-06-04  Jean-Paul Ladage <j.ladage@zestsoftware.nl>

	* src/actions.py: Added restore action, which restores the last
	available backup from the backup repository directory. This action
	will also remove the temporary files: Data.fs.tmp, Data.fs.index
	and Data.fs.lock.

	* Refactored backup and restore action. For each project a
	subdirectory is created inside the BackupsBaseDir.

2006-06-02  Jean-Paul Ladage <j.ladage@zestsoftware.nl>

	* src/actions.py: Refactored the backup action, it now checks if
	the target folder exists and will created it if missing. Also set
        the PYTHONPATH using os.environ. 

	* refactored ParseArguments. you can now use either:
	instancemanager <action> <project>
	or
	instancemanager <project> <action>
	Also invalid projects or actions will be detected and will throw
	a warning.

2006-06-01  Jean-Paul Ladage <j.ladage@zestsoftware.nl>

	* src/actions.py: Added backupDatabase action which uses repozo.py
	to make an online backup of the instance Data.fs

        * src/configuration.py: Added a backupBaseDir method which returns
	the backup_basedir_template variable from config. Also added
        databasePath method which returns the full path to the instance
        Data.fs

        * src/defaults.py: Added the backup_basedir_template variable for
	storing backups

2006-06-01  Reinout van Rees  <reinout@vanrees.org>

	* src/actions.py: Added loads more documentation.

	* src/quickreinstaller.py: Removed the fake request and the not
	quite elegant passing-along of REQUEST. Copied some boilerplate
	code Daniel Nouri showed me yesterday (makerequest). Much
	neater. Less code! :-)

	* src/quickreinstaller.py: Re-added the fake request later on
	because cmflinkchecker ruins later reinstalls otherwise. But I
	re-added it just inside the actual product reinstall part, so the
	code stays cleaner than it was before.

2006-05-01  Maurits van Rees  <maurits@vanrees.org>

	* src/quickreinstaller.py: Create a plone site with the name of
	the config option plone_site_name if it does not exist yet.  Needs
	more eyeballs though.

	* src/action.py, src/sources.py: addProduct() now checks if the
	source for that product exists and for now just gives a warning if
	it doesn't.
	
2006-05-29  Reinout van Rees  <reinout@vanrees.org>

	* src/quickreinstaller.py: Moved the fake request so that the
	reinstall method also uses it. Needed for (at least)
	textindexng3.
	
2006-05-29  Maurits van Rees  <m.van.rees@zestsoftware.nl>

	* bash_completion: Beginning of command completion in bash.
	
2006-05-25  Reinout van Rees  <reinout@vanrees.org>

	* setup.py: Fixed setup to support python 2.3.

	* setup.py: Released as 0.2.

2006-05-24  Maurits van Rees  <m.van.rees@zestsoftware.nl>
	
	* src/actions.py: Added a printconfig action that prints the
	sorted configuration, with variables expanded.

	* src/configuration.py: Handle exception in expandTemplate when
	the template is not a string.
	
2006-05-24  Reinout van Rees  <reinout@vanrees.org>

	* src/actions.py: Calling our quickreinstall script instead of
	depending on a custom made script inside the Data.fs. Updated the
	'soft' and 'fresh' targets for this.

	* src/quickreinstaller.py: Added script that gets fed to "zopectl
	run" to quickreinstall the products.

	* src/utils.py: Logfile now gets saved to the ~/.instancemanager
	directory instead of being littered all over the place into every
	directory from which you run the instancemanager.

2006-05-22  Maurits van Rees  <m.van.rees@zestsoftware.nl>
	
	* In the Create action instancemanager now exits with an error
	when the current dir is the instance dir, as mkzopeinstance would
	fail in that case.
	
2006-05-22  Reinout van Rees  <reinout@vanrees.org>

	* Added support for pre-made zope.conf files (for when
	instancemanager's handling just doesn't cut it).

2006-05-18  Reinout van Rees  <reinout@isengrim.ddns.hightechcampus.nl>

	* src/actions.py: Added info-logging of zope port when starting
	up (handy when juggling some 20 instances and so). :-)

	* src/sources.py: Bundle sources now overwrite files or
	directories if they already exist. Needed for README.txt files or
	so that are included in bundles.

2006-05-15  Reinout van Rees  <reinout@vanrees.org>

	* MANIFEST.in: Added the src/skeleton directory to the generated
	.tgz and uploaded a new 0.1 .tgz to plone.org.

2006-05-11  Reinout van Rees  <r.van.rees@zestsoftware.nl>

	* 0.1 release!
	
	* actions.py: On creation, the zope config is changed for port
	number, verbose security and debug mode.
	
	* setup.py: Added distutils installation (including extra
	instruction for moving the executable to /usr/local/bin in
	INSTALL.txt).

	* copy_defaults_to_userdefaults.py: Added utility script to
	prepare an up-to-date userdefaults.py for the skeleton directory.

	* defaults.py: Added full documentation for all options.

	* actions.py: Made quickreinstall call optional.

2006-05-10  Reinout van Rees  <reinout@vanrees.org>

	* sources.py: Added symlinkbundle source. (Handy for svn bundle
	checkouts of plone2.5, for instance).

2006-05-09  Reinout van Rees  <reinout@vanrees.org>

	* all: Started the project. Base sources, instance creation,
	documentation, reinstalling, product install, etc. Works for one
	of my projects already.
