Development:Index: Difference between revisions

From COMP15212 Wiki
gravatar Yuron [userbureaucratinterface-adminsysopPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+YnVyZWF1Y3JhdDxiciAvPmludGVyZmFjZS1hZG1pbjxiciAvPnN5c29wPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs)
m (1 revision imported)
gravatar W81054ch [userbureaucratinterface-adminsysopPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+YnVyZWF1Y3JhdDxiciAvPmludGVyZmFjZS1hZG1pbjxiciAvPnN5c29wPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs)
m (Reverted edits by Yuron (talk) to last revision by [[User:pc>Yuron|pc>Yuron]])
Tag: Rollback
Line 1: Line 1:
This page details information related to the development of this Mediawiki-driven website.
This page details information related to the development of this Mediawiki-driven website, serving as documentation for the code written for the wiki. For information regarding how to make use of this wiki's features once it's been set up, refer to [[Help:Index]].
== Extensions ==
== Extensions ==
*Semantic Mediawiki is used to provide:
*Semantic Mediawiki is used to provide:
Line 5: Line 5:
**Priority levels
**Priority levels
**Paths
**Paths
**Dependencies


*Scribunto (Lua scripting) is used to provide:
*Scribunto (Lua scripting) is used to provide:
**Article dependencies (Lua is needed to support an arbitrary and unlimited number of dependencies)
**Article dependencies (Lua is needed to support adding an arbitrary number of dependencies to a single box)


*Widgets is used to provide:
*Widgets is used to provide:
**Page demonstrations ([[Widget:BarrierDemo |Barrier demo]], [[Widget:PageTableDemo|Page Table Demo]], etc)
**Page demonstrations ([{{canonicalurl:Special:AllPages|namespace=274}} List of widgets])
 
*[[Development:UserDash|UserDash]] is the extension that drives most other features specific to this site, including:
**[[Special:Dashboard]], which currently holds the contents of the account profile page from MESH, rather than the Dashboard.
**The rating and page tagging system
**Page graphs
**[[Special:Contents|Contents]] page
 
*The skin Chameleon is used to provide Bootstrap to the wiki.
**'''The Bootstrap extension the Chameleon skin comes with does not include tooltip.js from Bootstrap. Replace line 68 in extensions/Bootstrap/src/Definition/V4ModuleDefinition with ''' <code> 'tooltip'          => [ 'styles' => 'tooltip', 'scripts' => 'tooltip.js', 'dependencies' => [ 'popper', 'js-util' ] ],> </code> ''' to fix this. This needs to be done every time Composer is used to update components, as this change would be overwritten.'''


== Migration ==
== Migration ==
*Step 1: Export content from old wiki:
#First, copy over the wiki installation, including the extensions, skin, and custom configurations in LocalSettings.php, or start from a fresh installation and append the needed extensions/configurations to LocalSettings.php afterwards.
**Export all pages with <code> php maintenance/dumpBackup.php --current > name-of-output-file.xml </code>
#Second, migrate all pages in the wiki:
**Export all images with (bespoke) <code> exportImage.sh </code>
##Run <code> php maintenance/dumpBackup.php --current > backup.xml </code> to dump all pages into backup.xml
*Step 2: Import content to new wiki
##Restore backup.xml with the special page Special:Import on the target server
**Import all pages using Special:Import
##*Special:Import also requires an "interwiki prefix", which doesn't matter for a migration
**Import all images with (bespoke) <code> importImage.sh </code>
#Third, migrate all images:
** Refresh Semantic Mediawiki with <code> php extensions/SemanticMediaWiki/maintenance/rebuildData.php </code>
##Run the bespoke <code>exportImage.sh</code> on the source server to obtain MediaFiles.zip
##Copy MediaFiles.zip to ~/ (user directory) on the destination
##Run the bespoke importImage.sh on the destination to restore images
#Lastly, refresh the extension databases with <code>php maintenance/update.php</code>, and refresh the Semantic Mediawiki database with <code> php extensions/SemanticMediaWiki/maintenance/rebuildData.php </code>
 
=== Further setup ===
For the rating chart in Special:Profile to work properly, the values UDStartYear, UDStartMonth, UDStartDay, UDStartHour, UDEndWeek and UDVacationWeeks in extensions/UserDash/extension.json must be set to sensible values.

Revision as of 11:08, 27 July 2019

This page details information related to the development of this Mediawiki-driven website, serving as documentation for the code written for the wiki. For information regarding how to make use of this wiki's features once it's been set up, refer to Help:Index.

Extensions

  • Semantic Mediawiki is used to provide:
    • Page summaries
    • Priority levels
    • Paths
    • Dependencies
  • Scribunto (Lua scripting) is used to provide:
    • Article dependencies (Lua is needed to support adding an arbitrary number of dependencies to a single box)
  • UserDash is the extension that drives most other features specific to this site, including:
    • Special:Dashboard, which currently holds the contents of the account profile page from MESH, rather than the Dashboard.
    • The rating and page tagging system
    • Page graphs
    • Contents page
  • The skin Chameleon is used to provide Bootstrap to the wiki.
    • The Bootstrap extension the Chameleon skin comes with does not include tooltip.js from Bootstrap. Replace line 68 in extensions/Bootstrap/src/Definition/V4ModuleDefinition with 'tooltip' => [ 'styles' => 'tooltip', 'scripts' => 'tooltip.js', 'dependencies' => [ 'popper', 'js-util' ] ],> to fix this. This needs to be done every time Composer is used to update components, as this change would be overwritten.

Migration

  1. First, copy over the wiki installation, including the extensions, skin, and custom configurations in LocalSettings.php, or start from a fresh installation and append the needed extensions/configurations to LocalSettings.php afterwards.
  2. Second, migrate all pages in the wiki:
    1. Run php maintenance/dumpBackup.php --current > backup.xml to dump all pages into backup.xml
    2. Restore backup.xml with the special page Special:Import on the target server
      • Special:Import also requires an "interwiki prefix", which doesn't matter for a migration
  3. Third, migrate all images:
    1. Run the bespoke exportImage.sh on the source server to obtain MediaFiles.zip
    2. Copy MediaFiles.zip to ~/ (user directory) on the destination
    3. Run the bespoke importImage.sh on the destination to restore images
  4. Lastly, refresh the extension databases with php maintenance/update.php, and refresh the Semantic Mediawiki database with php extensions/SemanticMediaWiki/maintenance/rebuildData.php

Further setup

For the rating chart in Special:Profile to work properly, the values UDStartYear, UDStartMonth, UDStartDay, UDStartHour, UDEndWeek and UDVacationWeeks in extensions/UserDash/extension.json must be set to sensible values.