Migrating to Mobyle 10

This page lists a number of changes that have to be taken into account when migrating from Mobyle 0.97 to Mobyle 1.0

XML Service descriptions

The grammar of services has evolved since last version, mostly to add new possibilities and information. If you migrate your XMLs, you have different options:
  • you are using XML descriptions maintained at the Institut Pasteur: the easiest way is to download the new compatible version, currently available only on the svn trunk:
    https://projets.pasteur.fr/projects/show/pasteur-programs. Please also note that the classification categories of the programs can now be customized outside of the XML, allowing you to update your XML without having to re-localize the classification. The file for this is Local/categories.xml, and an example file can be found in Example/Local/categories.xml.
  • you wrote your XML yourself:
  • only two incompatibilities prevent you from reusing directly your XML in Mobyle: (1) the acceptedDataFormat element is now completely removed, and its dataFormat children elements are direct children of the type element; (2) the interface element has to have a type attribute: the details of this mechanism which extends the customization possibilities are described in the detailed documentation, but legacy 0.97 XML interface elements should be updated with a type="form" attribute for inputs and a type="job_output" attribute for results.
  • if you want to enjoy all the new possibilities offered by Mobyle 1.0, you have to provide additional information which was not included in previous XML schemas. The details are described in https://projets.pasteur.fr/repositories/changes/mobyle/trunk/Doc/Admin/how_to_write_a_xml.pdf

Apache rewrite rules

The Mobyle "direct links" have changed between versions 0.9x and 1.0. To enable redirection of old URLs, you need to set redirections. For instance, in Apache, you can create a ".htaccess" file in the cgi directory that contains:

RewriteCond     %{REQUEST_URI}  ^/cgi-bin/portal.py
RewriteCond     %{QUERY_STRING}     forms=(.*)
RewriteRule     .*              /cgi-bin/portal.py?#forms::%1 [NE,R,L]

RewriteCond     %{REQUEST_URI}  ^/cgi-bin/portal.py
RewriteCond     %{QUERY_STRING}     form=(.*)
RewriteRule     .*              /cgi-bin/portal.py?#forms::%1 [NE,R,L]

RewriteCond     %{REQUEST_URI}  ^/cgi-bin/portal.py
RewriteCond     %{QUERY_STRING}     jobs=http://(.*)/(.*)/(.*)/(.*)/(.*)
RewriteRule     .*              /cgi-bin/portal.py?#jobs::%4.%5 [NE,R,L]