Header Image
Accueil / L’association / Travailler pour Wikimédia France / Nos appels d’offres / Appel d’offres – Développement et amélioration de l’outil web Lingua Libre 2022

Appel d’offres – Développement et amélioration de l’outil web Lingua Libre 2022

Développement et amélioration de l’outil web Lingua Libre

Client : Wikimédia France (association à but non lucratif)

Projet : Prestation de maintenance corrective et évolutive sur Lingua Libre (outil web de constitution et traitement de corpus audio)

Langages utilisés :

Backend – PHP, TSQL, Python

Frontend – CSS, Javascript

Calendrier de candidature : date limite le 15 octobre 2022

1. Contexte du projet

Lingua Libre est un outil web, qui se présente comme un site d’enregistrement de lexique et de documentation orale des langues. L’outil multilingue est libre, gratuit et il est développé par Wikimédia France. Les utilisateurs créent des listes de mots par écrit, puis s’enregistrent sur Lingua Libre en lisant à voix haute cette liste de mots. Ils constituent ainsi un corpus de fichiers audio qui contiennent chacun la prononciation orale d’un mot. Chaque fichier est nommé d’après la langue, le nom de l’utilisateur et l’orthographe du mot enregistré. Les fichiers sont ensuite stockés sur la plateforme Wikimedia Commons, et un bot les réutilise sur de nombreux autres sites : wikidata, le wiktionnaire en français, le wiktionnaire en chaoui etc. Les fonctions de statistiques et de bibliothèque consultative de l’outil font des appels à ce corpus hébergé sur Wikimedia Commons ainsi qu’à la base de données interne de Lingua Libre pour fournir les données et fichiers nécessaires aux utilisateurs.

Le projet Lingua Libre a été lancé en novembre 2015 grâce aux efforts conjoints de contributeurs bénévoles et de partenaires de Wikimédia France. La version actuelle du site a été mise en production en 2018, avec le Record Wizard. Depuis, le Record Wizard n’a pas subi d’évolution majeure.

2. Présentation de Wikimédia France

Wikimédia France est l’association française, créée le 23 octobre 2004, qui œuvre pour le libre partage de la connaissance au travers des projets Wikimédia (Wikipédia, le Wikitionnaire, Wikimédia Commons, Wikidata, etc.)

L’association est soutenue par une équipe de 13 salariés et par ses 300 membres et bénévoles répartis sur l’ensemble du territoire français.

Au sein de l’association, la salariée en charge de Lingua Libre est Adélaïde Calais, chargée de mission diversité et francophonie. Elle est épaulée dans cette tâche par Michaël Barbereau, administrateur systèmes et réseaux.

3. Description de l’existant :

Lingua Libre fonctionne grâce à MediaWiki. Le dépôt de code est en accès public et est hébergé sur la plateforme GitHub.

