[RFC] bzr-packagers team
Gordon Tyler
gordon at doxxx.net
Tue Mar 9 01:34:56 GMT 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 3/8/2010 1:12 AM, Ian Clatworthy wrote:
> I spend a large amount of last week fighting our Windows installer
> scripts to find and correct some problems. In the process, I was
> reminded about the technical debt we have in that space. To be more
> explicit, the knowledge about what components make up a particular
> installer are scattered across multiple places: a buildout.cfg script, a
> bat file template (man I hate maintaining bat files) and an installer
> configuration file. Adding new plugins, dependencies (e.g. subvertpy)
> and help files is currently a fragile, buggy process. :-(
The Mac OS X installers use a custom-written build system, the majority
of which was written by Guillermo Gonzalez and Jean-Francois Roy and has
been tweaked by me. It has the following structure:
config.py - Basically just dicts in a known structure which describe
packages, versions, where to download the tarball or branch from.
fetch-externals.py - Knows how to download tarballs and PDF docs based
on the config.
build.py - Extracts, compiles and installs each package (including pyqt)
into its own dist directory, then runs the Packages tool to build the
Mac OS X Installer file and finally combines that and the PDF docs into
a internet-enabled compressed disk image.
There are some ancillary files like rtf docs for the Welcome, Readme and
Conclusion pages of the installer.
Building can be as simple as:
$ python build.py
or as complicated as:
$ python fetch-externals -d -p && python build.py
It expects the Qt framework to be installed on the build machine and
grabs a copy of the QtCore and QtGui frameworks to be included in the
installer.
> I've started work on a DRY[#], One-Click Build approach: a single file
> called bazaar_releases.py that contains the metadata for what
> constitutes each installer. When complete, adding new components to our
> Windows builds will be as simple as ...
>
> 1. edit bazaar_releases.py
> 2. ./build.py installers [which installers]
Nice idea. Having one definition of which plugins are included in a
release would be nice. Currently, I've subscribed to the
bzr-windows-installer branch and update the Mac installer config
accordingly.
> Under the covers, buildout, setup.py and Inno will still be used but the
Or the Mac build script?
Ciao,
Gordon
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJLlaXAAAoJEIrPJfWinA2u6ZAIAIj4TV7Ax27C1kPn60yzjMdF
HFwa+htievBHxl+Kw/ki2nYkfks/Iqa8jI0n7aZ4X1cItYaJWldv+TNUjzDN7cYB
ZBW5wmldlAWaqPqtJ0Y8o/xOkIqBgeH9G/RWo3kw9D8mmp/AhZF5l9czIbsFHpQ5
AyNm8uKmVmKEd3s6rnRFfS6UUPYXSQfxAwsnrGgFxOSyxVK9xvWwzRYY0eC7sO7N
+3AuMgSOZkhpsnIuRhURXFOMMAsCsaCY5IS3UL+txlW/DUnl7KxEOmHOiGpMPFXM
XlLAJx5GpDSaoEK+cqJw1RhOLgM+inBabeP8fYAiQ81Xu5Gl7dwQzjt7+5jtPz4=
=VFCg
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list