MDN/Projects/Development/Git Backend: Difference between revisions
< MDN | Projects | Development
Jump to navigation
Jump to search
LesOrchard (talk | contribs) (Created page with "== 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...") |
m (Sheppy moved page MDN/Development/GitBackend to MDN/Projects/Development/Git Backend: Project page reorg) |
||
(6 intermediate revisions by 2 users not shown) | |||
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. | ||
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. 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. | |||
* 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 | |||
== Inspirations == | == Inspirations == | ||
Line 21: | Line 29: | ||
== Implementation resources == | == Implementation resources == | ||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=756547 bug 756547] - Investigate a git-based backend for the wiki | |||
== Next Steps == | == 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 | |||
* | === Experiments === | ||
* | * Create a script to export some wiki content into a git repo and invite new contributors to edit there | ||
** Validates or invalidates the assumption that git-based content attracts new contributors | |||
* Try [https://bugzilla.mozilla.org/show_bug.cgi?id=938169 bug 938169] again with a script that manipulates files in git | |||
** Validates or invalidates the assumption that git-based content lends itself to more tooling |
Latest revision as of 20:13, 19 June 2014
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.
- gollum - GitHub's wiki
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
Experiments
- Create a script to export some wiki content into a git repo and invite new contributors to edit there
- Validates or invalidates the assumption that git-based content attracts new contributors
- Try bug 938169 again with a script that manipulates files in git
- Validates or invalidates the assumption that git-based content lends itself to more tooling