From MozillaWiki
Jump to: navigation, search

Ideas for a better devmo

  • Work on using one copy of mediawiki instead of one per language
  • daily db backup pushes to a developer box (like khan)
  • Documents on production server layout
  • Import current script for updating devmo in to subversion
  • Find a place for dev ops (set up a vm or use khan)

If we come to the conclusion that it is better for IT to take care of it like in the past then we need to figure out if we are:

  • Going to merge in the mediawiki code
  • Pull directly from mediawiki's svn repo and maintain or own repo with only patches
  • Something else?

Tentative plan

(for the purposes of this plan, "MDC contributor" means people who are developers on the MDC back-end code)

  • IT will create a new development server, so that instead of just and developer.m.o, we will have:
    • (development server; whatever name IT thinks makes sense of course)
    • (staging server)
    • (production server)
  • developer-test will be the server on which development work is actually done by MDC contributors
    • should sync to MediaWiki trunk
    • provide access to logs
    • include a script that can be run at any time to replace the MediaWiki databases with the most recent backup from the production server
  • developer-stage will be used for wider-scale testing.
    • IT will pull this from developer-test when Evangelism requests it; Evangelism will provide an svn tag to use (or trunk if we've not gotten around to setting up tags yet, although that's a high-priority goal)
    • should replace its database with a copy of the production database nightly
  • developer will be the deployment server
    • IT will pull this from developer-stage after appropriate testing has been done
  • We need to ensure that MDC contributors also have the ability to edit and check in changes to CSS files affecting our MediaWiki installation.

Deviations from standard MediaWiki

A diff between MDC's MediaWiki and the core MediaWiki 1.9.3 code shows that we have the following changes:

  • External redirects
    • If we can't figure out how to make this work as an extension, we can live without it.
  • Single sign-on
    • Will this become moot if we manage to switch to a single MediaWiki install for all locales?
  • Support for specifying a specific CSS style to apply when creating links
    • This is used by the new breadcrumbs code, but we could probably do without it.
  • Removal of newuser entries from the RSS feed
    • This doesn't actually appear to be working at present anyway, but we need to find a way to make it work.

A complete diff is here.

Developer Test

Machine: sm-devmo01

Important Directories

  • /data/www/ - Our devmo source
  • /data/www/phase3 - Mediawiki source, coming from their subversion repository, with our patches.

Important Scripts

Updates mediawiki source to trunk and "merges" with devmo source.
Syncs the most recent production database dump with the testing db.

Process for making a change to the mediawiki part of the source

  1. cd /data/www/phase3
  2. svn up
  3. check for conflicts
  4. Edit the corresponding file in /data/www/phase3
  5. run the update-to-trunk script, which will sync all of your changes to our source.
  6. cd /data/www/
  7. svn status and svn diff
  8. There may be a lot of entries with "!" or "?" you will need to svn add the ones with "?" and delete the ones with "!" if they exist.
  9. view your changes. There will probably also be changes in there from the mediawiki sync.
  10. svn commit in that directory if you are happy with the changes.