Vikidia:Tech/Call for proposals/March 2023

Aller à la navigation Aller à la recherche

Current call for proposals (deadline for application: 20th of march)[modifier | modifier le wikicode]

Vikidia is an open-source wiki dedicated to providing an free encyclopedia for children. Based in France, Vikidia operates in several languages, including French, Italian, Spanish, English, Portuguese, Euskara, Հայերեն, German, Catalan, Sicilianu, Русский, Ελληνικά, and Occitan. With a total of over 10 million page views per month, Vikidia is an important resource for young learners around the world. The website is based on a LAMP Mediawiki stack, but the current version of Mediawiki is outdated and requires an upgrade. It is backed by a French association that hosts the servers, and it is therefore seeking proposals for a software development service to update its Mediawiki to version 1.39.

Technical context[modifier | modifier le wikicode]

  • The Vikidia Association runs its open-source wiki for children on a LAMP Mediawiki stack hosted on a single server, with docker-compose and several containers. The server is replicated with MySQL master/slave and file replication on another server for backup purposes only. Volunteers have been handling the upgrades to Mediawiki, but due to the number of extensions and the size of the wiki farm, upgrading to the latest version has become too complex and risky to handle.
  • All the relevant code, Dockerfiles, configuration and scripts are available on the git repository. The aim of this call for proposal is to provide a branch of this repository working for the upgrade of the wiki on a test server. The successful vendor must demonstrate that the updated version of the site is working properly on the test server. It should be noted that the deployment in production is not included in this call for proposals and will be done separately.

Prior Registration of Vendor[modifier | modifier le wikicode]

   In order to ensure the security of our code and data, vendors who wish to submit a proposal for this software development project must be registered and approved by the Vikidia Association. To register, the vendor must:

   Only registered vendors will be given access to the test server and code repository needed to accurately prepare their proposal. Prior registration of vendor is required for them to be considered for this call for proposal.

   Vendors must send registration to call-for-proposal@vikidia.org, along with their accounts on Framagit (emails is fine, even if not fully signuped) no later than March 15, 2023 at 12:00

Evaluation criteria[modifier | modifier le wikicode]

  • The evaluation criteria for the proposal will be based on the following factors:
  • Demonstrated experience and expertise in relevant areas, including Mediawiki, Docker, and other relevant technologies.
  • Competitive pricing for the proposed work.
  • The ability to complete the project within the specified timeline.
  • Each proposal will be evaluated based on the above criteria, and the successful candidate will be selected based on their ability to meet these requirements.

Objective[modifier | modifier le wikicode]

  • The primary objective of this call for proposals is to upgrade Vikidia's existing Mediawiki software from version 1.31 to the most recent LTS version, 1.39.
  • While it is optional, the vendor may also provide a delivery of an intermediate version, 1.35, to reduce the risks involved in upgrading directly from 1.31 to 1.39.
  • In addition, all associated packages such as PHP, MySQL, Apache, Nginx, Elastic, Varnish, Memcache, and others must also be updated to their most recent LTS versions compatible with the upgraded Mediawiki version.

Points of vigilance and success criteria[modifier | modifier le wikicode]

  • To ensure the upgrade does not result in any regressions, the following points should be kept in mind:
  • Server logs should not display any unexplained errors or warnings to the client. Similarly, browser logs should not display any errors or warnings on Vikidia pages.
  • The following functionalities must continue to work post-upgrade (non-exhaustive list):
  • Audio and video player
  • Math display (Mathoid)
  • Visual Editor
  • Mobile web access
  • Wiki2Map extension on it.vikidia.org
  • Skins: Vector/Monobook/Timeless
  • Notifications on Discord via DiscordNotifications extension
  • PhpMyAdmin
  • Email sending via PostFix service
  • File upload (images and videos)
  • Master-slave synchronization of MySQL, as well as synchronization of download files between the two servers.
  • Availability of CirrusSearch dumps on dumps.vikidia.org
  • The CirrusSearch extension must function properly, both through live indexing, auto-completion, and effective searching in the interface.
  • The robots.txt files should remain correct for each language.
  • The www.vikidia.org space (should not be impacted)
  • Galette galette.vikidia.org (should not be impacted)
  • Installation and backup scripts
  • 5 cronjobs scripts in /mediawiki/mediawiki-cron. They run the special pages archive for French version, update the number of articles for all languages, backup the server, dump the CirrusSearch index, and update the StopForumSpam's deny list.
  • The delivery should integrate any minor developments that are made to the "master" branch up until the delivery date.
  • The proposed solution must work with docker-compose on Debian 10, as Vikidia is currently running on Debian 10 (although it is possible to use more recent versions in Dockerfiles).

