Hyppää sisältöön

Miten WordPressin ydintä kehitetään?

WordPress on monelle tuttu julkaisujärjestelmä, onhan se miljoonien pienten sekä suurten sivustojen käyttämä. Harva kuitenkaan tietää, miten WordPressiä itsessään kehitetään. Otetaan nopea katsaus siihen, miten kehitys tapahtuu!

Timi Wahalahti, 21.08.2024

Vaikka WordPress onkin Suomen käytetyin julkaisujärjestelmä, veikkaan, että kovin moni käyttäjistä eivätkä kaikki sivustoja kehittävätkään tiedä, miten WordPressin ytimen kehitys tapahtuu. Eikä siinä mitään – enhän itsekään tiedä, mitä kaikkia vaiheita kerrostalon rakentamisessa on, vaikka sellaisessa asunkin.

On kuitenkin mielenkiintoista tietää, miten yli 35% kaiken internet-sisällön taustalla pyörivän julkaisujärjestelmän kehitys tapahtuu. Miksi?

Ensinnäkin ihan jo sen takia, kuinka moni organisaatio ja sivusto luottaa WordPressiin. Vaatimukset stabiiliudelle ovat ihan omaa luokkaansa, ja verrattavissa moniin kaupallisiin tuotteisiin kuten Microsoftin Windows-käyttöjärjestelmään tai F-Securen tietoturvatuotteisiin. Käyttäjien tarpeet ovat myös paikoin erilaiset, sillä toiset käyttävät WordPressiä laajojen verkkopalveluiden taustajärjestelmänä, toiset markkinointisivustoilla ja osa henkilökohtaisen blogin alustana.

Myös kehityksen avoin luonne on aika erityistä. Harvan näin laajasti käytetyn ohjelmiston lähdekoodi on kaikkien selailtavissa, saati avoinna muutosehdotuksille. Avoimen lähdekoodin projektissa sen kehittämiseen osallistuu sekä siitä palkkaansa saavat ammattilaiset, että myös vapaa-aikaansa lahjoittavat yksilöt. Kehittämiseen osallistuu henkilöitä kaikilla taitotasoilla ympäri maailman.

WordPressin ytimen kehitys ei lakkaa minään vuorokaudenaikana.

Mistä kaikki sai alkunsa?

Ennen kuin hypätään nykyhetkeen, otetaan pieni kurkistus WordPressin menneisyyteen.

WordPress on itse asiassa pitkälle jalostunut versio vanhasta b2/cafelog -nimisestä blogien pyörittämiseen tarkoitetusta järjestelmästä. Sen kehitys hidastui vuonna 2003, joten Matt Mullenweg ja Mike Little päättivät alkaa kehittämään sen pohjalta uutta ohjelmistoa, johon he saisivat mukaan haluamiaan uusia ominaisuuksia. Näin syntyi WordPress – tässä vaiheessa kuitenkin vielä puhtaasti henkilökohtaisten blogien moderniksi taustajärjestelmäksi.

Vuosien aikana WordPress kasvatti suosiotaan merkittävästi ja sitä kehittävä joukko kasvoi. Kehittäjät koostuivat pääasiassa henkilöistä, jotka halusivat uusia ominaisuuksia itse käyttämäänsä järjestelmään. Orgaanisen kasvun ja kontribuojien omien tarpeiden muovaamana WordPressistä on syntynyt se julkaisujärjestelmä, jonka me tunnemme tänä päivänä.

Ei sukelleta tässä tätä syvemmälle. Asiasta kiinnostuneet voivat lukea tämän loistavan e-kirjan, joka kattaa koko WordPressin kahden vuosikymmenen mittaisen historian.

Miten WordPressiä sitten kehitetään?

Kaikki WordPressin kehitys tapahtuu täysin julkisesti, poislukien tietoturvahaavoittuvuuksiin liittyvä koordinaatio sekä korjaukset, joista tulen kirjoittamaan blogiin seuraavaksi. Aivan jokainen voi siis esittää kehitystoiveita, raportoida bugeja, lähettää koodimuutosesityksiä, testata kehityksessä olevia vielä julkaisemattomia versioita ja halutessaan seurata alustan kehitystä.

Tiketit, keskustelu ja päätöksenteko

Pääosa työstä koordinoidaan Trac-järjestelmässä, jossa jokaiselle toiveelle, bugille ja ehdotetulle muutokselle avataan oma tikettinsä. Tiketin voi avata jokainen, joka on luonut käyttäjätilin wordpress.org sivustolle. Pääosa uusista tiketeistä avataan WordPressillä sivustoja toteuttavien henkilöiden toimesta, esimerkiksi allekirjoittanut on avannut viisi tikettiä liittyen bugeihin, jotka ovat tulleet vastaan asiakkaiden sivustoja rakentaessa.

Tiketeissä käydään luonnollisesti keskustelua aiheeseen liittyen, jaetaan lisätietoja sekä -havaintoja ja muodostetaan yhteisöllisesti lopulliset päätökset siitä, miten tiketin kanssa toimitaan.

Trac-tikettien lisäksi aktiivista keskustelua käydään Slackkanavissa sekä ytimen kehittämiseen keskittyneessä blogissa, jossa jaetaan päivityksiä sekä muodostetaan päätöksiä ytimen suuntaan laajemmin vaikuttavista asioista.

