Socorro:Django

From MozillaWiki
Jump to: navigation, search

The Plan

Phase 1: Pre-conditions

Things we need to do first:

  • Ship rapid beta
  • Ship v1 of ES (this is the same search form, but with data coming from ES. new UI will be in Django) - very very close on this according to Adrian today
  • Set up stage (I know we have prod, but we'll need stage for some other parts)

Timeline: by end July

Phase 2: Sprint

Once we have these requirements, we should:

  • Stop development on the PHP version, with the exception of blocker, critical, or security bugs, ie things that prevent Crashkill from working in the interim
  • Take a 4 week (ballpark) period where every member of the team sprints on the Django version
  • At the end of the period, get secreview on stage

Timeline: August

Phase 3: Beta

At this point we should:

  • Ship 1.0 of the Django version in parallel with the PHP version. We will make it available on crash-stats-new.mozilla.com, on 5 out of 10 of the production webheads.
  • From this point, all new features will only be built on the new version
  • If a feature works in the new version, we will not fix bugs on it in the old version. If we have not yet implemented something in Django, we will build it by preference to fixing stuff in the PHP version. Only exception is security bugs.
  • Run both systems in parallel for 4 (?) weeks (beta period)
  • Perform bug triage on all the webapp bugs, and WONTFIX many of them

Timeline: September

Phase 4: Gold

At the end of the beta period, we should:

  • Rename crash-stats to crash-stats-old and crash-stats-new to crash-stats.
  • After a short period of time, turn off crash-stats-old
  • Delete the old code from the repo

Timeline: end September

Open questions

  • What do we do to support open source users during the transition period?
  • We want 100% of WebQA tests to pass against the UI. We may need to review these and make sure there are no weird PHP dependent ones.
  • How do we package both frontends in parallel? How do we deploy them separately?