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. > > > > > > > >