Slackissa ei tehdä päätöksiä sen vahvasti synkronisen luonteen sekä keskusteluhistorian hajanaisuuden vuoksi. Kaikki päätökset pyritään tekemään Tracissa tai blogissa. Näin jokaisella halukkaalla on mahdollisuus osallistua päätöksentekoon ja päätöksistä jää jäljelle myöhemmin löydettävissä oleva keskustelu.

Koodimuutokset

Kuka tahansa voi lähettää koodimuutoksia suoraan Trac-järjestelmässä tai Githubin kautta. Ainoa vaatimus on, että muutosesitys liittyy johonkin tikettiin. Luonnollisesti voit luoda tiketin ja liittää siihen muutosesityksen itse.

Muutosesityksen lähettäminen ei kuitenkaan ole tae siitä, että tiketti tulisi suljetuksi tai haluttu toiminnallisuus otettaisiin osaksi WordPressin ydintä. Pääkehittäjät ja loppukädessä Matt Mullenweg päättävät, mitä uusia ominaisuuksia ja korjauksia halutaan tuoda osaksi ydintä ja missä versiossa. Tyypillisesti jokaisella versiolla on muutama fokusalue, joiden parantamiseen pyritään keskittymään bugikorjausten lisäksi.

Keitä ovat mystiset pääkehittäjät?

Pääkehittäjät ovat joukko pitkäaikaisia ja luotettuja kontribuoijia. Uusia pääkehittäjiä tulee joukkoon verrattain harvoin, ja syystä. Pääkehittäjät ovat ainoita maailmassa, joilla on oikeus ja kyky viedä esitettyjä koodimuutoksia osaksi WordPressin ydintä, joita jaellaan eteenpäin kaikkien käytettäväksi.

Pääkehittäjien joukkoon ei liitytä hakemusmenettelyn kautta, vaan nykyiset pääkehittäjät voivat ehdottaa muille uuden kehittäjän ottamista mukaan. Tästä seuraa keskustelu, jossa lopullinen päätös tehdään. Tällä hetkellä pääkehittäjiä on noin 100, ja joukko kasvaa vuosittain keskimäärin muutamalla hengellä.

Samoin kuin kuka tahansa muu WordPressin kehittämisen parissa työskentelevä, eivät pääkehittäjät saa korvausta WordPressiltä itseltään. Osa työnantajista kuitenkin sponsoroi näiden yksilöiden koko työajan tai osan siitä ytimen kehittämiseen, yhteisön ja toki oman liiketoimintansa hyväksi. Tässä joukossa on toisaalta myös henkilö, joka ansaitsee leipänsä traumakirurgina ja kontribuoi vapaa-ajallaan silkasta intohimosta WordPress-projektia kohtaan.

Testaaminen

Lähetettyjä muutosesityksiä testataan tyypillisesti useamman henkilön toimesta, jopa ennen, kuin pääkehittäjät luovat siihen katseensa. Kun pääkehittäjä on katselmoinut ja testannut muutosesityksen koodin läpi, hän liittää sen mukaan WordPressin ytimen kehitysversioon.

Tuo kehitysversio on kaikkien saatavilla ja käytettävissä, vaikka sitä ei yleensä kannatakaan käyttää tuotannossa olevalla sivustolla mahdollisten epävakauksien takia. Toisaalta, oma henkilökohtainen sivustoni on käyttänyt usean vuoden ajan aina uusinta kehitysversiota täysin ongelmitta. Tämä kuvastaa hyvin sitä koodin tasoa ja laatua, jota pääkehittäjät päästävät ytimeen asti.

Vähemmän uhkarohkeille kokeilunhaluisille yksilöille julkaistaan beta- sekä Release Candidate -versioita ennen lopullisen julkaisun tekemistä. Nämä versiot saa helposti käyttöönsä Beta Tester -lisäosan avulla. Beta-versioissa saattaa vielä ilmetä bugeja ja siihen saatetaan vielä tehdä hieman suurempia muutoksia. Kun uuden version kohdalla siirrytään Release Candidate -vaiheeseen, ydintä pidetään stabiilina ja valmiina julkaisuun. Tuossa vaiheessa julkaisuun ei tehdä enää suuria muutoksia, ainoastaan välttämättömiä bugikorjauksia.

Käännökset

WordPressin ydin on käännetty kymmenille kielille, myös suomeksi. Näistä käännöksistä vastaa täysin vapaaehtoiset kääntäjät, jotka aloittavat tyypillisesti työnsä ensimmäisen beta-version julkaisun jälkeen.

Käännettävien merkkijonojen määrä riippuu paljolti siitä, minkälainen fokusalue julkaisulla on ollut. Esimerkiksi kun uusi, Gutenberginäkin tunnettu lohkoeditori liitettiin ytimeen, kääntäjillä oli aikamoinen työsarka.

Varsinaisen kääntämisen lisäksi kääntäjät vastaavat myös siitä, että käytetty terminologia on selkeää ja yhdenmukaista. Joillekin englanninkielisille termeille voi olla toisinaan hankala löytää sopivia vastinpareja, jolloin kääntäjät keskustelevat sopivimmasta sanavalinnasta.

Uuden version julkaisun jälkeen kääntäjät myös julkaisevat käännetyn julkaisutiedotteen, joka koostaa uusimmat ominaisuudet sekä tehdyt muutokset tiiviiseen pakettiin.

Haku