.. -*- mode: rst -*- .. _development-packages: ======================= Developing for Packages ======================= The :ref:`server-plugins-generators-packages` plugin offers multiple backends to support different types of software repositories. New backends can be written to handle new types of software repositories. Each new Packages backend must be contained in its own module in ``Bcfg2.Server.Plugins.Packages``. Each module must implement two classes: A :class:`Bcfg2.Server.Plugins.Packages.Collection.Collection` subclass called ``Collection``, and a :class:`Bcfg2.Server.Plugins.Packages.Source.Source` subclass called ``Source``. E.g., the :mod:`Bcfg2.Server.Plugins.Packages.Yum` backend has :class:`Bcfg2.Server.Plugins.Packages.Yum.YumCollection` and :class:`Bcfg2.Server.Plugins.Packages.Yum.YumSource` objects. These interfaces are explained in detail below. The Collection Object ===================== .. automodule:: Bcfg2.Server.Plugins.Packages.Collection The Source Object ================= .. automodule:: Bcfg2.Server.Plugins.Packages.Source The Packages Module =================== .. automodule:: Bcfg2.Server.Plugins.Packages Packages Source Description =========================== .. automodule:: Bcfg2.Server.Plugins.Packages.PackagesSources Existing Packages Backends ========================== Yum --- .. automodule:: Bcfg2.Server.Plugins.Packages.Yum APT --- .. automodule:: Bcfg2.Server.Plugins.Packages.Apt Pacman ------ .. automodule:: Bcfg2.Server.Plugins.Packages.Pac