Out of Scope[modifier | modifier le wikicode]

  • The functioning of gadgets (with Extension:Gadgets) is not guaranteed. If a gadget is no longer functional, the vendor may attempt to find a fix on Wikipedia if available, or disable it to avoid any negative impact. If necessary, a member of Vikidia's team will later upgrade the gadget by taking account the specialities of the use case.
  • Deprecated services UDP2IRC and our Matomo instance should not be considered (the matomo extension yes, but not our old matomo installation).
  • The VikidiaGlobalStats extension is outside the scope of this proposal and is developed by a volunteer for the association.
  • The mission does not include debugging of extensions that may no longer be compatible with the new version of MediaWiki. However, the vendor must test and make any necessary adaptations to the configuration. The vendor must demonstrate how the extension is not compatible with a reference on the extension's website.
  • The mission does not include changing Vikidia pages due to changes in extension syntax, but the required actions must be listed in the deliverables.

Identified challenges[modifier | modifier le wikicode]

  • Upgrading CirrusSearch with Elastic resulted in a failure on version 1.35 despite changes to the elastic version.
  • Visual Editor did not work correctly despite various attempts. In particular, the editor redirected to the global page of Vikidia instead of just the article.
  • Mediawiki Signup returned an error on version 1.35.
  • It will likely be necessary to create new Docker services in the docker-compose.
  • Some of the Vikidia table schema in MySQL do not seem to match Mediawiki current expectations. It may be necessary to make some "ALTER" to make it work on new versions (everything works fine now, though).

Methodology[modifier | modifier le wikicode]

   Vikidia will provide the vendor with one or more test servers for conducting the required tests. The server will contain an anonymized version of the wiki farm and will run on Debian 10. The vendor must submit a progress report on a weekly basis, which should include updates and any difficulties encountered. Additionally, a weekly meeting will be held with the technical point of contact at Vikidia and the vendor's developer. The vendor should share their progress on the git repository, even if it is unstable. In case of difficulties during the project, the vendor is expected to collaborate with the technical point of contact at Vikidia to determine how to work around, ignore, or prioritize the issue compared to other work. Technical support will be provided by Vikidia via the point of contact.

Deliverables:

  • A git branch with a merge request, with clean commits, on the Framagit repository
  • Including updated documentation, if necessary
  • A tested environment on the provided VM, with the upgrade scripts ran
  • The list of tests performed by the vendor on the test environment
  • A list of observed regressions, deactivated gadgets or extensions, or other notable changes
  • A list of modifications required on the wikis (such as disabling gadgets)
  • Procedure for updating the production environment, along with a list of required operations (in the /Documentation folder)
  • Note that updating the production environment is outside the scope of this call for proposals.

Post-deployment support[modifier | modifier le wikicode]

   The vendor is expected to provide support during the deployment of the update to the production environment, as well as to correct any issues that may arise for a period of 60 days after the delivery.

Intellectual Property[modifier | modifier le wikicode]

All code developed for this project will be the exclusive property of Vikidia Association, and must be licensed under a suitable open source license. The vendor agrees not to incorporate any code that is not licensed under an open source license or for which the vendor does not have the necessary rights. The vendor agrees to provide Vikidia with all necessary documentation and information to enable it to register and maintain ownership of the intellectual property. Any prior intellectual property rights, if any, related to the vendor's work shall be clearly identified in writing and communicated to Vikidia Association.

Calendar[modifier | modifier le wikicode]

  • Prior registration of vendors deadline: March 15, 2023
  • Application deadline: March 20, 2023
  • Announcement of vendor selection: March 27, 2023
  • Contract signing with vendor: March 31, 2023
  • Start of the project and weekly meetings: April 1, 2023
  • Delivery of the project: April 30, 2023
  • Acceptance testing on the test server:
  • First acceptance testing by the technical point of contact: May 8, 2023
  • Acceptance testing by Vikidia volunteers: May 15, 2023
  • Deployment in production: May 31, 2023
  • Possible support in case of unidentified issues: 60 days after production deployment

These deadlines can be postponed in case of too few applications.

Payment terms[modifier | modifier le wikicode]

  • 30% deposit upon contract signing
  • 50% upon completion of acceptance testing on the test server
  • 20% 60 days after production deployment and once support has been completed

Late Penalties[modifier | modifier le wikicode]

   In the event of a delay in the delivery of the project by the vendor, Vikidia reserves the right to claim a penalty equivalent to 1% of the total amount of the contract per day of delay. If the delay exceeds 20 working days, Vikidia reserves the right to terminate the contract unilaterally and demand the reimbursement of any amounts already paid as compensation for the damage suffered. The down payment may be retained by Vikidia as compensation in the event of a unilateral termination of the contract due to a delay by the vendor.

Apply at[modifier | modifier le wikicode]

(not available anymore)