wiki:DevelopmentEnvironment

THIS PAGE IS OUTDATED AND NEEDS TO BE REWRITTEN

Read DevelopmentWorkflow for our current approach.

Old intro:

The BW development environment allows an efficient, collaborative and fast work flow for creating, testing, fixing and releasing of code. It will help to make new features as soon as possible available to our members while keeping the main site as free of bugs as possible.

Work flow

The basic work flow is as follows: Trunk/ test.bewelcome.org ==> Alpha/ alpha.bewelcome.org ==>  www.bewelcome.org

  1. development:
  2. check out recent code from trunk
  3. create a ticket or assign an existing one to yourself
  4. develop on your local machine
    • optional stuff:
      • create and use a temporary branch for bigger changes
  5. commit / merge to trunk at any time you feel like
  6. if you would like to get feedback set the follow up in trac to code review or test on test
  7. once stable or bug fixed, set the follow up to move to alpha and add the corresponding revision# as a comment
  1. alpha merge:
    1. The revision is checked by a alpha developer according to the Alpha Merging Guidelines
    2. If they fail the follow up is set to test on test again and the developer informed
    3. If everything is fine the revision is merged to alpha. If the database can not updated automatically a database manager will take care of this manually upon request. (Alpha Merging Guidelines)
    4. The ticket status is set to alpha
  2. alpha testing:
    1. The changes and all potential cross effects are tested on alpha according to the Alpha Merging Guidelines.
    2. If approved the ticket is closed and follow up is set to release
  3. release:
    1. A alpha developer releases the approved changeset or full alpha branch version to the production site by a script assisted system:
      • he commits / merges the code from alpha to production
      • * a hook script copies the code from production to the directory running www.bewelcome.org. and moves the previous code to old.bewelcome.org
      • in case of problems with the new version, the release is reverted
  4. emergency bugfix
    • In case a emergency bugfix is needed on production the normal release chain can be bypassed
      1. the fix is committed to production by an alpha developer
      2. a hook script copies the code from production to the directory running www.bewelcome.org.
      3. the fix is introduced into trunk and passes the normal release chain to make sure it is present in all future releases as well.
  • all steps are visible to the public through the svn-commit mailing list and ticket system.
  • Everybody can intervene at any time if he recognizes something potentially harmful going on.

Trunk

purpose:
To have the latest code online for "anyone" to test.
A programmer can quickly put something together and just put it in SVN and it will be visible for anyone to see.
Then other people can test it, discuss about it, etc.
Also if something is new and exciting it can be shown and demoed there before putting it in alpha and on the real site.

Alpha

purpose:
New features will be thoroughly tested on this site before the will be released for general use.

Production / www.bewelcome.org

Playground

purpose:
place for layout drafts and other stuff you would like to share with others

Develstuff

purpose:
repository for other material, currently programming related (test db) and Java importer? and rox-wamp package

Notes

  • Shouldn't this be about Eclipse or so?
  • Tip:  Firebug is an excellent web development add-on for Firefox.