Timeline - updated

@migration #planning #timeline #importer #plugin #cli #xmlrpc

Since I wasn't aware of the 2+ week bonding/orientation period at the start of the GSoC program, my original proposal had a timeline that started off too early. Here, I've updated it to push things back to align with the GSoC program structure. This also accounts for changes to the scope of the project to focus on the importer/exporter instead of file/DB migration. (I will write a separate justification for this change in scope.)

The short version

  1. June, early July: logic for swapping URLs in attachment URLs, post content, options
  2. July: fix existing importer plugin issues
  3. August: add features to exporter/importer to improve migration process
  4. Late August, early September: expand importer to (optionally) use XML-RPC to fetch further details like attachment metadata, options from the existing site, if it's still online
  5. September: fix bugs, add WP CLI feature for swapping URLs if time permits

The long version

Note: when I refer to implementing something in a plugin, I generally mean that the actual functions will be abstracted from the way it's hooked into WordPress, to make it possible for certain features to be incorporated elsewhere (especially WP CLI and core).

Date Progress
June 10 Research existing solutions, steps to take; draft workflow
June 14 Define project goals, scope; publish updated timeline
June 17 (weekly update) (start of coding)
June 22 Implement preliminary same-server, URL swap in classes/functions
June 24 (weekly update) Begin plugin to make domain name/URL swap
July 1 (weekly update) Finish GUI of plugin for URL swap workflow
July 2-5 Test against variations of site URL changes, and server environments
July 7 Fork (branch?) WordPress Importer plugin
July 8 (weekly update) Begin fixing media attachment bugs in importer plugin1
July 15 (weekly update) Break importer tasks into smaller chunks in an overall stateful process
July 22 (weekly update) Integrate URL change from earlier work into importer plugin workflow; improve preservation of post IDs
July 29 (weekly update) Fork (branch?) core to focus on WXR exporter component
August 1 (midterm)
August 5 (weekly update) Finish adding list of active plugins, themes to export file
August 8 Begin working on processing active plugins list in importer; allow installation from directory before importing posts2
August 9-11 (mostly away from keyboard & Internet)3
August 12 (weekly update) Begin ambitious attempt to try using the XML-RPC API to synchronize attachment metadata (optional step that could really improve import process)
August 19 (weekly update) Begin using XML-RPC API to fetch site options (optional step of import process)4
August 26 (weekly update) Continue XML-RPC endeavours, testing
September 2 (weekly update) If time permits, allot 1 week for WP CLI hooks for swapping URLs
September 9 (weekly update) Complete WP CLI features
September 10-13 Wrap up XML-RPC features; rigorous testing, code reviews, prepare for merging back to upstream importer plugin (maybe core and CLI as well for the URL swap components)
September 16 (weekly update) (suggested end of coding)

  1. I'm considering XML-RPC seriously, but I'll need to leave this toward the end 

  2. Necessary to fix issues with custom post types 

  3. Moving back to Penn, and staff training activities 

  4. User profiles if time permits; password synchronization may be impossible without using SQL