Code Migration Process

Code Migration Process

Personal Development Environment

  • Programmer develops application locally on his/her computer
  • Programmer uses Subversion to version control his/her source code
  • Programmer uses various testing processes to test his/her code on their personal development environment
    • JUnit
  • Programmer informs Release Manager (RM) when he/she is ready to move source code to sakai-dev
    • Programmer provides RM with Subversion revision numbers and or Subversion tag/branch names
    • Programmer(s) sign off (with wiki comment "signatures") that the code is ready

Sakai Development Environment (Staging area for Sakai Test)

  • RM waits for a Sakai test code migration window and sends out notifications
  • RM verifies the CHANGELOG and Subversion comments relating to this release
  • RM backs up existing code and database states
  • RM checks out / exports code from Subversion
    • Programmer provides revision numbers and or release tag/branch name
    • Sakai Foundation subversion repository
    • UCD subversion repository
    • others,...
  • RM further prepares source so that it can be built with MAVEN
  • RM has to make sure that both the sakai-dev internal database and sakai-dev tomcat are in proper state
  • RM works closely with programmers to enable programmer to do final testing on that level
  • Once programmers finishes development level testing he/she performs a second sign off and he/she informs Project Manager (PM) and RM that code is ready for formal testing

Sakai Test Environment (Staging area for Sakai Pilot)

  • Once code is ready for testing, PM coordinates test procedures with Quality Assurance Manager (QAM) and RM
  • PM and QAM will instruct RM to install specific source code revisions on the test server
  • RM has to make sure that both the sakai-test internal database and sakai-test tomcat are in proper state
  • Once RM has installed the requested source code, and releases sakai-test for testing, she/he will inform PM and QAM

Sakai Pilot Environment

  • PM and QAM will instruct RM to install specific source code revisions on the pilot server
  • PM will schedule appropriate downtime and will inform all affected parties
    • Sakai MOTD (Setting Message Of The Day)
    • Send email to management and other key players
      • ToDo: Setup Sakai release mailing list?
    • Inform data center about scheduled downtime
      • Send email to: sysadmin@ucdavis.edu (as instructed by Chris Callahan)