Skip to main content

Create and manage bundle packages.

Project description

Version:
1.1.1

Synopsis

A bundle consists of several packages, and can be used as a shortcut in applications and libraries requirements lists.

Bundles are used to follow a common group of packages, or a package with an optional extension feature.

This distribution lets you create bundles, and may also be able to manage installed bundles in the future.

Usage

You can create and upload a bundle to PyPI:

>>> b = Bundle("mybundle", description="Cool bundle",
              version="1.0.0",
              requires=["pkg1", "pkg2>1.3", "pkg3"],
              author="George Costanza",
              author_email="george@vandelay.com",
              url="http://vandelay.com",
              license="BSD")
>>> b.upload()

Note that this requires a .pypirc containing your PyPI login information.

As a setuptools plugin

If you use bundles for extension dependencies then you can use setup.py to manage them.

If you have a library called george, with bundles defined in george.bundles like this:

from bundle.extensions import Dist

# version must be a tuple of at least 2 elements,
# e.g. (1, 2), or (1, 2, 6).
from george import VERSION

defaults = {"author": "George Costanza",
            "author_email": "art@vandelay.com",
            "url": "http://vandelay.com",
            "license": "BSD"}
george = Dist("george", VERSION, **defaults)

bundles = [
    george.Bundle("george-with-django",
                  "Bundle installing george and Django",
                  requires=['django>=1.2']),
    george.Bundle("george-in-production",
                  "Bundle for george and deps suitable for production",
                  requires=["celery", "psycopg2", "ultrajson"]),
]

With your bundles list you can now tell setup.py where to find it, by adding it to the bundle.bundles entrypoints.

In george’s setup.py add:

setup(
    ...
    entry_points = {
        "bundle.bundles": ["george = george.bundles:bundles"]
    },
)

And then you can manage your bundles with the register_bundles, upload_bundles, and upload_bundles_fix setup commands:

$ python setup.py upload_bundles

Note that you need run setup.py develop or setup.py install first, so that the entry points are properly installed before you run bundle commands. And you need to have your PyPI credentials properly setup in your ~/.pypirc file.

The commands are:

upload_bundles:

Uploads bundles to PyPI, but only the bundles for which version has not been uploaded before.

register_bundles:

Register the bundles at PyPI. upload_bundles will also register, but this is useful if you only need to change metadata without uploading a new version.

upload_bundles_fix:

Bumps the last version number for all of the bundles and uploads the bundles to PyPI.

Installation

You can install Bundle either via the Python Package Index (PyPI) or from source.

To install using pip,:

$ pip install bundle

To install using easy_install,:

$ easy_install bundle

If you have downloaded a source tarball you can install it by doing the following,:

$ python setup.py build
# python setup.py install # as root

Getting Help

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to our issue tracker at http://github.com/ask/bundle/issues/

Contributing

Development of Bundle happens at Github: http://github.com/ask/bundle

You are highly encouraged to participate in the development. If you don’t like Github (for some reason) you’re welcome to send regular patches.

License

This software is licensed under the New BSD License. See the LICENSE file in the top distribution directory for the full license text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bundle-1.1.1.tar.gz (9.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page