Technologies :

  • MédiaWiki 1.35.2 (15 avril 2021)PHP 7.4.25jimo
  • MariaDB (10.3.34-MariaDB-0ubuntu0.20.04.1
  • ICU (66.1)
  • LUA (5.1.5)
  • Habillage : BlueLL
  • Liste des plug-ins en annexe (en ligne si besoin ici)
  • Les bugs sont suivis sur un tableau de bord en accès public, hébergé sur Phabricator. Phabricator est un outil sous la responsabilité de la Fondation Wikimédia.
  • Tableau de bord des bugs : https://phabricator.wikimedia.org/tag/lingua_libre/
  • Langages utilisés en frontend : CSS, Javascript
  • backend : PHP, TSQL, Python
  • La charte graphique de Wikimédia France contient notamment le logo, la police d’écriture Montserrat, et une palette de couleurs. Elle est disponible en ligne sur Meta-Wiki.
  • Licences : selon les repositeries, le code est sous licence GPL 2.0, GPL 3.0 ou MIT.

4. Objectifs de la prestation

En 2022, la contribution ralentit car le Record Wizard accuse des bugs importants. Wikimédia France a besoin qu’un outil de patrouille flexible et efficace soit mis en place car notre mécène principal prépare un projet de dictionnaire francophone affichant nos enregistrements. Ce projet nécessite que la base de fichiers ne contienne pas de fichiers de mauvaise qualité ou avec des défauts.

Le projet vit grâce à une communauté de bénévoles assidus et motivés qui l’alimentent en enregistrements, ajoutent des fonctionnalités à l’outil, participent à son maintien en conditions opérationnelles. Cette petite équipe souhaite travailler main dans la main avec la personne ou les personnes qui se chargeront des développements, il y aura donc une dimension de participation à des actions organisées par la communauté à cette mission, de transmission de connaissances, de documentation également.

Enfin, Lingua Libre fait face à un tournant majeur dans le traitement automatique des langues et même au sein des projets wikimédia. Des discussions sont en cours pour penser sa stratégie sur 5 ans minimum. Les compétences et connaissances du prestataire seront des apports importants pour cette réflexion.

5. Prestations attendues

5.1 Développement

Le prestataire réalise les tâches de développement listées ci-dessous.

Tâches de maintenance corrective :

Tâches de maintenance évolutive :

  • Extension permettant aux utilisateurs d’effectuer une patrouille en réécoutant les enregistrements existants et en les marquant d’un tag : framework vueJS et de préférence sous MediaWiki (modèle à suivre = Record Wizard : avec une page Special: et l’extension appelle le VueJS sur cette page)
  • Outil de modification massive d’audios couplé avec l’extension de patrouille : on peut modifier les audios un par un au fil de la patrouille, ou on peut obtenir une liste des fichiers marqués du même tag et les éditer tous d’un coup.
  • Outil d’import massif d’enregistrements – interface permettant d’ajouter les métadonnées du profil ou d’un invité (autre personne que l’utilisateur) à ces fichiers.

5.2. Transfert de connaissance

Documentations et suivi de projet :

  • Le prestataire organise et anime 3 réunions de 2h chacune pour assurer la transmission de connaissances auprès des bénévoles impliqués.
  • Le prestataire produit un document qui décrit les procédures d’installation des outils nécessaires au bon fonctionnement des développements qu’il implémente.
  • Le prestataire met à jour les tickets liés aux tâches listées dans les prestations de maintenance correctives et évolutives listées ci-dessus. Si pour effectuer ces tâches il a besoin d’analyser d’autres éléments, documentés par un autre ticket, il mettra le statut du ticket à jour et de même si ses tâches de maintenance ont des effets de bord sur d’autres éléments, il mettra à jour les tickets phabricator impactés.
  • Le prestataire met à jour le schéma d’architecture du code de Lingua Libre.
  • Le prestataire participe aux réunions stratégie de Lingua Libre (d’un total de 6h)

6. Calendrier

Date limite pour la remise des candidatures : 15 octobre 2022.

  • Début de la mission : début novembre
  • Point d’étape : à mi-parcours
  • Fin de la mission : entre février et avril 2023

Ce calendrier sera affiné et validé entre Wikimédia France et le prestataire pour fixer des dates dans le contrat final.

7. Modalités de suivi

Un point de suivi en visioconférence toutes les deux semaines entre la chargée de mission diversité et francophonie ainsi que l’administrateur système et réseau de l’association d’une part et le prestataire d’autre part. Un point d’étape est prévu à mi-chemin de la mission, puis une étape de finalisation de la mission aura lieu. Le point d’étape de mi-parcours et la fin de mission donneront lieu à un rapport des modifications, corrections, créations et tâches effectuées par le prestataire.

Ces rapports, qui constituent la vérification du bon fonctionnement des prestations réalisées par le prestataire, est soumis à validation sous 15 jours, par la chargée de mission diversité et francophonie.

8. Modalités de sélection du prestataire

Selon la procédure de prestation de l’association, une sélection sera effectuée parmi les offres, prenant en compte le prix, les compétences du prestataire (maîtrise des langages utilisés, de MediaWiki, du traitement du signal audio, bonnes notions d’expérience utilisateur [UX]), ses expériences passées, l’organisation qu’il propose pour travailler avec la chargée de mission responsable du site web, les engagements qu’il prend sur la documentation des codes.

9. Propriété et licence

Toute production faite dans le cadre de cette prestation sera la propriété de Wikimédia France. Le code devra nous être cèdé sous une licence identique à celle des modules concernés.
Exemple : les maintenances liées au Record Wizard devront être mise sous licence GPL.

10. Contact

Adresser les offres, ou demandes de précisions à Adélaïde Calais
Email : ao-lingualibre@wikimedia.fr
Adresse : 28 rue de Londres, 75009 Paris
Téléphone : +33 1 42 36 26 24

11. Annexes

11.1 Logiciels installés

ProduitVersion
MediaWiki1.35.2 (e5823c0)
8 avril 2021 à 19:52
PHP7.4.25 (fpm-fcgi)
MariaDB10.3.34-MariaDB-0ubuntu0.20.04.1
ICU66.1
Lua5.1.5

11.2 Habillages installés

HabillageVersionLicenceDescriptionAuteurs
BlueLL2.2.0 (eed9f3c) 4 août 2022 à 14:14BSD-2-ClauseHabillage épuré initialement développé pour Lingua Libre.Antoine Lamielle

11.3 Extensions installées

Pages spéciales
ExtensionVersionLicenceDescriptionAuteurs
Echo(fd6a33e) 1 janvier 2021 à 09:00MITSystème pour avertir les utilisateurs des événements et messagesAndrew Garrett, Ryan Kaldari, Benny Situ, Luke Welling, Kunal Mehta, Moriel Schottlender, Jon Robson et Roan Kattouw
Interwiki3.2 (224d4be) 1 janvier 2021 à 21:33GPL-2.0-or-laterAjoute une page spéciale pour voir et modifier la table interwikiStephanie
Amanda Stevens, Alexandre Emsenhuber, Robin Pepermans, Siebrand
Mazeland, Platonides, Raimond Spekking, Sam Reed, Jack Phoenix,
Calimonius the Estrange et autres
Nuke1.3.0 (0a74305) 22 avril 2020 à 15:31GPL-2.0-or-laterDonne la possibilité aux administrateurs de supprimer en masse des pagesBrion Vibber et Jeroen De Dauw
Translate2020-04-20 (443fa1c) 27 novembre 2021 à 15:20GPL-2.0-or-laterPage spéciale pour traduire MediaWiki et au-delàNiklas Laxström, Siebrand Mazeland, Santhosh Thottingal, Amir E. Aharoni, Abijeet Patro et autres
 
Éditeurs
ExtensionVersionLicenceDescriptionAuteurs
CodeEditor(1fafe27) 1 janvier 2021 à 02:48GPL-2.0-or-later AND BSD-3-ClauseColoration syntaxique dans les pages écrites en JavaScript et CSS en utilisant l’Éditeur ACEBrion Vibber, Derk-Jan Hartman et authors of Ace
WikiEditor0.5.3 (9bc2d0b) 3 janvier 2021 à 12:56GPL-2.0-or-laterFournit une interface de modification de texte wiki avancée et extensible.Derk-Jan Hartman, Trevor Parscal, Roan Kattouw, Nimish Gautam et Adam Miller
 
Greffons de l’analyseur syntaxique
ExtensionVersionLicenceDescriptionAuteurs
Babel1.12.0 (a537535) 31 décembre 2020 à 15:44GPL-2.0-or-laterAjoute la fonction de l’analyseur syntaxique #babel permettant la création automatique d’une colonne de boîtes utilisateur Babel avec la possibilité d’inclure des modèles locauxRobert Leverington, Thiemo Kreuz, Legoktm, Nikerabbit, Amir Aharoni et Ricordisamoa
Cite(bc16b05) 29 mars 2021 à 23:22GPL-2.0-or-laterAjoute les balises <ref[ name=id]> et <references/> pour les citationsÆvar Arnfjörð Bjarmason, Andrew Garrett, Brion Vibber, Ed Sanders, Marius Hoch, Steve Sanbeg, Trevor Parscal et autres
Custom Subtitle0.1.0 (ae8719b) 23 février 2021 à 10:21GPL-2.0+Ajoute
la fonction magique pour permettre aux contributeurs d’ajouter un
sous-titre personalisé à n’importe quel page de contenu.
Antoine Lamielle
InputBox0.3.0 (96de709) 26 mai 2021 à 13:34MITPermet l’inclusion de formulaires HTML prédéfinis.Erik Moeller, Leonardo Pimenta, Rob Church, Trevor Parscal et DaSch
ParserFunctions1.6.0 (5c84940) 6 juillet 2020 à 07:54GPL-2.0-or-laterEtend l’analyseur syntaxique avec des fonctions logiquesTim Starling, Robert Rohde, Ross McClure et Juraj Simlovic
Poem(23bd68e) 22 avril 2020 à 16:47CC0-1.0Ajoute la balise <poem> pour le formatage des poèmesNikola Smolenski, Brion Vibber et Steve Sanbeg
Scribunto(d21b655) 2 janvier 2021 à 21:23GPL-2.0-or-later AND MITFramework pour l’intégration de langages de script dans les pages MediaWikiVictor Vasiliev, Tim Starling et Brad Jorsch
SyntaxHighlight2.0 (0e4cce6) 10 mars 2021 à 18:20GPL-2.0-or-laterFournit la mise en valeur de la syntaxe par la balise <syntaxhighlight> en utilisant Pygments – coloration syntaxique PythonBrion Vibber, Tim Starling, Rob Church, Niklas Laxström, Ori Livneh et Ed Sanders
 
Manipulateurs de médias
ExtensionVersionLicenceDescriptionAuteurs
PDF Handler(a2ab93f) 22 avril 2020 à 16:30GPL-2.0-or-laterGestionnaire permettant de visualiser les fichiers PDF en mode imageMartin Seidel et Mike Połtyn
TimedMediaHandler0.6.0 (a593d24) 3 janvier 2021 à 06:04GPL-2.0-or-laterGestionnaire
pour les vidéos, enregistrements sonores et textes synchronisés, avec
prise en charge des formats WebM, Ogg Theora, Vorbis et srt
Michael Dale, Jan Gerber, Derk-Jan Hartman, Brion Vibber, Tim Starling et autres
 
Prévention du pollupostage
ExtensionVersionLicenceDescriptionAuteurs
SpamBlacklist(092e488) 1 mai 2020 à 08:01GPL-2.0-or-laterOutil
anti-pollution basé sur des expressions rationnelles permettant de
mettre en liste noire des URL dans les pages et des adresses de courriel
pour les utilisateurs enregistrés
Tim Starling, John Du Hart et Daniel Kinzler
TitleBlacklist1.5.0 (84c647d) 24 avril 2020 à 06:23GPL-2.0-or-laterPermet aux administrateurs d’interdire la création de pages et de comptes utilisateur en fonction d’une liste noire et d’une liste blancheVictor Vasiliev et Fran Rogers
 
Wikibase
ExtensionVersionLicenceDescriptionAuteurs
WikibaseClient(83f882f) 28 mai 2021 à 15:32GPL-2.0-or-laterClient pour l’extension WikibaseThe Wikidata team et autres
WikibaseRepository(83f882f) 28 mai 2021 à 15:32GPL-2.0-or-laterRéférentiel de données structuréesThe Wikidata team et autres
WikibaseView(83f882f) 28 mai 2021 à 15:32GPL-2.0-or-laterView component for the Wikibase RepositoryThe Wikidata team et autres
 
Divers
ExtensionVersionLicenceDescriptionAuteurs
CLDR4.10.0 (fec3e29) 11 juillet 2020 à 14:05GPL-2.0-or-laterExtension qui fournit les noms traduits des langues, sur la base des données CLDRNiklas Laxström, Siebrand Mazeland, Ryan Kaldari et Sam Reed
Clean Changes2020-04-20 (5ea1846) 1 janvier 2021 à 02:30GPL-2.0-or-laterAffichage plus compact de la liste des modifications récentesNiklas Laxström
Gadgets(03b8b5d) 6 juillet 2020 à 07:51GPL-2.0-or-laterPermet aux utilisateurs de choisir des gadgets CSS et Javascripts personnalisés dans leurs préférencesDaniel Kinzler et Max Semenik
LocalisationUpdate1.4.0 (49cb280) 16 octobre 2020 à 15:25GPL-2.0-or-laterMaintenir la traduction des messages à jour autant que possibleTom Maaswinkel, Niklas Laxström et Roan Kattouw
Matomo4.0.1GPL-2.0-or-laterAdding Matomo Tracking CodeIsb1009, DaSch, Seb35 et Youri van den Bogert
OAuthAuthentication0.1.0 (ac62a11) 3 juin 2021 à 14:30LicenceAutorise les wikis à déléguer leurs authentifications à un autre wikiChris Steipp
QueryViz0.1.0 (3bac94a) 30 avril 2021 à 15:40GPL-2.0+Fetch and display sparql queries result inside a wiki page.Antoine Lamielle
RecordWizard0.1.0 (dd32a78) 6 août 2022 à 10:34GPL-2.0+Un outil simple d’utilisation et entièrement automatisé pour enregistrer des fichiers audio de prononciation.Antoine Lamielle
Thanks1.2.0 (50e0715) 3 janvier 2021 à 05:31MITAjoute des liens pour remercier les utilisateurs pour des modifications, des commentaires, etc.Ryan Kaldari, Benjamin Chen et Wctaiwan
UniversalLanguageSelector2020-04-20 (a3c19a9) 3 janvier 2021 à 08:28GPL-2.0-or-later OR MITDonne à l’utilisateur plusieurs manières de sélectionner une langue et d’ajuster ses paramètres de langueAlolita
Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris, Kartik Mistry,
Niharika Kohli, Niklas Laxström, Pau Giner, Santhosh Thottingal,
Siebrand Mazeland et autres
Upload2Commons0.1.0 (9046e32) 23 février 2019 à 03:15GPL-2.0+Téléverser des fichiers locaux vers un wiki distant en utilisant OAuth.Antoine Lamielle

11.4 Bibliothèques installées

BibliothèqueVersionLicenceDescriptionAuteurs
composer/installers1.10.0MITA multi-framework Composer library installerKyle Robinson Young
composer/semver1.7.2MITSemver library that offers utilities, version constraint parsing and validation.Nils Adermann, Jordi Boggiano et Rob Bast
cssjanus/cssjanus1.3.0Apache-2.0Convert CSS stylesheets between left-to-right and right-to-left.Trevor Parscal, Roan Kattouw et Timo Tijhof
data-values/common0.4.3GPL-2.0+Contains common implementations of the interfaces defined by DataValuesInterfacesJeroen De Dauw
data-values/data-values2.3.0GPL-2.0-or-laterDefines the DataValue interface and some trivial implementationsJeroen De Dauw
data-values/geo4.2.2GPL-2.0-or-laterGeographical value objects, parsers and formattersJeroen De Dauw et The Wikidata team
data-values/interfaces0.2.5GPL-2.0+Defines interfaces for ValueParsers, ValueFormatters and ValueValidatorsJeroen De Dauw
data-values/number0.10.2GPL-2.0-or-laterNumerical value objects, parsers and formattersDaniel Kinzler et Thiemo Kreuz
data-values/serialization1.2.3GPL-2.0-or-laterSerializers and deserializers for DataValue implementationsJeroen De Dauw
data-values/time1.0.3GPL-2.0-or-laterTime value objects, parsers and formattersThe Wikidata team
diff/diff3.2.0BSD-3-ClauseSmall
standalone library for representing differences between data
structures, computing such differences, and applying them as patches
Jeroen De Dauw
guzzlehttp/guzzle6.5.5MITGuzzle is a PHP HTTP client libraryMichael Dowling
guzzlehttp/promises1.4.1MITGuzzle promises libraryMichael Dowling
guzzlehttp/psr71.8.1MITPSR-7 message implementation that also provides common utility methodsMichael Dowling et Tobias Schultze
james-heinrich/getid31.9.20GPL-1.0-or-later, LGPL-3.0-only et MPL-2.0PHP script that extracts useful information from popular multimedia file formats 
liuggio/statsd-php-client1.0.18MITStatsd (Object Oriented) client library for PHPGiulio De Donato
mediawiki/oauthclient1.1.0GPL-3.0-or-laterPHP OAuth client for use with Wikipedia and other MediaWiki-based wikis running the OAuth extensionAndy Smith, Chris Steipp et Bryan Davis
monolog/monolog2.2.0MITSends your logs to files, sockets, inboxes, databases and various web servicesJordi Boggiano
onoi/message-reporter1.4.2GPL-2.0-or-laterAn interface to report and relay arbitrary messages to registered handlersJeroen De Dauw et James Hong Kong
oojs/oojs-ui0.39.3MITProvides library of common widgets, layouts, and windows.Bartosz
Dziewoński, Ed Sanders, James D. Forrester, Kirsten Menger-Anderson,
Kunal Mehta, Prateek Saxena, Roan Kattouw, Rob Moen, Timo Tijhof et
Trevor Parscal
pear/console_getopt1.4.3BSD-2-ClauseMore info available on: http://pear.php.net/package/Console_GetoptAndrei Zmievski, Stig Bakken et Greg Beaver
pear/mail1.4.1BSD-2-ClauseClass that provides multiple interfaces for sending emails.Chuck Hagenbuch, Richard Heyes et Aleksander Machniak
pear/mail_mime1.10.8BSD-3-clauseMail_Mime provides classes to create MIME messagesCipriano Groenendal et Aleksander Machniak
pear/net_smtp1.9.1BSD-2-ClauseAn implementation of the SMTP protocolJon Parise et Chuck Hagenbuch
pear/net_socket1.2.2PHP LicenseMore info available on: http://pear.php.net/package/Net_SocketChuck Hagenbuch, Aleksander Machniak et Stig Bakken
pear/pear-core-minimal1.10.10BSD-3-ClauseMinimal set of PEAR core files to be used as composer dependencyChristian Weiske
pear/pear_exception1.0.2BSD-2-ClauseThe PEAR Exception base class.Helgi Thormar et Greg Beaver
pleonasm/bloom-filter1.0.2BSD-2-ClauseA pure PHP implementation of a Bloom FilterMatthew Nagi
psr/container1.0.0MITCommon Container Interface (PHP FIG PSR-11)PHP-FIG
psr/http-message1.0.1MITCommon interface for HTTP messagesPHP-FIG
psr/log1.1.3MITCommon interface for logging librariesPHP-FIG
psr/simple-cache1.0.1MITCommon interfaces for simple cachingPHP-FIG
ralouphie/getallheaders3.0.3MITA polyfill for getallheaders.Ralph Khattar
serialization/serialization4.0.0GPL-2.0+Library defining a Serializer and a Deserializer interface and basic utilitiesJeroen De Dauw
symfony/polyfill-intl-idn1.22.1MITSymfony polyfill for intl’s idn_to_ascii and idn_to_utf8 functionsLaurent Bassin, Trevor Rowbotham et Symfony Community
symfony/polyfill-intl-normalizer1.22.1MITSymfony polyfill for intl’s Normalizer class and related functionsNicolas Grekas et Symfony Community
symfony/polyfill-php721.22.1MITSymfony polyfill backporting some PHP 7.2+ features to lower PHP versionsNicolas Grekas et Symfony Community
wikibase/data-model9.5.1GPL-2.0-or-laterPHP implementation of the Wikibase DataModelJeroen De Dauw, Thiemo Kreuz et The Wikidata team
wikibase/data-model-serialization2.9.1GPL-2.0-or-laterSerializers and deserializers for the Wikibase DataModelThomas PT et Jeroen De Dauw
wikibase/data-model-services5.2.0GPL-2.0-or-laterServices around the Wikibase DataModelJeroen De Dauw et The Wikidata team
wikibase/internal-serialization2.10.0GPL-2.0-or-laterSerializers and deserializers for the data access layer of Wikibase RepositoryJeroen De Dauw
wikimedia/assert0.5.0MITProvides runtime assertionsDaniel Kinzler et Thiemo Kreuz
wikimedia/at-ease2.0.0GPL-2.0-or-laterSafe replacement to @ for suppressing warnings.Tim Starling et MediaWiki developers
wikimedia/base-convert2.0.1GPL-2.0-or-laterConvert an arbitrarily-long string from one numeric base to another, optionally zero-padding to a minimum column width.Brion Vibber et Tyler Romeo
wikimedia/cdb1.4.1GPL-2.0+Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent.Daniel Kinzler, Tim Starling, Chad Horohoe et Ori Livneh
wikimedia/cldr-plural-rule-parser1.0.0GPL-2.0+Evaluates plural rules specified in the CLDR project notation.Tim Starling et Niklas Laxström
wikimedia/common-passwords0.2.0MITList of the 100,000 most commonly used passwordsSam Reed
wikimedia/composer-merge-plugin2.0.1MITComposer plugin to merge multiple composer.json filesBryan Davis
wikimedia/html-formatter1.0.2GPL-2.0-or-laterPerforms transformations of HTML by wrapping around libxml2 and working around its countless bugs.MediaWiki contributors
wikimedia/ip-set2.1.0GPL-2.0-or-laterEfficiently match IP addresses against a set of CIDR specifications.Brandon Black
wikimedia/ip-utils1.0.0GPL-2.0-or-laterFunctions and constants to play with IP addresses and rangesMediaWiki developers
wikimedia/less.php3.1.0Apache-2.0PHP port of the Javascript version of LESS http://lesscss.org (Originally maintained by Josh Schmidt)Josh Schmidt, Matt Agar et Martin Jantošovič
wikimedia/object-factory2.1.0GPL-2.0-or-laterConstruct objects from configuration instructionsBryan Davis
wikimedia/parsoid0.12.1GPL-2.0-or-laterParsoid, a bidirectional parser between wikitext and HTML5Wikimedia Parsing Team and the broader MediaWiki community
wikimedia/php-session-serializer1.0.7GPL-2.0-or-laterProvides methods like PHP’s session_encode and session_decode that don’t mess with $_SESSIONBrad Jorsch
wikimedia/purtle1.0.7GPL-2.0-or-laterFast streaming RDF serializerDaniel Kinzler, Stanislav Malyshev, C. Scott Ananian et Thiemo Kreuz
wikimedia/relpath2.1.1MITCompute a relative filepath between two paths.Ori Livneh
wikimedia/remex-html2.2.0MITFast HTML 5 parserTim Starling
wikimedia/running-stat1.2.1GPL-2.0+PHP implementations of online statistical algorithmsOri Livneh
wikimedia/scoped-callback3.0.0GPL-2.0-or-laterClass for asserting that a callback happens when a dummy object leaves scopeAaron Schulz
wikimedia/services2.0.1GPL-2.0-or-laterGeneric service to manage named services using lazy instantiation based on instantiator callback functionsDaniel Kinzler
wikimedia/timestamp3.0.0GPL-2.0-or-laterCreation, parsing, and conversion of timestampsTyler Romeo
wikimedia/utfnormal2.0.0GPL-2.0-or-laterContains
Unicode normalization routines, including both pure PHP implementations
and automatic use of the ‘intl’ PHP extension when present
Brion Vibber
wikimedia/wait-condition-loop1.0.1GPL-2.0+Wait loop that reaches a condition or times outAaron Schulz
wikimedia/wikipeg2.0.5MITParser generator for JavaScript and PHP 
wikimedia/wrappedstring3.2.0MITAutomatically compact sequentially-outputted strings that share a common prefix / suffix pair.Timo Tijhof
wikimedia/xmp-reader0.7.0GPL-2.0-or-laterReader for XMP data containing properties relevant to imagesBrian Wolff
wikimedia/zest-css1.1.5MITFast, lightweight, extensible CSS selector engine for PHPChristopher Jeffrey et C. Scott Ananian
zordius/lightncandy1.2.5MITAn extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ).Zordius Chen
Top