[Release] Clean and Package Orginization plans

Matthew Fulmer tapplek at gmail.com
Fri May 30 19:33:12 UTC 2008


On Fri, May 30, 2008 at 05:09:20PM +0100, Keith Hodges wrote:
> I wanted to make an "easy" way to make tests unloadable and loadable. At 
> present we have two conventions in the image, and I want to try and 
> simplify.
>
> The first convention is to have categories suffixed "Tests", or "Testing"
>
> e.g. System-Event Notification-Tests
>
> The second is to have categories such as "KernelTests" or "NetworkTests".
>
> I would like to standardize on the first more commonly use convention, and 
> make supporting tools available to everyone.
>
> To this end I have updated PackageInfo so that packages called Kernel.impl 
> and Kernel.test will save the impementation and the tests separately.
>
> The following reorganization is suggested:
>
> http://installer.pbwiki.com/CleanReorganize-Squeak3:10
>
> Having made this reorganization tests can be removed using
>
> Installer unload: '*.tests'.
>
> comments requested.

I don't really like that solution at all. It seems to me that
this should be handled at a higher level than Monticello, such
as in Sake/Packages.

In Gentoo, this is handled by a system called "use flags", which
enables optional components and dependencies of packages. For
instance, if I enable the gnome use flag, and not the kde use
flag, packages with optional support for gnome will be built to
use and depend on gnome for as long as that flag is set, and
will not depend on or use kde if they can help it.

This would be handled nicely by a "test" use flag. The 3.11
Kernel package could be configured to conditionally depend on
the 3.11 Kernel Tests package, if the "test" flag was enabled in
the package manager.  This could be extended for packages that
optionally depend on Morphic, or a UI, for instance.

So, how I would do this is: Split kernel into (at least) two
MC packages: Kernel and Kernel-Tests. Then specify in the Sake
package that Kernel depends on Kernel-Tests if either the
"tests" flag is set, or (maybe) if SUnit is loaded.

I see this as a sub-project of the more general goal making
packages less monolithic and more configurable.

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/


More information about the Release mailing list