Metadata-Version: 1.0
Name: minitage.core
Version: 0.4.4
Summary: A meta package-manager to install projects on UNIX Systemes.
Home-page: http://cheeseshop.python.org/pypi/minitage.core
Author: Mathieu Pasquet
Author-email: kiorky@cryptelium.net
License: GPL
Description: Short introduction
        **********************
        
        This documentation abstract is far from complete and can be out dated.
        
        Please refer to: http://www.minitage.org/doc/rst  for further information.
        
        
        What is minitage
        =================
        Minitage is a meta package manager. It's goal is to integrate build systems
        or other package manager together to make them install in a 'well known'
        layout. In other terms, it install its stuff in 'prefix'.
        
        Moreover, this tool will make you forget compilation and other crazy stuff
        that put your mind away from your real project needs.
        
        
        What will it allow to
        =====================
        
        - Deploy a project from start to end.
        - Reproduce the same environement everywhere (on UNIX platforms). It is
        known to work on:
        
        - Linux
        - MacOSX but at least OSX Leopard is required.
        - FreeBSD (not tested recently)
        
        - Isolate all the needed boilerplate from the host system. All stuff in
        minitage is supposed to be independant from the host base system.
        Compiled stuff is interlinked as much as possible.
        - Control all the build process.
        - Fix buildout leaks :) or at least try to.
        
        - Upgrades can be painful to predict
        - Offline mode is problematic
        - We can play with dependencies tree more easily
        
        
        What will it never do
        ======================
        
        - The coffee
        - Windows implementation seems to be difficult. Some effort may be done
        to try but it's not the priority
        
        History
        =======
        
        Project was initialized at Makina Corpus (http://www.makina-corpus.com), the firm
        where i am actually working.
        
        We have projects that need a lot of dependencies. so, in the one hand, it was hard to deploy
        them in all of eterogeneous production servers. And on the other hand, setup
        developers box cost us a lot of time.
        
        So we started to use sh, inmaintenable!
        
        We went on builout, but monolothic/extended buildout were hard to maintain too
        and their impacts on already installed stuff were difficult to predict (oups
        it has done rm -rf parts !).
        
        So, i started to think to a tool that allow us to use multiple buildouts and
        let us deal with dependencies. Minitage was born.
        
        Up to 0.3, the implementation was in bash, that was well working but because
        of the language, it was quite limited/restrictive. We got also problems
        inherent to bash. Errors handling is painfull. It is all but user friendly.
        
        With the 0.4, i had in mind to rewrite it in python and to integrate a lot of
        QA in the build process. A lot of things were added too like metadata in
        minibuilds, execution logging. I have done also a total migration to mercurial
        which allow more flexibility and yes, mercurial is in python.
        
        Credits
        ========
        
        - For the moment, i (kiorky) am the only developer of minitage.
        
        - It is licensed under the GPL-2 license.
        
        - You can have more information:
        
        - on http://trac.minitage.org
        - on irc : #minitage @ irc.freenode.net
        
        
        
        Installation instructions
        ***************************
        
        Python
        =======
        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://hg.minitage.org/hg/minitage/shell/raw-file/tip/PyBootstrapper.sh
        chmod +x PyBootstrapper.sh
        ./PyBootstrapper.sh /path/to/pythonPrefix
        
        
        Using virtualenv
        =================
        You 'd better to use `virtualenv <http://pypi.python.org/pypi/virtualenv/1.1>`_ ,
        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.
        
        
        Installing minitage
        ====================
        
        A stable version
        -----------------
        
        Minitage is a classical python egg, you can get it throught easy_install.
        
        To install minitage in a stable version, follow those steps:
        
        - Install minitage::
        
        easy_install -U mercurial minitage.core
        
        - Sync its packages (all its minilays in minitage terminology).::
        
        minimerge -s
        
        
        A develop version:
        ------------------
        If you want to be bleeding edge and not lhave a 3 years old debianised
        minitage, you can give a try to the egg in developement mode?
        
        If you need to, fire your virtualenv::
        
        source ~/minitage/bin/activate
        
        Get the sources::
        
        mkdir -p ~/repos/minitage
        cd ~/repos/minitage
        hg clone http://hg.minitage.org/hg/minitage/eggs/minitage.core
        hg clone http://hg.minitage.org/hg/minitage/eggs/minitage.recipe
        
        Or update them::
        
        hg pull -u -R ~/repos/minitage/minitage.core
        hg pull -u -R ~/repos/minitage/minitage.recipe
        
        
        Install/Reinstall minitage in develop mode::
        
        cd ~/repos/minitage/minitage.core
        python setup.py develop
        cd ~/repos/minitage/minitage.recipe
        python setup.py develop
        
        
        
        Syncing packages
        =================
        
        To sync all your minilays
        
        If you need to, fire your virtualenv::
        
        source ~/minitage/bin/activate
        
        Sync::
        
        minimerge -s
        
        
        Changes
        ***********************************************
        0.4.4
        ============
        - Add an option (-f)
        - when set : fetch all before build
        - when not set : fetch and build each package one after another
        
        0.4.2
        ============
        - Remove the category check
        
        0.4.2
        ============
        - Remove the backtrace from the launcher when minimerge fails
        
        0.4.1
        ============
        - Release version
        
        0.4_alpha12
        ============
        - Fix scm type validator
        
        0.4_alpha11
        ============
        - bzr DVCS integration
        
        0.4_alpha10
        ============
        - Add support for variables in minibuilds setted in minitage configuration
        file. Use $name in minibuilds and set it in the [minitage.variables]
        section.
        
        0.4_alpha9
        ===========
        - reinforce buildout code
        
        0.4_alpha8
        ===========
        - restore previous version scheme
        
        a0.4_alpha5
        ============
        - add mercurial explicit dependency
        
        0.4_alpha4
        ============
        - remove old minilay
        
        0.4_alpha1
        ============
        
        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
        
        
        up to 0.3
        ==========
        
        - not public, nothing to see there.
        
        
        
        
        
Keywords: development buildout
Platform: UNKNOWN
Classifier: Framework :: Buildout
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
