http://qs321.pair.com?node_id=506570


in reply to What is YOUR Development Process?

# How do you compensate for templates, template plugins (I use Template Toolkit (Template)), application modules, instance scripts (I use CGI::Application) and non-application modules being inter-dependant?
I put everything I code in version control. For modules, I depend on debian's packaged perl libraries. If I can't find one, I create a deb file with dh-make-perl and put it in version control. If I want to modify a library's behaviour, I copy the library to version control and modify it and make sure my app use it. I make my 'build' script to apt-get all those perl libraries and install the deb files I put in the code.

# How do you write tests that depend on your webserver config (and its environment) and package them with your module?
I don't write automated test :(. But configuration environment is abstracted into a module. I also create template files for apache configuration, so in every box I only need to add 'Include' directive to include it.

# How to you get your personal machine to emulate the environment of multiple machines?
I don't. I just make sure the code works correctly, and all multiple machine related problems are fixed in production. That's scary, but that's all I've got right now.

# How do you move material to your test server, and from there to production server?
svn up?

# How do you do some of these things in a multi-user environment? (Is the test server a "check out"? Who checks it out?)
All instance of the web app are actually an svn checkout directory. So I only need to do 'svn up' to upgrade it to the new version. I don't tag the versions because my environment is very small and informal and no release management at all. Two major number versions can coexists in one box as two checkout directory of different branches. But each has its own apache configuration files.

My wishlists for my app are:

Badai

Replies are listed 'Best First'.
Re^2: What is YOUR Development Process?
by swiftone (Curate) on Nov 08, 2005 at 17:53 UTC
    # How do you move material to your test server, and from there to production server?
    svn up?

    Do you do so on a per-app basis (updating templates, modules, and cgis separately), or on a per-server basis (updating everything on the box at once)?

      i update everything together. i structure my svn repository like this:

      /
      -- lib
         -- modules
         -- shared template includes
      -- app-1
         -- templates
         -- cgis
      -- app-2
         -- templates
         -- cgis
      

      i put modules and shared template includes (i use mason just as an example) in lib because very likely, different apps need to share functionalities and some general templates (e.g. templates to show currencies)

      the benefit of this structure is that i have everything in one tree so i don't need to remember which module is needed by which cgi script with which version. the downside is that it takes a lot of space, but space is cheap nowadays.

      Badai