{"id":852,"date":"2010-06-10T12:44:52","date_gmt":"2010-06-10T11:44:52","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=852"},"modified":"2010-06-10T12:44:52","modified_gmt":"2010-06-10T11:44:52","slug":"extension-management-platform","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/","title":{"rendered":"Extension management platform"},"content":{"rendered":"<p>After doing a pile of research on how to best create an extension management platform for MediaWiki as <a href=\"https:\/\/www.entropywins.wtf\/blog\/2010\/04\/26\/google-summer-of-code-2010\/\">my Google Summer of Code project<\/a>, I realized that a lot of the work that I wanted to do was already done in some form or another, and decided to somewhat augment my goals. Since I can build upon <a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Configure\">Configure<\/a>, and the <a href=\"http:\/\/smwforum.ontoprise.com\/smwforum\/index.php\/Help:Deployment_Framework\">Deployment Framework<\/a> of <a href=\"http:\/\/www.ontoprise.de\">Ontoprise<\/a>, it should now be possible to also take care of the MediaWiki and extension configuration that I put as optional in <a href=\"http:\/\/www.mediawiki.org\/wiki\/User:Jeroen_De_Dauw\/GSoC2010\">my original proposal<\/a>. To have some transparency here, and not to cause misconceptions, I created an <strong>awesome<\/strong> <a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension_Management_Platform\/Roadmap\">new roadmap<\/a>.<\/p>\n<p>I did an  attempt to get some feedback by posting my roadmap on  wikitech-l, but apparently everyone is either happy with it, or more  likely, Parkinson&#8217;s  Law of Triviality is in play here. So feedback and  suggestions are definitely welcome, you can post them on <a href=\"http:\/\/www.mediawiki.org\/wiki\/Talk:Extension_Management_Platform\">the  discussion page<\/a>.<\/p>\n<p>As Configure is doing an <strong>awesome<\/strong> job already without making significant  changes to any existing code, I decided to start off with the Deployment  Framework. I&#8217;m currently in the process of figuring out how it works  exactly, so I&#8217;m able to extend it&#8217;s features, and build a GUI in the  form of several MediaWiki special pages on top of it. This will have some immediate pay-off as Ontoprise will be able to use this improved version directly.<\/p>\n<p>Both my presentations for <a href=\"http:\/\/wikimania2010.wikimedia.org\/wiki\/Main_Page\">Wikimania 2010<\/a> have been accepted, of which <a href=\"http:\/\/wikimania2010.wikimedia.org\/wiki\/Submissions\/Extension_Management_Platform\">one is about my project<\/a>, which will give me a change to explain to people what I&#8217;m doing and why it&#8217;s so <strong>awesome<\/strong> \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After doing a pile of research on how to best create an extension management platform for MediaWiki as my Google&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[39,92,110,115,116,156,181,195,197,283,285],"class_list":["post-852","post","type-post","status-publish","format-standard","hentry","category-programming","tag-awesome","tag-extension-management","tag-google","tag-gsoc","tag-gsoc-2010","tag-mediawiki","tag-open-source","tag-php","tag-planet-wikimedia","tag-wiki","tag-wikimedia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Extension management platform - Blog of Jeroen De Dauw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Extension management platform - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"After doing a pile of research on how to best create an extension management platform for MediaWiki as my Google&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2010-06-10T11:44:52+00:00\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Extension management platform\",\"datePublished\":\"2010-06-10T11:44:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\"},\"wordCount\":271,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"keywords\":[\"Awesome\",\"Extension management\",\"Google\",\"GSoC\",\"GSoC 2010\",\"MediaWiki\",\"Open Source\",\"PHP\",\"Planet Wikimedia\",\"Wiki\",\"Wikimedia\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\",\"url\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\",\"name\":\"Extension management platform - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#website\"},\"datePublished\":\"2010-06-10T11:44:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.entropywins.wtf\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extension management platform\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#website\",\"url\":\"https:\/\/www.entropywins.wtf\/blog\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeroendedauw\/\",\"https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extension management platform - Blog of Jeroen De Dauw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/","og_locale":"en_US","og_type":"article","og_title":"Extension management platform - Blog of Jeroen De Dauw","og_description":"After doing a pile of research on how to best create an extension management platform for MediaWiki as my Google&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2010-06-10T11:44:52+00:00","author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Extension management platform","datePublished":"2010-06-10T11:44:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/"},"wordCount":271,"commentCount":2,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"keywords":["Awesome","Extension management","Google","GSoC","GSoC 2010","MediaWiki","Open Source","PHP","Planet Wikimedia","Wiki","Wikimedia"],"articleSection":["Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/","url":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/","name":"Extension management platform - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"datePublished":"2010-06-10T11:44:52+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2010\/06\/10\/extension-management-platform\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Extension management platform"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-dK","jetpack-related-posts":[{"id":792,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/04\/26\/google-summer-of-code-2010\/","url_meta":{"origin":852,"position":0},"title":"Google Summer of Code 2010","author":"Jeroen","date":"2010-04-26","format":false,"excerpt":"Like last year, I\u2019ve been accepted for GSoC 2010 \u2013 yay! The Google Summer of Code (GSoC) is an annual program, first held from May to August 2005, in which Google awards stipends to hundreds of students who successfully complete a requested free software \/ open-source coding project during the\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Google","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/04\/google_logo-300x125.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":941,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/08\/07\/distribution-extension-for-mediawiki\/","url_meta":{"origin":852,"position":1},"title":"Distribution extension for MediaWiki","author":"Jeroen","date":"2010-08-07","format":false,"excerpt":"With only 2 days till the suggested Google Summer of Code 'pencils down' date, and a week longer until the firm one, I'm using my remaining time to get some basic functionality working for my GSoC project. I've started creating a new extension called Distribution that will provide an API\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":962,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/08\/20\/end-of-google-summer-of-code-2010\/","url_meta":{"origin":852,"position":2},"title":"End of Google Summer of Code 2010","author":"Jeroen","date":"2010-08-20","format":false,"excerpt":"As Google Summer of Code (GSoC) 2010 has ended, I'm writing this blog post to outline what I've done during the coding period and what the results are. Thanks go to the Wikimedia Foundation and Google for providing the opportunity to do this project, Brion Vibber, who mentored me, and\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Google Summer of Code 2010","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/08\/2010_NoURL_300x267px.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":921,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/07\/20\/mediawiki-org-user-page-1-year\/","url_meta":{"origin":852,"position":3},"title":"MediaWiki.org user page 1 year","author":"Jeroen","date":"2010-07-20","format":false,"excerpt":"Today my MediaWiki.org user page is one year old - I created the first version on July 20, 2009. With my SVN account also approaching it's first birthday, I can now say I'm doing MediaWiki development for a year. A lot has happened in this year. I created the Maps\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":706,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/10\/working-for-wikimedia-foundation\/","url_meta":{"origin":852,"position":4},"title":"Working for Wikimedia Foundation","author":"Jeroen","date":"2010-02-10","format":false,"excerpt":"As of today I'm working for the Wikimedia Foundation as developer. I have a 3 month contract, after which I'll participate in GSoC 2010, and do a project for ... well... Wikimedia Foundation :) (I'll post more about GSoC 2010 later on, I have a really awesome project planned :d)\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Wikimedia Foundation logo","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/02\/Wikimedia_Foundation_RGB_logo_with_text.svg_.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":925,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/07\/22\/mediawiki-deployment-modifying-the-new-installer\/","url_meta":{"origin":852,"position":5},"title":"MediaWiki Deployment: Modifying the new installer","author":"Jeroen","date":"2010-07-22","format":false,"excerpt":"I got a new diagram!!!1!11!! It's based on my previous one, but slightly more elaborate, and a lot less messy, as I now used Dia to create it :) Legend: Striped lines: Existing components where code will be copied from, or based upon. Full lines: Components of the complete deployment\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"MediaWiki deployment diagram","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/MwDeployment-1024x389.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/MwDeployment-1024x389.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/MwDeployment-1024x389.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/MwDeployment-1024x389.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=852"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/852\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}