Package: fassembler
This is fassembler, the build system for OpenCore
Home page:http://www.coactivate.org/projects/fassembler/project-homeOverviewThis could be general-purpose build software a la GNU Make, Buildit,
et al.  But it’s developed specifically for the build and deployment
needs of the software that runs CoActivate.org.How to Use FassemblerSeehttp://www.coactivate.org/projects/fassembler/howtoRequirementsPython >= 2.4… and?LicenseSee doc/license.txtHacking FassemblerTo add a projectCreate a subclass of fassembler.project:ProjectAdd an entry point to setup() in setup.pyUpdate doc/ports.txt and fassembler.topp:CheckBasePorts.port_range
if needed.Changes0.7Fassembler changesAdded a newtasks.InstallSpecIfPresentwhich checks if the path
to the requirements spec is present on the filesystem, and does
nothing if the file does not exist.tasks.VirtualEnv(never_create_virtualenv=True)no longer runs
any subtasks.Added a new Taskfassembler.apache.CheckApachewhich will check
the presence a list of required Apache modules.  It must be called
from a Project that subclassesfassembler.apache.ApacheMixin.Project changesfassembler:topp now installs requirements/fassembler-req.txt into
the fassembler virtualenv if that file is present.  This file can
specify add-on packages that provide additional fassembler projects
to be used in the rest of the build.This action was previously done by therebuild-opencore-sitescript
inopencore-fassembler_bootand is being moved here for better
encapsulation of builds.  (A buildshouldbe able to be run entirely
from fassembler; opencore-fassembler_boot should just be a convenience
package that wraps fassembler’s more arcane knowledge.)Various configuration changes in fassembler:buildmaster and buildslave.fassembler:wordpress now checks for the presence of its required Apache
modules, including the Apache PHP module.Bake in pinned requirements for opencore’s i18ndude sub-project.0.6Fassembler changesFassembler has hardcoded expectations that the user’s $LANG is
English – Maker._get_repo_url parses an error message from
Subversion with the assumption that it is in English. This manifests
when running fassembler:topp while it runssvn infoon the etc
directory in a new build, which will exist as an unversioned
directory.It now works if the user’s $LANG is Spanish, as well.  But no other
languages!Of course, this is extremely silly, and should be fixed more
properly immediately.When installing a virtualenv, install setuptools 0.6c11 into the new
virtualenv, always.  This prevents problems on systems whose
virtualenv version installs the broken setuptools 0.6c8 by
default. Symptoms: errors like “unrecognized format” and “global
name ‘log’ is not defined”.Fix sporadic bug in projects whereuse_pip=True: “The expected
executable [‘pip’, ‘-E’, …] was not found.”  Whenuse_pip=True, Fassembler will noweasy_install pipduring
virtualenv creation, and will add thevirtualenv_bin_pathto $PATH
before trying to runpip. This should guarantee that the
executablepipcan be found.Project changesAdd a booleanuse_pipsetting to fassembler:cabochon project.
Default fassembler:cabochon to use pip instead of easy_install,
because it seems to work better here.Modify zeo skel’s configuration to use {{env.var}}/zeo/zdsock (a
unix socket) instead of a port for connections.  Modify zope skels’
configuration to connect to zeo on {{env.var}}/zeo/zdsock as
well. Seehttp://www.coactivate.org/projects/opencore/lists/opencore-dev/archive/2010/07/1278617074321/forum_viewThe RunZopeScriptsWithZeo task now looks for a
config.skip_zopectl_scripts setting.  If it is set to a True value,
the task does nothing.  This can be used to prevent the build from
hanging on this task if another ZEO instance is already running and
the user knows that the zopectl initialization scripts don’t need to
be run, i.e. when building a code upgrade in parallel to a running
site.The fassembler:maildrop and fassembler:zeo projects now include this
skip_zopectl_scripts setting, with default 0.Add a settingsupervisor_varto the supervisor project, which
defaults to{{env.var}}/supervisor.  This is used to build the
paths to the Unix socket file and pidfile used by supervisor.  It
can be useful to set this to a value other than{{env.var}}/supervisorif building an upgrade in parallel to a
running site, so that both the old and the new supervisor processes
can run simultaneously without interference.The extrazope project now runspython setup.py zinstallin the
zcmlloader source directory to copy zcmlloader’s zcml entrypoint
into each additional Zope’s package-includes.  (At some point soon
opencore will stop using zcmlloader in favor of z3c.autoinclude, at
which point these zinstalls won’t be needed anymore.)The extrazope project now creates a separate var directory for each
instance and points to that directory in zope.conf for the
instance’s pidfile, lock file, etc.0.5Addnum_extra_zopesproperty to the environ object, which looks
for anum_extra_zopessetting in the [general] section of
build.ini and returns it as an integer or 0 if no such setting
exists.This setting will then be used to fill in the value ofopencore_remote_uriin the Frontend configuration, allowing the
frontend to proxy to a load-balanced set of Zope instances.Anum_extra_zopessetting has also been added to the
fassembler:topp project, where it is saved to build.ini.0.4This is the first tag made for fassembler.  A lot happened before now
but releases were never cut.In this release:Added fassembler:extrazope project, which will build an additional
Zope instance connected to the same ZEO server.In fassembler:opencore, made thedebugsetting actually work, to
control whether zope starts in debug mode when running./opencore/bin/zopectl fg(where it previously always ran withdebug-mode=on) or./bin/start-opencore(where it previously
always ran withdebug-mode=off)Added a settingnever_create_virtualenvfor
fassembler.tasks.VirtualEnv, which, if set, makes that task act as
an assertion of the given virtualenv’s existence, so that a build
can fail if the virtualenv hasn’t already been created.