Package: pkgme
=====pkgme=====The ``pkgme`` program is a framework for generating Debian packaging artifactsfrom information gleaned from inspecting the code.  The framework takes careof the common tasks, and knows about packaging in general.  It is extensibleso that programming language-specific conventions and rules can be supported.Project information===================``pkgme`` development is `hosted on Launchpad`_.  Please see the project pagefor downloads, bug reports, and accessing the latest code (available in theBazaar_ version control system).  You can also subscribe to the `pkgme mailinglist`_ for discussions on using and extending ``pkgme``.  The archives_ arealso available on-line... _`hosted on Launchpad`: http://launchpad.net/pkgme.. _Bazaar: http://bazaar.canonical.com.. _`pkgme mailing list`: https://launchpad.net/~pkgme-devs.. _archives: https://lists.launchpad.net/pkgme-devs/Dependencies============In addition to the various Python modules documented in ``setup.py``,``pkgme`` depends on ``devscripts`` and ``debhelper``.Developers==========To get a development environment set up (using ``buildout``) run::$ make bootstrapYou can then run the tests with$ make checkThe bootstrap will fail if you have a system-wide install of buildout thatis the same version as the one in use by this project. (You will see``DistributionNotFound: zc.buildout==<version>``). If you encounterthat then you can either remove the site-wide install, or use a virtualenvto run the bootstrap step.You can get a shell to try code interactively by running ``./bin/py``.Buildout uses two directories as caches that can be shared between branches.The first is the ``download-cache`` directory. This contains all of thedistributions of the Python dependencies. You can get this from``lp:ca-download-cache``, but the Makefile will grab it for you.The other directory is the ``eggs`` directory that holds built versionsof the dependencies.The default for both of these is to symlink them from the parent directory,but if you wish to put them somewhere else you can set the locations withthe ``CA_DOWNLOAD_CACHE_DIR`` and ``CA_EGGS_DIR`` environment variables.If you want to override the default location of the backends, set theenvironment variable ``$PKGME_BACKEND_PATHS``.  This is a colon-separated listof directories, for example:% export PKGME_BACKEND_PATHS=/pkgme/foo-backends:/pkgme/bar-backends% cd my-about-to-be-packaged-code% ~/path/to/branch/bin/pkgmeBuilding the documentation--------------------------If you have the Sphinx toolchain installed (on Debian/Ubuntu, thepython-sphinx package), you can build the documentation like so::% make htmlYou'll need to be in your virtualenv, and you should have installed ``pkgme``in that virtualenv before trying to build the documentation... _virtualenv: http://virtualenv.openplans.org/Table of Contents=================.. toctree:::glob:*..This program is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program.  If not, see <http://www.gnu.org/licenses/>.==============NEWS for pkgme==============0.4.3 (2012-09-27)==================Improvements------------* all_info is only called once, rather than three times. The three calls werethe same, so all it was doing was wasting time.  (Jonathan Lange)* Be more careful in how the .orig.tar.gz is constructed when building a sourcepackage. Some overly general transformations were being applied, that changedthe content of some packages, and so caused the package to fail to build.(James Westby)0.4.2 (2012-09-25)==================Improvements------------* Distribution defaults to "UNRELEASED" if there is no ``/etc/lsb-release``file, rather than erroring out.  (Natalia)* More logging on how long various steps take.  (Jonathan Lange)0.4.1 (2012-09-12)==================Changes-------* ``query_backends`` raises a ``NoEligibleBackend`` error if there are noeligible backends.  (Jonathan Lange).Improvements------------* Backends can now specify extra fields to be added to the binary packagestanza in debian/control.  (James Westby)0.4.0 (2012-09-06)==================Changes-------* ``BackendSelector.get_eligible_backends`` returns a list of dicts, ratherthan a list of ``(score, backend)`` 2-tuples.  (Jonathan Lange)* New module ``pkgme.api`` that has the useful stuff from the pkgme script.(Jonathan Lange)* ``pkgme.bin.main.get_all_info`` has been removed.  Use``packaging_info_as_data(get_all_info(...))`` instead.  Both are in``pkgme.api``.  (Jonathan Lange)Deprecations------------* ``pkgme.write_packaging``.  Instead use ``pkgme.api.get_all_info`` to getpackaging information, and ``pkgme.api.write_packaging_info`` to write itout to disk.  (Jonathan Lange)* From ``pkgme.testing``, ``TempdirFixture``, ``FileFixture`` and``ExecutableFileFixture``.  Use ``treeshape.FileTree`` instead.0.3.1 (2012-08-28)==================Improvements------------* Backends can now signal that their errors are intended for end-userconsumption by exiting with return code, ``ScriptUserError.RETURN_CODE``.Changes-------* Many matchers were removed from ``pkgme.testing``.  These matchers are nowavailable in `testtools <http://pypi.python.org/pypi/testtools>`_ 0.9.13 orlater.* Switched to buildout for handling dependencies.0.3 (2012-08-03)================* New release, lots of new features.0.2 (201X-XX-XX)================0.1 (201X-XX-XX)================* Initial release.-*- rst -*-