Merge "Drop npm script to generate jsduck docs"
tree: eb7987ffdaa2693c347c8216bfd2288561386cd9
  1. .github/
  2. .phan/
  3. build/
  4. client/
  5. data-access/
  6. docs/
  7. jmeter/
  8. lib/
  9. repo/
  10. tests/
  11. view/
  12. .editorconfig
  13. .eslintignore
  14. .eslintrc.js
  15. .gitignore
  16. .gitmodules
  17. .gitreview
  18. .luacheckrc
  19. .mailmap
  20. .phpcs.xml
  21. .scrutinizer.yml
  22. .stylelintrc.json
  23. CODE_OF_CONDUCT.md
  24. composer.json
  25. COPYING
  26. CREDITS
  27. Doxyfile
  28. extension-client.json
  29. extension-repo.json
  30. Gruntfile.js
  31. HISTORY
  32. jsduck.json
  33. package-lock.json
  34. package.json
  35. phpstan.neon
  36. README.md
  37. RELEASE-NOTES-1.43
  38. RELEASE-NOTES-1.44
  39. sonar-project.properties
  40. Wikibase.php
README.md

Introduction to Wikibase

Wikibase Secondary CI Scrutinizer Code Quality

The Wikibase.git package is part of the Wikibase software and consists of multiple MediaWiki extensions and other components.

The package allows for the creation, maintenance, dissemination, and usage of structured data in MediaWiki.

High level documentation can be found on wikiba.se and mediawiki.org. Lower level documentation can be found on doc.wikimedia.org here.

Install

Wikibase depends on various composer libraries.

Once you have Wikibase in your MediaWiki extensions directory, go to the root of your MediaWiki folder, and if composer.local.json does not yet exist there, copy composer.local.json-sample to composer.local.json (see MediaWiki's Composer documentation).

Then run:

composer install

If you already ran composer install during the installation of MediaWiki, run instead:

composer update

When using ways to combine MediaWiki with the extension folders (e.g. symlinks or docker volumes) please make sure that the folders are available to composer in the same structure they are available to the webserver, too.

This will install both Wikibase Client and Repo together on the same wiki.

If you want to only have one or the other, then set $wgEnableWikibaseRepo = false or $wgEnableWikibaseClient to false for the one you don't want to enable.

Wikibase also depends on several JavaScript libraries. They are included in this repository as submodules. To fetch files of these libraries, you might need to run, in the Wikibase extension folder, the following command:

git submodule update --init

Development

Wikibase uses tools to ensure the quality of software developed. To invoke these tools, inside the Wikibase folder, run:

composer install
composer run-script test

As this uses development dependencies and custom configuration, executing it from the MediaWiki root folder (via composer run-script test extensions/Wikibase) will not work satisfactorily

JavaScript

Wikibase makes use of frontend software from various eras - resulting in a heterogenous technological landscape.

Some notable (not a comprehensive list) mentions are

Adding language code support in Wikibase

To add support for a new language code (for labels or monolingual text) please refer to the detailed documentation.