JsonMapper: een jaar later…

Danny Techniek

Het is ondertussen alweer ruim een jaar geleden dat ik blogde over “Launching free open-source software. Hoe staat het er nu voor met JsonMapper die uit die betreffende blogpost is ontstaan?

Over JsonMapper

Met behulp van JsonMapper is het mogelijk om JSON-data mappen te naar de PHP classes in jouw code. Het doel hiervan is om niet langer met de generieke \stdClass te werken maar met een concrete class, zodat tools als Intellisense, Code Completion maar ook Static Code Analysis beter hun werk kunnen doen.

JsonMapper wordt op dit moment door 27 (publieke) repositories gebruikt op GitHub. Van die 27 behoren er drie tot de JsonMapper “familie”, dit zijn integratie packages voor Laravel en Symfony frameworks en een specifieke middleware om met Eloquent modellen te werken. Daarnaast wordt de JsonMapper ook gebruik bij een van onze klanten.

Een van de leukste complimenten kwam van (ex-) collega Job. Hij schreef me op Slack:

Verder werkt deze library echt als een trein. Heeft enorm geholpen bij het refactoren

Het lijkt er dus op dat meer mensen hetzelfde probleem hadden als ik. Zoals ik daar eerder over schreef, een idee hoeft niet groots te zijn om open source software te bouwen. JsonMapper begon met iets kleins is begint redelijk te groeien.

Bekendheid van je software

Om ervoor te zorgen dat anderen jouw software kennen en gaan gebruiken is wel gebleken dat je hier een actieve rol in moet nemen. Na veel proberen ben ik tot de volgende opties gekomen:

  • Ga naar meetups: Zeker nu er diverse remote meetups zijn is het relatief makkelijk om aan te haken bij een meetup in een stad waar je anders door de fysieke afstand niet zo snel naar toe gaat. In de gesprekken voor en na de meetup is er altijd ruimte om te praten over van alles en nog wat, dus ook over code. Je kan het prima hebben over jouw software en soms weten de toehoorders je te verbazen met vragen die jouw software weer verder brengen, edge cases waar je nog niet aan gedacht had of alternatieve oplossingen voor het probleem.

  • Bloggen op diverse sites: Denk hierbij aan Medium en Dev.to. Zorg voor een kort en duidelijk verhaal en laat zien hoe jouw software gebruikt kan worden. Sites als Medium en Dev.to zijn misschien niet de beste keuze om informatie te zoeken, maar in dit geval wel je informatie zenden, en de reikwijdte van deze sites is immers wel erg groot. En soms word je nog verrast met een leuk compliment!

  • Reddit: Dit is tot nog toe de optie met het meeste resultaat. Bij elke release (met uitzondering van patch-releases) deel ik de link naar de release notes in het PHP subreddit. In de dagen daarna volgen comments die soms leiden tot een interessante dialoog en mogelijk zelfs tot features of verbeteringen aan de code. Naast deze comments loopt het aantal downloads en GitHub-sterren vaak op in de dagen erna. Momenteel staat de teller al op 87 sterren en het aantal downloads staat nu boven de 73.000.

Contributies van anderen

In de repository van JsonMapper zijn 36 issues en 66 pull request gemaakt in de afgelopen periode. De issues zijn door 7 unieke reporters gemaakt. Bij de pull requests ligt dit aantal op 9 auteurs. Als je mijn bijdrages hier vanaf haalt, blijven er 8 issues door 6 unieke reporters en 9 pull requests door 8 auteurs.

Los van GitHub levert JetBrains ook een bijdrage aan JsonMapper. Ze steunen de Open Source community en mits je voldoet aan hun korte lijst van requirements stellen zij een JetBrains licentie beschikbaar.

Toekomst van JsonMapper

De toekomst van JsonMapper zoals ik deze nu gepland heb is om nieuwe PHP-versies te blijven ondersteunen en bugs op te lossen. Voor PHP 8.1 moet Enum support nog worden toegevoegd en de build pipeline moet worden uitgebreid.

Van de week is er een feature request binnen gekomen om strikter om te gaan met het mappen van de JSON-data naar het PHP object. Dit soort kleine verbeteringen zijn leuk om aan te werken. Ze kosten niet enorm veel tijd omdat ze redelijk geïsoleerd zijn in de codebase. Dat scheelt, want het is soms een uitdaging om tijd te vinden voor open source software (OSS).

Meestal probeer ik eens in de twee weken een paar uurtjes vrij te maken voor mijn bijdrage aan OSS. Soms gebruik ik deze tijd volledig aan JsonMapper, maar er zijn ook periodes waarin ik er weinig tot geen tijd aan spendeer. Ik denk dat ik sinds de start ongeveer 100 uur in JsonMapper heb gestopt.

Algemene ervaring

De algemene ervaring is zeer positief. Ik heb nog geen negatieve feedback gehad, of mensen die eisen dat jij hun edge case voor ze oplost. Echter kijk ik wel met een andere blik naar andere OSS: probeer bij het openen van een issue of PR in de schoenen van de maintainer te staan en zet net even dat extra stapje om ze te helpen. Zo probeer ik duidelijk te zijn in mijn vraag of leg in een paar korte zinnen uit wat de PR toevoegt of probeert op te lossen.

Getallen

Omdat we bij Infi van cijfertjes houden hierbij een lijstje met de statistieken van JsonMapper.

  • Meer dan 73.000 installs

  • 3 aanvullende libraries

  • 24 releases waarvan 3 major versies en 12 minor versies

  • 87 stars op GitHub

  • 36 Issues gerapporteerd door 7 unieke reporters

  • 66 Pull request gemaakt door 9 unieke auteurs

  • 2 jaar op rij een PHPStorm licentie gesponsord door JetBrains

Een afspraak maken bij ons op kantoor of wil je even iemand spreken? Stuur ons een mail of bel met Jolanda.