Fw: Joe Walnes feedback on "ComponentHaus now does full dependency trees"

"Mike Hogan" <[email protected]> Wed, 21 Jan 2004 18:57:51 +0200
Newsgroups gmane.comp.java.jcontainer.interest
Message-ID <003f01c3e03f$b4aaa6b0$25a9ba50@eamon>
----- Original Message -----
From: "Joe Walnes" <joe-xGvoirzvwgBWk0Htik3J/[email protected]>
To: <[email protected]>
Sent: Monday, January 19, 2004 12:04 PM
Subject: [personal] Re: ComponentHaus now does full dependency trees


> Mike,
>
> Very nice!
>
> What do you think about specifying component dependency metadata inside
> the archive? It is the role of whoever packages up the component to
> specify this information.
>
> The Debian package management system has a very effective way of
> determining how it relates to other packages using the following types
> of relations:
> - DEPENDS (must be present)
> - RECOMMENDS (would always make sense to have this package)
> - SUGGESTS (typically enhances the use of a package)
> - REPLACES (is used instead of another package)
> - PROVIDED-BY (provides a specific function).
> See http://www.debian.org/doc/FAQ/ch-pkg_basics.en.html#s-depends for
> more details.
>
> An example:
>
> * MyWebApp
>   * DEPENDS: Java 1.3
>   * DEPENDS: Servlet container 2.3
>     * PROVIDED-BY: Jetty
>       * DEPENDS: Jasper
>       * DEPENDS: Servlet API 2.3
>     * PROVIDED-BY: Tomcat
>       * DEPENDS: Jasper
>       * DEPENDS: Servlet API 2.3
>   * DEPENDS: Commons Logging 1.0
>     * SUGGESTS: Log4J 1.3
>   * DEPENDS: XStream 0.4
>     * RECOMMENDS: DOM
>       * PROVIDED-BY: Xerces 1.1
>       * PROVIDED-BY: Crimson 1.0
>       * PROVIDED-BY: Java 1.4
>     * SUGGESTS: XPP 3.0
>
> A tree like this is a lot more useful to a developer as it allows them
> to make decisions about what they really need. Contrast this to the tree
> on ComponentHaus, which suggests that JavaMail and JMS are needed for
> SocketFactory. Decisions such as "Shall I use Jetty or Tomcat as the
> Servlet Container?" and "Shall I enhance XStream's performance by using
> XPP?" can be left to the developer, while an automated system can make
> the mundane decisions.
>
> Combined with an automated package management tool (such as APT, URPMI
> or YUM in the Linux world) installation of components can be a breeze.
>
> For example, to install MyWebApp, the tool can make automate most things
> and leave the important decisions to the user.
>
> - Install MyWebApp
> - DEPENDS Java 1.3 : Java 1.4 already installed
> - DEPENDS Servlet Container : Jetty already installed
> - DEPENDS Commons Logging : Not intalled
> - SUGGESTS Log4J 1.3 : Log4J 1.2 already installed - upgrade needed
> - DEPENDS XStream 0.4 : Not installed
> - RECOMMENDS DOM : Java 1.4 already installed
> - SUGGESTS XPP3 : Not installed
>
> Prompt to user:
> * Do you want to enhance logging by upgrading Log4J from 1.3 to 1.4?
> * Do you want to enhance XStream performance by installing XPP3?
>
> Having recently become hooked on Debian's package management system, I
> wouldn't want to work any other way :)
>
> Anyhoo, hope that provided some useful input.
>
> -joe
>
>
> Mike Hogan wrote:
>
> > Hi Joe,
> >
> > Take a look at this:
> > http://64.4.141.60/componenthaus/componentDetails.action?id=1 .  Click
on
> > the + icon for the dependencies - it will expand entire dependency
> > tree for
> > spice-netserve!
> >
> > This is computed when a component is submitted by analyzing maven POMs
in
> > various maven repos.  Other strategies are possible, but I went with
this
> > for now just to keep up the momentum.  Next steps, probably, is to
> > provide
> > all these dependencies when you download the component, and to show
> > separation between interface and implementation.
> >
> > What ya reckon?
> >
> > Cheers,
> > Mike.
> >
> >
> >
>
>