Difference between revisions of "Lua scripting"

From MediaWiki.org
Jump to navigation Jump to search
(no timetable)
(communications about project, goals)
Line 13: Line 13:
 
}}<noinclude>
 
}}<noinclude>
   
We're working to support Lua as a scripting language for MediaWiki end users, including Wikipedia editors. You can try out the prototype now at http://scribunto.wmflabs.org/ , and we don't yet have a schedule for enabling it on any wikis other than mediawiki.org and test2.wikipedia.org.
+
We're working to support Lua as a scripting language for MediaWiki end users, including Wikipedia editors. You can try out the prototype now at http://scribunto.wmflabs.org/ , and we don't yet have a schedule for enabling it on any wikis other than mediawiki.org and test2.wikipedia.org. It will be early 2013 by the time of rollout to most WMF sites.
  +
  +
We plan to let Lua incubate on mediawiki.org while we test the performance characteristics with key templates, and work out a deployment plan for larger wikis that includes community involvement. The Scribunto extension has been deployed to test2.wikipedia.org and www.mediawiki.org, and several editors are porting existing templates such as Cite over to Lua (see [//test2.wikipedia.org/w/index.php?namespace=828&associated=1&title=Special%3ARecentChanges recent changes in the "Module:" namespace] and [[Lua scripting/Tutorial|the tutorial]]).
   
 
== Status ==
 
== Status ==
Line 36: Line 38:
 
== Roadmap ==
 
== Roadmap ==
   
There is no timetable at present for deployment of Scribunto to other wikis. See relevant portions of [[Roadmap]] and [[Wikimedia_Engineering/2012-13_Goals#Milestones_by_quarter_7|the yearly goals]] for latest details on this project.
+
There is no timetable, at present, for deployment of Scribunto to specific wikis. From the Platform Engineering part of the [[Roadmap]] and the site performance part of [[Wikimedia_Engineering/2012-13_Goals#Milestones_by_quarter_7|the yearly goals]], here are upcoming milestones:
  +
  +
=== Milestones by quarter ===
  +
  +
{| class="wikitable"
  +
| '''July-September 2012''' ||
  +
* Experimental, limited deployment of Lua to the production cluster.
  +
|-
  +
| '''October-December 2012''' ||
  +
* Ramping up Lua to play gradually larger role on site, supporting common templates with poor performance characteristics
  +
* Page rendering performance tools to help assess impact of Lua
  +
|-
  +
| '''January-March 2013''' ||
  +
* Full deployment of Lua to the production cluster (contingent upon October assessment)
  +
|}
  +
   
 
== Documents ==
 
== Documents ==
Line 42: Line 59:
 
* [[Extension:Scribunto]] - MediaWiki extension page for this tool
 
* [[Extension:Scribunto]] - MediaWiki extension page for this tool
 
* User requirements: [[Lua scripting/Requirements|notes]]
 
* User requirements: [[Lua scripting/Requirements|notes]]
 
* [[{{FULLPAGENAME}}/status|Status updates]]
 
* [[/Meeting_2012-01-25]]
 
* [[Lua scripting/Tutorial|Tutorial on using Lua for MediaWiki templates]]
 
* [[Extension:Scribunto/Brainstorming]]
 
* [[Extension:Scribunto/Deployment priorities]]
 
* Specifications:
 
* Specifications:
* Software design document:
+
* Software design document: [[User:Sumanah/Lua_vs_Javascript|Explanation of why Tim's preferred language is Lua]]
 
* Test plan:
 
* Test plan:
 
* Documentation plan:
 
* Documentation plan:
Line 49: Line 71:
 
* Schedule:
 
* Schedule:
 
* Task management:
 
* Task management:
* Release management plan:
+
* Release management plan: [[Lua scripting/Release management]]
 
* Communications plan:
 
* Communications plan:
* [[{{FULLPAGENAME}}/status|Status updates]]
 
* [[User:Sumanah/Lua_vs_Javascript|Explanation of why Tim's preferred language is Lua]]
 
* [[/Meeting_2012-01-25]]
 
* [[Lua scripting/Tutorial|Tutorial on using Lua for MediaWiki templates]]
 
* [[Extension:Scribunto/Deployment priorities]]
 
* [[Extension:Scribunto/Brainstorming]]
 
   
 
{{Add new Wikimedia engineering project status update}}
 
{{Add new Wikimedia engineering project status update}}
Line 63: Line 79:
   
 
<!-- List here the public communications (by the team or the media) about this project -->
 
<!-- List here the public communications (by the team or the media) about this project -->
  +
* [http://thread.gmane.org/gmane.science.linguistics.wikipedia.technical/58479 Agreement on Lua]
  +
* [https://meta.wikimedia.org/wiki/File:Monthly_Metrics_Meeting_May_3,_2012.ogv Patrick Reilly spoke about the Lua scripting work in a presentation on 3 May 2012 (scroll to about 22:00 or 27:00 to see it)]
  +
* [https://commons.wikimedia.org/wiki/File:Berlin_Hackathon_2012_-_Lua_introduction_%28Tim_Starling%29.ogv Tutorial session, Berlin, June 2012]
   
 
[[Category:WMF Projects 2011q3]]
 
[[Category:WMF Projects 2011q3]]
  +
[[Category:WMF Projects 2012q1]]
 
[[Category:Wikitext]]
 
[[Category:Wikitext]]
 
</noinclude>
 
</noinclude>

Revision as of 05:21, 10 September 2012

We're working to support Lua as a scripting language for MediaWiki end users, including Wikipedia editors. You can try out the prototype now at http://scribunto.wmflabs.org/ , and we don't yet have a schedule for enabling it on any wikis other than mediawiki.org and test2.wikipedia.org. It will be early 2013 by the time of rollout to most WMF sites.

We plan to let Lua incubate on mediawiki.org while we test the performance characteristics with key templates, and work out a deployment plan for larger wikis that includes community involvement. The Scribunto extension has been deployed to test2.wikipedia.org and www.mediawiki.org, and several editors are porting existing templates such as Cite over to Lua (see recent changes in the "Module:" namespace and the tutorial).

Status

Rationale

Templates and ParserFunctions were introduced to allow end users of MediaWiki to replicate content easily and build tools using basic logic, effectively turning wikitext into a limited programming language.

However, complex templates have caused performance issues and bottlenecks.

This project aims to make it possible for MediaWiki end-users to use a proper scripting language that will be more powerful and efficient than ad-hoc ParserFunctions-based logic.

See also Scripting, Extension:Scribunto.

The example of Lua's use in World of Warcraft is promising; even novices with no programming experience were able to make large changes to their graphical experiences by quickly learning some Lua.

<marktraceur> hashar, sumanah, also Minetest (http://minetest.net) has recently implemented a similar system, though it mods the server more than the client, from what I've seen it's driving people to learn Lua so they can add in their ideas, something not possible with C++
<hashar> sumanah: the secret of WoW is that they managed to expose an API which is very easy to understand
<YuviPanda> hashar: heard of Celestia? It's a planaterium software of sorts. Uses Lua for scripting. When I was in 9th grade, me and (also!) everyone around were able to learn and use it without much of a problem at all.

Roadmap

There is no timetable, at present, for deployment of Scribunto to specific wikis. From the Platform Engineering part of the Roadmap and the site performance part of the yearly goals, here are upcoming milestones:

Milestones by quarter

July-September 2012
  • Experimental, limited deployment of Lua to the production cluster.
October-December 2012
  • Ramping up Lua to play gradually larger role on site, supporting common templates with poor performance characteristics
  • Page rendering performance tools to help assess impact of Lua
January-March 2013
  • Full deployment of Lua to the production cluster (contingent upon October assessment)


Documents

Template:Add new Wikimedia engineering project status update

Communications