[Zope3-dev] Continuous integration, ZopeInstall

PieterB PieterB <pieterb@gewis.nl>
Sun, 18 May 2003 14:47:00 +0200 (CEST)


Hi,

I've been working on a script to generate a Zope instance from scratch
(based on Sidnea's scripts), see thread on Zope-Dev:
http://mail.zope.org/pipermail/zope-dev/2003-May/019627.html

I think a script like that will also be usefull for future installers
(e.g. FreeBSD ports, RPM's, etc.) and for elaborating continious
integration for Zope/Python. 

It would be great to have something similar to the Java developers, such
as:
- Gump (http://jakarta.apache.org/gump/)
  The primary goal of Gump is to get diverse projects to communicate
  early and often about integration, dependencies, and versioning
  management.

- AntHill (http://www.urbancode.com/projects/anthill/default.jsp) 
  tool that ensures a controlled build process (makes nightly builds, runs
  unit tests, generates source code metrics)

- Maven (http://maven.apache.org/)
  Maven is a Java project management and project comprehension tool
  (metrics, checkstyle, changelog, file activity, docs, tests, tasks, etc.)

The first step would be to able to generate SandBoxes using the
same method on every platform. I think the building of Python and
Python modules (e.g. PyXML) can be best done using a shellscript
and/or Makefile. I think it would be the best to write some Python
script that is able to download/get the necesarry files from websites
or CVS (using wget and a CVS-client) and check the dependencies.
The scripts will be controlable using environment variables. For
example to get the most bleeding edge Zope 2, use something like:

8<-----------------------------------------------------

#!/bin/sh
PYTHON_VERSION=2.3b1 	# 2.1.3, 2.2-stable, 2.2.3, 2.3b1, 2.3-dev, dev
ZOPE_VERSION=2.7-dev 	# 2.6.1, 2.6-stable, 2.6-dev, 2.7-dev, 3-dev, dev
PLONE_VERSION=1.0.2-dev	# Empty (don't install plone), 1.0.1, 1.0-stable, 
			# 1.0.2-dev, dev
ZWIKI_VERSION=0.18-dev 	# 0.18, 0.18-dev, dev

make build_python
make test_python
make build_zope_standbox
make test_zope
make test_zope_products
make start		# run the instance
make publish_results	# e.g. send e-mail to some mailinglist

8<-----------------------------------------------------

I think the best name for such a product/pacakage will be ZopeInstaller.

Please let me know what you think of this idea.

PieterB

--
PieterB, http://zwiki.org/PieterB