Google Summer of Code und Chrome-Erweiterungen

Ich komme im zweiten Jahr aus China und bin leidenschaftlich für Webentwicklung. Im ersten Jahr trat ich einem Technikclub an unserer Universität bei. Dieser Kurs war meine Einführung in das Programmieren und Open Source. Im Club lernte ich Gleichgesinnte kennen, die gerne programmieren. Und von ihnen erfuhr ich Anfang 2023 von Google Summer of Code. Dieses von Google organisierte globale Programm bringt Schüler mit Open-Source-Organisationen zusammen und unterstützt sie dabei, den Sommer optimal zu nutzen, indem sie an Open-Source-Aktivitäten teilnehmen.

Ich habe es ausprobiert und meine Bewerbung eingereicht. Zum Glück wurde ich angenommen. Der Sommer, in dem ich Beiträge zum Repository „Chrome Extension Samples“ gespendet habe, war einprägsam und wertvoll. Natürlich habe ich auch viel gelernt: effektive Kommunikation, Programmierkenntnisse und Planungsfähigkeiten.

GSoC 2023 neigt sich dem Ende zu. Nun möchten wir einige meiner Erfahrungen mit GSoC teilen. In diesem Beitrag werde ich kurz den allgemeinen Prozess von GSoC anhand meiner eigenen Teilnahme vorstellen. Ich hoffe, dass ich damit helfen kann.

Meine Beiträge zu GSoC

Ich habe mich für das „Chromium GSoC 2023“-Projekt beworben, bei dem meine Hauptaufgabe darin bestand, vorhandene Beispiele für Chrome-Erweiterungen so zu aktualisieren, dass sie in Manifest V3 funktionieren, einschließlich einiger zugehöriger Skripts und Dokumente.

Ganz am Anfang

Ich erfuhr im Februar 2023 von GSoC, war mir aber noch nicht sicher, ob ich mich bewerben möchte. Ich hatte damals einige Bedenken:

  • Ich bin introvertiert und Englisch ist nicht meine Muttersprache, daher kann die Kommunikation mit den Mentoren schwierig sein.
  • GSoC-Communities kommen aus der ganzen Welt und es kann schwierig sein, mit Zeitzonenunterschieden umzugehen.
  • GSoC ist ein so renommiertes Programm, dass es wettbewerbsfähig sein kann, sodass meine Chancen gering sind.

Ich kann jedoch behaupten, dass keines dieser Probleme ein Problem war.

Bevor ich meine Geschichte erzähle, möchte ich zuerst über etwas sprechen, das mir Anfang 2022 passiert ist. Dieser Vorfall war auch eine Gelegenheit für mich, bei GSoC mitzuwirken. Ich wollte eine auf Manifest V2 basierende Browsererweiterung zu Manifest V3 migrieren. Für die Migration musste ich die Dokumentation lesen und jede API-Änderung verstehen. Außerdem musste ich herausfinden, ob es relevante Beispiele als Referenz gibt. Es ist mir ziemlich schwierig, die neue API zu verstehen und den Code zu übertragen.

Deshalb habe ich mich sehr gefreut, als ich die GSoC-Projektliste durchstöberte und mir die Idee im Zusammenhang mit MV3 erkannte. Ich wollte dazu beitragen, die Beispiele der Manifest V3-Erweiterung zu verbessern und zukünftige Entwickler zu optimieren.

Im März habe ich Oliver, einem der zuständigen Mentoren, eine E-Mail mit einer kurzen E-Mail zu meiner Absicht gesendet:

Antrag für die Teilnahme am GSoC-Projekt

Hallo,

