Hack de code van MediaWiki niet
Dit is een betoog. Het geeft de meningen en ideeën aan van enkele mediawiki.org gebruikers, maar dat zegt niets over het draagvlak. Voel je vrij om een mening toe te voegen, of gebruikt de overleg pagina's om wijzigingen voor te stellen. |
Deze pagina in een notedop: Hoewel alle ontwikkelaars worden aangemoedigd om verbeteringen aan te brengen in de kern van MediaWiki in de code repository, zorgt het wijzigen van individuele wiki installatiebestanden van MediaWiki vaak voor meer problemen dan oplossingen. Gebruik van extensies of het aanbrengen van verbeteringen van de code via de code repository hebben de voorkeur en vormen een stabiele oplossing. |
Het hacken van de MediaWiki (het wijzigen van de broncode buiten de repository om) is meer een oplossing die voorgesteld wordt op andere MediaWiki ondersteuningsforums, het is geen mooie oplossing. In het algemeen zorgt het voor meer problemen dat er vooraf waren,het upgraden in de toekomst wordt een stuk moeilijker.
In dit document gebruiken we "kern (core)" voor alle bestanden die deel uitmaken van de originele MediaWiki installatie. De uitzonderingen zijn dan: LocalSettings.php, docker-compose.override.yml, alles in uw mappen "extensions" en "skins" en alle mappen die uzelf heeft toegevoegd.
Waarom je geen broncode moet aanpassen
Ook al is het mogelijk en gemakkelijk om de broncode aan te passen zodat de MediaWiki werkt zoals u dat wil, weersta de verleiding.
- U maakt het gecompliceerd, moeilijk of misschien wel onmogelijk om updates van de site te gebruiken voor bijvoorbeeld het verbeteren van de veiligheid en de code.
- Het onderhoud van de site wordt dus lastiger.
- u zou de site onbedoeld kunnen openzetten voor aanvallen.
- Ook willen andere mensen uit de gemeenschap vermoedelijk minder snel helpen als u een eigen versie heeft gemaakt, zij weten dan niet welke aanpassingen u gedaan heeft.
MediaWiki is ontwerper om modulair te zijn, dat zou moeten betekenen dat er geen reden is om de core van het te wijzigen. Als er een functie is die u wilt hebben en het kan niet worden bereikt anders dan door de core te wijzigen, overweeg dan om een extensie te maken of door uw hack als een patch te zien. Maak een bug rapport aan en vertel de gemeenschap van de functie en wat u ermee wil bereiken. Mogelijk wordt het dan getest en wordt het zelfs wel een onderdeel van de MediaWiki core.
Opgetreden problemen bij wiki's die de broncode hebben aangepast
- MediaWiki upgrade tijd gaat van 30 minuten naar 6 uur of zelfs 6 weken als uw
diff
aangeeft dat er 13.650 regels zijn gewijzigd. - Toename van spam en andere aanvallen door de veiligheidslekken.
- Ontbrekende nieuwe functies door problemen met de hacks in de broncode.
- Het niet kunnen raadplegen van de documentatie op MediaWiki.org, die zijn allemaal gemaakt met de aanname dat iedereen een officiële versie gebruikt zonder eigen aanpassingen (tenzij u zelf documentatie maakt over hoe u eigen hack binnen MediaWiki moet worden gebruikt).
- Herhaling van het originele probleem, als er bug gemeld wordt dan is dat een betrouwbare manier om een probleem aan te pakken, uw probleem of de fout wordt dan door een groep ontwikkelaars opgepakt en die vinden mogelijk beter dingen die aangepast moeten worden omdat ze er meer in thuis zijn en de oplossing is er dan voor iedereen en niet afhankelijk van lokale aanpassingen die verdwijnen bij een upgrade.
- Als u ondersteuning van de gemeenschap nodig heeft dan is dat lastiger als een eigen versie heeft, die aanpassing kennen zij niet. Mogelijk zijn zij dan minder gretig om u te helpen.
Uitzonderingen
Zijn er uitzonderingen op deze regel?
Nee.
Oke, maar die zijn zeldzaam. Dat is in het algemeen voor specifieke wiki's of implementaties door mensen die erg thuis zijn in de code van MediaWiki, ontwikkeling praktijken en beveiligingsmodel. Deze documenteren hun wijzigingen erg goed en hebben een prima revisie controle. Als u iets moet vragen voor een dergelijke wijziging, dan moet u het maar niet doen.
Extensies
Het meeste op deze pagina is ook van toepassing op belangrijke extensies. Het is geen goed idee om semantische MediaWiki extensies te bewerken, of een extensie die op Wikipedia of een andere WikiMedia sites wordt gebruikt.
Een mogelijke uitzondering kan zijn als die extensie voornamelijk wordt geïnstalleerd door de code te kopiëren van deze wiki (i.p.v. het ophalen uit de software repository). Dit betekent dat het niet echt wordt onderhouden.
Wat dan te doen
Beter dan het wijzigen van de MediaWiki kern, zijn in deze volgorde deze opties:
- MediaWiki is een krachtige applicatie, u kunt veel doen met de MediaWiki's interface berichten zoals de
MediaWiki:Sidebar
, bekijk ook de andere pagina's op deze wiki voor bijvoorbeeld JavaScript en CSS aanvullingen en wijzigingen. - Maak een extensie die doet wat uw hack zou doen, of gebruik eenvoudig een van de bestaande hooks
- Maak een bug rapport
- Meld uw wijziging aan in de code repository zodat anderen ook uw verbetering kunnen gebruiken
Zie ook
- {{Extension by patch warning }} — sjabloon om de extensie toe te voegen aan de lijst met extensies waarvoor het nodig is dat de MediaWiki core wordt gewijzigd.