[Seaside] Monticello component?

C. David Shaffer cdshaffer at acm.org
Thu Apr 21 19:46:13 CEST 2005


Blanchard, Todd wrote:

>I've got a nifty (and now very popular) little intranet app running headless on a server that I can only ssh/scp to.
>
>Occasionally someone wants a new feature and I end up adding it on my local image and then bringing down the server app, scp-ing new image/changes files, then relaunching the server app.
>
>It would be cool if I could just publish updates via monticello. Coolest would be if the server could just look like another repository in monticello.  Worst case I could just provide a password protected seaside app with an upload file page and upload mc files to the local mc file repository and then load them programmatically from there.
>
>I'm wondering if anyone has done something like this I can just use before I run off and try to build it.
>
>Thanks,
>-Todd Blanchard
>_______________________________________________
>Seaside mailing list
>Seaside at lists.squeakfoundation.org
>http://lists.squeakfoundation.org/listinfo/seaside
>  
>
Todd,

Something like WAVersionUploaded might be what you want.  For small
changes this works pretty well.  If Seaside is behind an apache proxy
you may find that uploading the file causes the application to fail to
properly display the next page (if this is a problem turn off
keepAlive).  Also, the pause during MC loading can be aggravating.  I
use the apache mod_proxy/RewriteEngine load balancing hack to allow me
to have two live images...one "current" and one "about to be current". 
Basically, I load the new code into the "about to be current image" and
then tell apache to start all new sessions on that image.  Old sessions
will slowly disappear from the other image at which point they switch
roles.  That way you're not loading code into an image which is actually
serving anything.  It is a little tedious (requires editing a text file
in addition to loading the new .mcz file) but it avoids a lot of
annoying problems:

1) loading a .mcz file only to be presented with a debugger
2) loading a .mcz file but not wanting the code to be used until you
evaluate some init code in a workspace
3) server pause, as I mentioned, during lengthy loading

David


-- 
C. David Shaffer
http://www.cs.westminster.edu/~shaffer
http://www.shaffer-consulting.com



More information about the Seaside mailing list