A meta package-manager to deploy projects on UNIX Systemes sponsored by Makina Corpus.
- QuickStart with minitage
- Changelog for minitage.core
- 2.0.40 (2012-08-28)
- 2.0.39 (2012-08-28)
- 2.0.37 (2012-08-28)
- 2.0.36 (2012-08-28)
- 2.0.35 (2012-08-28)
- 2.0.34 (2012-08-28)
- 2.0.33 (2012-05-09)
- 2.0.32 (2012-05-06)
- 2.0.31 (2012-03-26)
- 2.0.30 (2012-03-24)
- 2.0.29 (2012-03-05)
- 2.0.28 (2012-01-23)
- 2.0.27 (2011-02-25)
- -> 1.0.13
- 1.0.0 -> 1.0.3
- up to 0.3
minitage is a meta-package manager. It’s a package manager which install packages with the help of other build systems.
Its goal is to help you to deploy projects in a standardised layout and to build things quickly and in a simple manner by putting in environment all configurations. like:
The main documentation is not there but on http://www.minitage.org, please go there for further instructions.
You need a python with setuptools, zlib, bz2 and ssl support.
Try that in your interpretery:
>>> import tarfile >>> import zipfile >>> import bz2 >>> import _ssl >>> import zlib >>> import setuptools >>>
If you do not have that, you can give a try to my pyboostrapper that bootstrap a python somewhere:
wget http://git.minitage.org/git/minitage/shell/plain/PyBootstrapper.sh chmod -x PyBootstrapper.sh bash ./PyBootstrapper.sh /path/to/pythonPrefix
You ‘d better to use virtualenv , minitage fits well with it.
virtualenv is a tool that allow you to create isolated Python environments.
Here is how to set up an environment with it:
Install virtualenv:easy_install virtualenv #(maybe use sudo ;))
Install minitage prefix:virtualenv --no-site-packages ~/minitage
activate it:source ~/minitage/bin/activate
KEEP IN MIND THAT YOU MUST ACTIVATE VIRTUALENV AT ANY TIME YOU USE IT.
The whole doc is not there but on http://www.minitage.org/installation.html.
Minitage is a classical python egg, you can get it throught easy_install.
To install minitage in a stable version, follow those steps:
easy_install -U mercurial minitage.core
Sync its packages (all its minilays in minitage terminology).:
To sync all your minilays
If you need to, fire your virtualenv:source ~/minitage/bin/activate
Idea is to make buildoutrs to all buildouts in the top directory to wrap the underlying minitage environment.
We will also make a a minilay with minibuilds pointing to those wrappers.
This will help you fastly integrating minitage !
If you project layout is something like:
. | base.cfg | buildout.cfg | otherbuildout.cfg | foo | bar
You want it to be installed a a zope project, do the following:
cd ~/minitage . bin/activate mkdir -p zope SCM clone URL zope/yourproject minitagify -d zope/yourproject . Wraping ~/minitage/zope/yourpoject/otherbuildout.cfg (minitage27.cfg) in ~/minitage/zope/yourpoject/minitage.otherbuildout.cfg->~/minitage/zope/yourpoject/.minitagecfg/otherbuildout.cfg . Wraping ~/minitage/zope/yourpoject/buildout.cfg (minitage27.cfg) in ~/minitage/zope/yourpoject/minitage.buildout.cfg->~/minitage/zope/yourpoject/.minitagecfg/buildout.cfg . Wraping ~/minitage/zope/yourpoject/base.cfg (minitage27.cfg) in ~/minitage/zope/yourpoject/minitage.base.cfg->~/minitage/zope/yourpoject/.minitagecfg/base.cfg . Wroted minibuild yourpoject-otherbuildout in ~/minitage/minilays/05d75df848d13853578095d08f5c7253a/yourpoject-otherbuildout . Wroted minibuild yourpoject-buildout in ~/minitage/minilays/05d75df848d13853578095d08f5c7253a/yourpoject-buildout . Wroted minibuild yourpoject-base in ~/minitage/minilays/05d75df848d13853578095d08f5c7253a/yourpoject-base . Wroted minibuild yourpoject in ~/minitage/minilays/05d75df848d13853578095d08f5c7253a/yourpoject
Yu will then have to use
- minitage.buildout.cfg for buildout.cfg
- minitage.otherbuildout.cfg for otherbuildout.cfg
cd zope/yourproject python bootstrap.py bin/buildout -vvvvvvvNc minitage.buildout.cfg bin/buildout -vvvvvvvNc minitage.otherbuildout.cfg
- Fix minitage base buildouts
- Fix minitage base buildouts
- fix category minibuild in minitagify
- revert Download helper subdir patch and handle it in buildout recipes
- Fix all tests
- Dowload helper now downloads in downloadcache/netloc+urlpath/filename
- py27 deepcopy bugfix
- support py27
- Force run buildout in upgrade mode for dependencies and eggs packages
- handle pil migration
- Support for in place git branches [kiorky]
- proper release
- fix bug in pretend
- move to github
- add mercurial to dependencies to facillitate buildout integration
- add python versions for pretend and ‘eggs’ packages
- rebuild ‘eggs’ packages only if they need to be (markers are now in place for the particular python version)
- remove useless mercurial dep
- Auto Update system. When minimerge upgrade (easy_install -U), we have now the infrastructure to run update callbacks.
- Now minibuilds have revisions, this can facilitate their reinstallation as reverse dependencies
- give means to select the python to build against for python modules (–all-python-versions or specify python to use along with the package (minimerge -pv foo python-2.4)
- force eggs category reinstallation
- add an only dependencies switch to buld only dependencies
- win32 compatibility (first rush, alpha quality)
- add replace/per/os/dependencies mecanism in minibuilds
- allow minibuild names with only major as version
- support symlink in remove_path (API)
- enhance remove_path function
- fix a bug in bootstrapping buildout
- rewrite fetchers
- improve proxy handling
- fix some tests
- make parts shut up
- test incomplete downloads and redownload them (package level)
- make minibuild name more permissive
- fix bug in new checkouts
- fix a bug insde the get_from_cache helper when a fragmented url is used and the upstream server does not understand them
- add a special exception for search_latest when error happen.
- fake user agent in urlopen calls to prevent mad sysadmins restrictions on python useragent.
- explicit error when the buildout configuration file is not there
- use setuptools package_index.download helper funtion instead of directly urllib2 to avoid sourceforge download errors
- distribute fix
- remove deprecationwarning
- remove deprecationwarning
- oups, left print
- let the default minilay be at lower priority among all
- desactivating updates manager for more tests.
- Minitage now allows binaries to be used instead of compiling programs, in the gentoo -k way.
- Minitage has now also an update manager to run udpate functions on upgrade.
- bugfix on url md5sum fragments
- make conditionnal weither we are offline or not the download in the get_from_cache function.
- x64 enlightments
- add optionnal force switch to the download cache function
- some API adds like ‘search_latest’ and ‘which’
- bugfix in interfaces for configuration handling
- buildout maker can be given an optionnal config to build
- code stabilization and sync with other minitage components
- official documentation on http://www.minitage.org
- Fetch by default over http
- Bind buildout newest mode with -u option
- do not delete directories but overwrite when the package src uri change.
- Make minitage lives on git
- Make minitage git aware both in recipes and in core.
- force setuptools version
- bugfix on common functions (API)
- quiet mode is now optionnal are there are numerous bugs with it.
- some refactor and code cleanings
- logging is now better handled and your minimerge sessions will be as quiet as possible.
- Bug in fetchers (not critical …)
- Add an option (-f)
- when set : fetch all before build
- when not set : fetch and build each package one after another
- Remove the category check
- Remove the backtrace from the launcher when minimerge fails
- Release version
- Fix scm type validator
- bzr DVCS integration
- Add support for variables in minibuilds setted in minitage configuration file. Use $name in minibuilds and set it in the [minitage.variables] section.
- reinforce buildout code
- restore previous version scheme
- add mercurial explicit dependency
- remove old minilay
This is a pre release, minitage is working. But it is not empty from bugs. Feel free to give your feedback :)
- Minimerge totally rewritten in python
- Support for conditionnal dependencies toward python version
- Support for eggs in addition of site-packages added to the PYTHONPATH
- Support for conditionnal (OS) dependencies
- Lot of improvments on error handling
- Logging mode
- Configuration via a file is now possible
- not public, nothing to see there.