Ich studiere Informatik aus China. Ich habe von dem Projekt „Chrome Extensions Samples“ bei GSoC erfahren und daran interessiert, die Manifest V3-Beispiele zu verbessern. Ich habe noch nicht viel Erfahrung mit der Arbeit an API-Beispielen, aber ich habe Erfahrung in der Webentwicklung und der Entwicklung von MV3-Erweiterungen (https://github.com/daidr/paimon-websearcht). Dadurch wurde mir klar, wie wichtig MV3 API-Beispiele sind. Deshalb m�chte ich sowohl lernen als auch etwas dazu beitragen. Kann ich mich trotzdem f�r dieses Projekt bewerben?

Vielen Dank.

Kurz danach erhielt ich eine Antwort von Oliver und Ali (Olivers Vorgesetzten). Sie haben meine Fragen beantwortet und detaillierte Informationen zu den spezifischen Regeln und zum Zeitplan von GSoC gegeben. Au�erdem haben sie mir viele wertvolle Referenzmaterialien zur Verf�gung gestellt.

Es war wie ein Schuss in den Arm, der meine Entschlossenheit verst�rkte, weiterzukommen. Der erste Schritt ist von entscheidender Bedeutung, wenn Sie an bevorstehenden Open-Source-Veranstaltungen interessiert sind, sei es GSoC 2024 oder etwas anderes. Z�gern Sie nicht und versuchen Sie es mutig.

Vor der Bewerbung habe ich den Code des Projekts �berpr�ft und die Dokumentation �berfliegen. GSoC bietet den Teilnehmern zwar fast einen Monat Zeit, sich mit der Community vertraut zu machen, aber das Vorwissen hat den Druck abgeschw�cht und mir erm�glicht, einen zielgerichteteren Vorschlag zu formulieren.

Ich habe versucht, die vom Projekt bereitgestellten Einsteigerfehler zu beheben. Diese Probleme waren relativ einfach und halfen mir, das Projekt schnell zu verstehen. Ich bin dankbar f�r meinen Mentor Oliver (auch wenn er damals nicht mein Mentor war). Er hat schnell auf meine E-Mails geantwortet, wenn ich R�ckfragen brauchte und meine Probleme geduldig gel�st habe. Wenn beim Schreiben eines Angebots Probleme auftreten, k�nnen Sie es auch Ihrer beratenden Person senden, um zu erfahren, ob Bereiche verbesserungsw�rdig sind.

Aufnahme in das Programm

Das Schreiben eines Angebots ist der letzte Schritt, den Sie vor dem Anwenden ausf�hren m�ssen. Der Vorschlag sollte zus�tzlich zum Bewerbungsformular Ideen, Ziele und einen Zeitplan enthalten. Je nach Projekt, an dem Sie arbeiten m�chten, erhalten Sie m�glicherweise eine zus�tzliche Vorlage f�r das Angebot. Viele vordefinierte Angebotsbeispiele sind online zu Referenzzwecken verf�gbar.

Nachdem ich den Entwurf fertiggestellt hatte, schickte ich ihn an meinen Mentor, um Feedback zu erhalten. Nachdem die Bewerbung eingereicht wurde, dauert es lange. Und Anfang Mai erhielt ich eine Benachrichtigung, dass ich akzeptiert wurde.

Codework

W�hrend der anf�nglichen Bindungsphase habe ich mich zun�chst mit den verbleibenden Programmfehlern f�r den Einstieg befasst und gepr�ft, ob es neue F�higkeiten gab, die ich erlernen musste. Den Rest der Zeit verbringe ich mit dem Lesen von Dokumentationen.

Nach einem Gespr�ch mit meinem Mentor haben wir einige Ziele angepasst, um die Zeit, die Aufgaben zugewiesen wird, angemessener zu gestalten. Au�erdem haben wir uns mit einer Idee f�r die Erstellung einer neuen Seite developer.chrome.com besch�ftigt, auf der alle API-Beispiele aufgef�hrt und einfache Filter zur Verf�gung gestellt werden, damit Entwickler die ben�tigten Beispiele schnell finden. Es war eine ziemlich komplexe Aufgabe f�r mich und mein Mentor und ich brauchten einige Zeit, um das Projekt zu definieren und ein Produktanforderungsdokument (PRD) zu verfassen.

F�r diese umfangreichere Aufgabe haben wir beschlossen, dass wir ein automatisiertes Skript im Beispiel-Repository ben�tigen, um das Repository zu durchsuchen und eine JSON-Datei mit einer Liste von Erweiterungsbeispielen und den verwendeten APIs zu generieren. Diese Datei wird jetzt im developer.chrome.com-Dokumentations-Repository zum Erstellen einer Seite verwendet.

Ich habe zuerst �berlegt, mit Babel den abstrakten Syntaxbaum des Beispielcodes zu analysieren und die verwendeten APIs zu identifizieren. Nachdem ich diese Idee mit meinem Mentor geteilt hatte, stellte ich fest, dass er zuvor an einer �hnlichen L�sung gearbeitet hatte, was die Durchf�hrbarkeit dieses Ansatzes best�tigt hatte. Nachdem ich den Code fertiggestellt hatte, machten mein Mentor und andere Mitglieder seines Teams wertvolle Vorschl�ge, einschlie�lich der Ber�cksichtigung der Codesegmentierung, der Standardisierung des Codestils und der ordnungsgem��en Dokumentation.

Nach mehreren gro�en und kleinen �berpr�fungen wurde der Code erfolgreich zusammengef�hrt. Sie finden den gesamten Thread auf GitHub oder Sie sehen sich die Live-Seite an.

Zusammenfassung

Wenn Sie mich fragen, was GSoC mir geholfen hat: Zun�chst ist nat�rlich das Wissen �ber Browsererweiterungs-APIs. Durch das Lesen der Dokumentation und das Schreiben neuer Beispiele habe ich ein detailliertes Verst�ndnis f�r verschiedene Browsererweiterungs-APIs gewonnen.

Au�erdem habe ich mir viele F�higkeiten angeeignet, mit denen ich vor der Aufnahme in GSoC nur wenig vertraut war, z. B. das Befolgen eines umfassenden Prozesses zur Code�berpr�fung und das Erstellen eines PRD. Au�erdem habe ich angefangen, mit GitHub-Aktionen Workflows zu automatisieren, und habe gelernt, wie ich mit Babel alle Erweiterungsbeispiele durchsehen und die verwendeten APIs verfolgen kann. Au�erdem hatte ich meine erste Erfahrung mit der Nunjucks-Vorlagen-Engine. Diese F�higkeiten sind f�r das Programmieren unerl�sslich und ich freue mich, dass ich sie gelernt habe. Die Teilnahme an Open-Source-Communitys macht mir Freude.

Dieser Sommer hat mir viele unvergessliche Erinnerungen geschenkt. Programmieren macht mich sehr zufrieden. Ich bin geduldiger Mentoren begegnet, die mich angeleitet und mir interessantes Wissen vermittelt haben, wodurch meine Erfahrung bereichert wurde.

Das Wissen im Bereich der Informatik ist endlos. Als ich mich mit anderen verglich, wurde mir klar, dass mein Verst�ndnis von Open Source nur die Spitze des Eisbergs war. Aber jedes kleine St�ck hilft. Ich glaube, dass GSoC ein guter Ausgangspunkt f�r die Teilnahme an Open Source ist.

Au�erdem hoffe ich, dass meine Erfahrungen Ihnen bei zuk�nftigen Teilnahme an Open-Source-Aktivit�ten als Referenz dienen k�nnen.

Hier sind einige Vorschl�ge von mir f�r alle, die am Google Summer of Code teilnehmen m�chten:

  1. W�hlen Sie eine Idee, die zu Ihnen passt: Meiner Meinung nach sollte bei der Suche nach Ideen das Interesse im Vordergrund stehen, gefolgt von F�higkeiten. Mit dieser Strategie kannst du w�hrend des gesamten Beitragsprozesses deine Begeisterung aufrechterhalten.
  2. Qualit�t statt Quantit�t: Sie k�nnen viele Angebote einreichen, um die Chancen zu erhöhen, für GSoC angenommen zu werden. Ich glaube aber, dass Qualität wahrscheinlich wichtiger ist, weil die menschliche Energie begrenzt ist. Sich auf zwei oder drei Ideen zu konzentrieren, kann am Ende hilfreicher sein.
  3. Haben Sie keine Angst vor neuen Dingen: Zögern Sie nicht, Technologien auszuprobieren, mit denen Sie in einem Projekt noch nicht gearbeitet haben. Du hast fast einen Monat Zeit, um dich mit unbekannten Technologien in der Community vertraut zu machen, und den ganzen Sommer, um sie zu implementieren. Leg einfach los!
  4. Machen Sie sich im Voraus mit dem Projekt vertraut: Lesen Sie sich beispielsweise die Entwicklungsdokumentation durch, sehen Sie sich den Verlauf und die Probleme früherer Commits an und überfliegen Sie frühere Pull-Anfragen. Wenn Sie im Voraus ein Gesamtverständnis des Projekts erhalten, können Sie einen umfassenderen Vorschlag verfassen.
  5. Kommunikation aufrechterhalten: Kommunizieren Sie regelmäßig mit der beratenden Person und zögern Sie nicht, Fragen zu stellen, wenn Probleme angegangen werden – sowohl vor der Bewerbung als auch nach der Annahme. Die meisten beratenden Personen sind bereit, Ihnen bei der Lösung von Problemen zu helfen. Auf diese Weise können sie auch Ihren Fortschritt verfolgen.

Vielen Dank fürs Lesen.