The 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 Bcfg2.Server.Plugins.Packages.Collection.Collection subclass called <module>Collection, and a Bcfg2.Server.Plugins.Packages.Source.Source subclass called <module>Source. E.g., the Bcfg2.Server.Plugins.Packages.Yum backend has Bcfg2.Server.Plugins.Packages.Yum.YumCollection and Bcfg2.Server.Plugins.Packages.Yum.YumSource objects. These interfaces are explained in detail below.