Review Request: Packagers: remove duplicate code, consistent naming, simplify some code

Ralf Habacker ralf at habacker.de
Fri Feb 18 08:28:20 CET 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6486/#review9878
-----------------------------------------------------------

Ship it!


> __installedDBPrefix

InternalPackageBase is derived from PackageBase, so the one in PackageBase is enough. Because __installedDBPrefix is used in InternalPackageBase is should be named  installedDBPrefix without any prefix. 

> simplify code in PackagerFactory (this code is actually unused but it looks like a plan for the future)

PackagerFactory is used by MultiPackager to instantiate packager backends similiar to MultiSource for Source types 

class MultiPackager():
    def __init__(self, packagerType=None):
        utils.debug( "MultiPackager __init__ %s" %packagerType, 2 )
        self.packagers = PackagerFactory(self, packagerType)

    def createPackage(self):
        result = True
        for packager in self.packagers:
            if not packager.createPackage():
                result = False
        return result

    def make_package(self):
        return self.createPackage()

In ...PackageBase classes normally a single Packager approach is selected 

class CMakePackageBase (PackageBase, MultiSource, CMakeBuildSystem, KDEWinPackager):
    """provides a base class for cmake packages from any source"""
    def __init__(self):
        utils.debug("CMakePackageBase.__init__ called", 2)
        PackageBase.__init__(self)
        MultiSource.__init__(self)
        CMakeBuildSystem.__init__(self)
        KDEWinPackager.__init__(self)

The multiple packager approach allows to support more than one packager 

class CMakePackageBase (PackageBase, MultiSource, CMakeBuildSystem, MultiPackager):
    """provides a base class for cmake packages from any source"""
    def __init__(self):
        utils.debug("CMakePackageBase.__init__ called", 2)
        PackageBase.__init__(self)
        MultiSource.__init__(self)
        CMakeBuildSystem.__init__(self)
        MultiPackager.__init__(self,["packagertype1","packagertype2"])

(the default packages may be set in the future by a generic option)



otherwise looks good. 


- Ralf


On Feb. 15, 2011, 8:23 p.m., Wolfgang Rohdewald wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6486/
> -----------------------------------------------------------
> 
> (Updated Feb. 15, 2011, 8:23 p.m.)
> 
> 
> Review request for kde-windows.
> 
> 
> Summary
> -------
> 
> __installedDBPrefix existed identically in PackageBase and InternalPackageBase. Remove it from InternalPackageBase and rename to _installedDBPrefix
> 
> rename self.packager to self.packagerExe for consistency
> 
> simplify code in PackagerFactory (this code is actually unused but it looks like a plan for the future)
> 
> a few other small simplifications around packager code
> 
> 
> Diffs
> -----
> 
>   /trunk/kdesupport/emerge/bin/Package/InternalPackageBase.py 1220833 
>   /trunk/kdesupport/emerge/bin/Package/PackageBase.py 1220833 
>   /trunk/kdesupport/emerge/bin/Packager/InnoSetupPackager.py 1220902 
>   /trunk/kdesupport/emerge/bin/Packager/KDEWinPackager.py 1220905 
>   /trunk/kdesupport/emerge/bin/Packager/PackagerFactory.py 1220833 
>   /trunk/kdesupport/emerge/bin/Packager/SevenZipPackager.py 1220833 
> 
> Diff: http://svn.reviewboard.kde.org/r/6486/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Wolfgang
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-windows/attachments/20110218/3960de28/attachment.htm 


More information about the Kde-windows mailing list