[ Follow Ups ] [ Post Followup ] [ Discussions at the Paneris newbox node ]

Sys Admin - where do we put projects

Posted by Mylesc on Thu Mar 18 20:10:26 1999

Distribution: paneris@i-way.co.uk
All,

We need to organise all files associated with a project in
some way. There are some categories:


  1. Project documentation - this is will live within PanerisII (which is useful to think of as a project itself)
  2. Html - skeleton site or implementation build
  3. Project code (java - source and binaries, perl)
  4. Shared code (e.g. paneris java utils, DB Admin handlers)

We need to organise these files bearing in mind that we would like to store these in the CVS and presumably upload
them onto another server at some point.

For this reason it seems sensible to organise all files for a particular project together under one directory. This will
allow us to checkout out one CVS module per project. Possible directories under a project directory could include:


Note, however, that I think the project documentation should
live somewhere else (inside the PanerisII project) since we
should only really be concerned about interacting with that
via the web interface.


This looks very much like a virtual server, and I think we
should treat it as one:


  1. We can define apache virtual servers which allow us to define separate html and cgi-bin directories
  2. We can extend the classpath in jserv.properties (and/or define new jserv servlet zones) which takes care of handlers
  3. We can extend the classpath again to take care of other java (or we can put the handlers in here and have a serlvet dir, or something)

This just leaves the templates. At present we can only have one template directory for each instance of webmacro. We could have a jserv zone for each webmacro application, but the JVM that webmacro launches is relatively large (I'm not sure if it's large enough to worry about).


We can have different directories in the template directory, so we could make links from each projects template directory into the central one, but then we would need to refer to templates as 'sugar/results.wm'. Is is a problem? Any preferences?


I think that that is a fairly sensible organisation for projects. Where should we put each project's directory? I suggest that we put them under: /home where at the minute we have /home/httpd. Thoughts?


What about code common to a number of projects? This includes:


We can get access to generic handlers so long as the
classpath includes the central repostitory of generic
code. Similarly for common java. All we need to ensure is that all common code and handlers can be parameterised by the project (or database for that project, or whatever).
If we need to, we can copy the code into each project (but then we would have to worry about multiple versions - ugh).


A similar comment applies to perl, except we would need to
have the equivalent of a 'common' project holding common code. Inluding files in Perl does my head in, so someone who knows more might like to comment.


So, I propose that we create a similar level of directories to that proposed for each project. To keep things nice we should put them under /home/httpd, but that doesn't seem quite right. At present we have a directory doing a similar job : /usr/local/dev.


(Aside: maybe we should put generic handlers in dev/java/org/paneris/handlers rather than having a separate handlers directory dev/handlers?


Does that seem alright, and should we bother having a different jserv zone for each project?


Myles




Follow Ups: