MDN/Projects/Development/Git Backend: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 7: Line 7:
So, it might be interesting to look into swapping out Kuma's use of MySQL for version control and replacing it with a Git-based backend.
So, it might be interesting to look into swapping out Kuma's use of MySQL for version control and replacing it with a Git-based backend.


Overall, this could offer a lot of generative opportunities to consume & manipulate the MDN document corpus:
Some improved VC features we could employ:
 
* overall better version control mechanisms & history retention
* tagging & branching, to accommodate content that varies with product versions, dev cycles, etc
 
This could also offer a lot of generative opportunities to consume & manipulate the MDN document corpus:


* mirroring the entire public document corpus on GitHub
* mirroring the entire public document corpus on GitHub
** e.g. Content for 3rd party apps
** e.g. Content for 3rd party apps. Allow 3rd parties to build e-books.
* allowing the MDN document corpus to be manipulated by non-MDN tools and scripts
* allowing the MDN document corpus to be manipulated by non-MDN tools and scripts
** e.g. Don't like the Kuma editor? Build your own.
** e.g. Don't like the Kuma editor? Build your own.
* accepting Pull Requests against the corpus, allowing for reviewable changes that span multiple documents
* accepting Pull Requests against the corpus, allowing for reviewable changes that span multiple documents
** e.g. Mass atomic page moves, external tools to update compatibility info across many pages
** e.g. Mass atomic page moves. External tools to update compatibility info across many pages


== Inspirations ==
== Inspirations ==

Revision as of 18:48, 18 October 2013

Project statement

Kuma implements a crude version control (VC) system for wiki pages atop a MySQL database. This system is cumbersome and full of reinventions of things done better elsewhere.

Git is a distributed version control system that is popular, well-supported, and does most of the things Kuma tries to do in much more elegant ways - at least, with respect to VC.

So, it might be interesting to look into swapping out Kuma's use of MySQL for version control and replacing it with a Git-based backend.

Some improved VC features we could employ:

  • overall better version control mechanisms & history retention
  • tagging & branching, to accommodate content that varies with product versions, dev cycles, etc

This could also offer a lot of generative opportunities to consume & manipulate the MDN document corpus:

  • mirroring the entire public document corpus on GitHub
    • e.g. Content for 3rd party apps. Allow 3rd parties to build e-books.
  • allowing the MDN document corpus to be manipulated by non-MDN tools and scripts
    • e.g. Don't like the Kuma editor? Build your own.
  • accepting Pull Requests against the corpus, allowing for reviewable changes that span multiple documents
    • e.g. Mass atomic page moves. External tools to update compatibility info across many pages

Inspirations

Using git as the data backend for a wiki is not a terribly original idea.

Implementation resources

  • bug 756547 - Investigate a git-based backend for the wiki

Next Steps

  • Experimental research into using git as a data backend in a Django site
  • Migration scripts to convert from documents in MySQL to a git repos