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.