Inhaltsverzeichnis
Beschreiben Sie den Fehler
Schritte zur Reproduktion des Verhaltens
Erwartetes vs. tatsächliches Verhalten
Protokolle
Änderungen
Vorher
Nachher
Das Problem
Lösungsvorschlag
Heim Web-Frontend js-Tutorial Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen

Dec 17, 2024 pm 04:53 PM

Doing More Open Source Stuff: Making Up For Lost Time

Ich war in letzter Zeit etwas beschäftigt und hatte leider nicht viel Zeit, zu Open Source beizutragen. Ich freute mich darauf, wieder auf die Strecke zu kommen, hatte aber ein paar Probleme. In meinem letzten Beitrag habe ich besprochen, wie ich in Mattermost Mobile eintauchen und die gleiche Funktion implementieren sollte, an der ich zuvor für die Webanwendung gearbeitet habe – das Hinzufügen einer Einstellung zum Umschalten der Darstellung von Emoticons (:D) als Emojis (?) –, aber ich musste Gib diese Idee sehr schnell auf. Es stellt sich heraus, dass WSL (Windows-Subsystem für Linux) für die mobile Entwicklung nicht besonders gut geeignet ist.

„Könnte nicht so schwer sein..“

Die Entwicklung für Mattermost wird offiziell nur für MacOS und Linux unterstützt. Bei der Arbeit an der Webapp war das kein Problem. Während ich an der Web-App arbeitete, konnte ich WSL nutzen und alles funktionierte einwandfrei. Aber als ich versuchte, mit der Arbeit an der mobilen App zu beginnen, stieß ich auf ein Problem nach dem anderen.

Nach den Anweisungen zum Einrichten der Entwicklungsumgebung für Linux musste ich einen Android-Emulator einrichten, aber der Versuch, einen innerhalb der WSL auszuführen, funktionierte nicht – der Emulator wurde nicht erkannt. Ich konnte auch nicht einfach unter Windows entwickeln, da das Vorinstallationsskript ein .sh-Skript ausführte. Also habe ich ein paar Tage damit verbracht, von der WSL aus eine Verbindung zum Android-Emulator unter Windows herzustellen, ohne Erfolg – ​​er erschien einfach nicht in der Liste der Emulatoren in der WSL. Ich habe Stunden damit verbracht, Forenbeiträge und GitHub-Hauptinhalte durchzugehen, aber es schien, als würde es einfach nicht klappen.

Ich habe auch versucht, die USB-Verbindung meines eigenen Geräts an WSL weiterzuleiten, um zu versuchen, auf meinem Gerät zu entwickeln. Angeblich sollte usbipd-win dafür sorgen, dass dies funktioniert, wie in diesem Artikel auf Microsoft Learn erwähnt, und dennoch war jedes Mal, wenn ich erneut versuchte, mein Gerät an WSL weiterzuleiten, die Liste der verbundenen Geräte leer.

Ich habe den Nachrichtenverlauf im offiziellen Mattermost Contributors-Chat durchsucht, aber alles, was ich gefunden habe, waren Beiträge von anderen Leuten, die mit dem gleichen Problem zu kämpfen haben. Also dachte ich mir, das Letzte, was ich versuchen könnte, wäre, einen eigenen Beitrag zu verfassen und um Hilfe zu bitten. Glücklicherweise antwortete jemand darauf und versuchte zu helfen, aber leider gehörte er nicht zum mobilen Team und wies mich an, es auf dem Handy zu versuchen Chat des Teams, wo ich noch keine Antwort erhalten habe.

Leider scheint es für die unmittelbare Zukunft so, als ob ich nicht in der Lage sein werde, an dem Problem zu arbeiten.

Etwas anderes ausprobieren

In der Zwischenzeit habe ich nach weiteren Themen gesucht. Beim Suchen nach Problemen mit der Bezeichnung „Hilfe gesucht“ habe ich dieses Problem für die GitHub-CLI gefunden:

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen `gh run view` sollte Zweige in eckigen Klammern auflisten #10038

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen
BagToad veröffentlicht am

Beschreiben Sie den Fehler

gh run view listet Zweige in Klammern auf, aber ich denke, es sollte sie in eckigen Klammern auflisten, um den Primer-Richtlinien zu entsprechen:

Zweignamen in Klammern und/oder Cyan anzeigen

Schritte zur Reproduktion des Verhaltens

GH-Run-Ansicht

Erwartetes vs. tatsächliches Verhalten

gh run view-Eingabeaufforderungen sollten Zweige in eckigen Klammern anzeigen.

Protokolle

❯ gh run view
? Select a workflow run  [Use arrows to move, type to filter]
> - Verifying attestations offline fails, Discussion Triage (trunk) 4h55m1s ago
  - Decoding, Discussion Triage (patch-1) 4h59m32s ago
  ✓ Decoding, PR Automation (patch-1) 4h59m43s ago
  ✓ Issue Automation, Issue Automation (trunk) 5h20m31s ago
  - `gh repo rename myorg/newname` results in `myorg/myorg-newname`, Discussion Triage (trunk) 10h13m50s ago
  - 401 Error at every turn, Discussion Triage (trunk) 10h15m20s ago
  - 401 Error at every turn, Discussion Triage (trunk) 10h15m20s ago
Nach dem Login kopieren
Auf GitHub ansehen

Es schien eine ziemlich unkomplizierte Veränderung zu sein und ich dachte, es wäre eine schöne Abwechslung von den kolossalen Problemen, die ich mir vorgenommen hatte – etwas, das mich wieder auf ein anständiges Tempo bringt.

Ich war zufrieden mit der Einfachheit der Entwicklungseinrichtung. Ich hatte Go bereits installiert, also musste ich nur noch die Binärdatei kompilieren.

Ich habe die beitragenden Dokumente gelesen, die ebenfalls sehr hilfreich waren und mir dabei geholfen haben, herauszufinden, wo ich den relevanten Code finden kann. Ich habe es ein wenig durchgesehen und die Funktion gefunden, die für die Anzeige von Zweignamen im Befehl „run“ zuständig ist. Ich hatte Go noch nie wirklich geschrieben, aber es fühlte sich sehr an printf() von C an. Ich habe die Änderung vorgenommen und eine PR geöffnet, aber in der Aufregung habe ich vergessen, die Tests zu aktualisieren, woran mich ein Rezensent erinnert hat.

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen Fix: Zweige in eckigen Klammern in der „GH-Run-Ansicht“ auflisten #10043

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen
uday-rana veröffentlicht am

Behebt #10038

Änderungen

pkg/cmd/run/shared: Klammern in selectRun() in eckige Klammern geändert.

Vorher

func selectRun() {
  ...
  fmt.Sprintf("%s %s, %s (%s) %s", ...)
  ...
}
Nach dem Login kopieren
Vollbildmodus aufrufen Vollbildmodus verlassen

Nachher

func selectRun() {
  ...
  fmt.Sprintf("%s %s, %s [%s] %s", ...)
  ...
}
Nach dem Login kopieren
Vollbildmodus aufrufen Vollbildmodus verlassen
Auf GitHub ansehen

Ich habe die Tests durchgesehen, die fehlgeschlagenen Tests identifiziert und sie aktualisiert. Leider wurde ich dann von einem Betreuer darüber informiert, dass sie sich tatsächlich noch im Triage-Prozess für dieses Problem befänden und präventiv die Kennzeichnung „Hilfe gesucht“ angebracht hätten und dass meine PR möglicherweise nicht zusammengeführt werde. Ich war ein wenig enttäuscht, aber ich dachte, ich hätte meinen Teil getan, also war es keine große Sache.

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen Kommentar für #10038

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen
BagToad hat am einen Kommentar abgegeben

? Hey @uday-rana, danke für dein Interesse, das aufzugreifen!

Ich würde gerne warten, bis dieses Problem von unserem Ersthelfer im Rotationsverfahren diese Woche untersucht wird.

Ich war wahrscheinlich zu eifrig, als ich das Label „Hilfe gesucht“ hinzugefügt habe – ich möchte trotzdem, dass unser Ersthelfer dies selektiert, um sicherzustellen, dass wir uns über die Arbeit einigen, bevor wir sie umsetzen ❤ ?

Ich erwarte keine Probleme, aber ich lasse es Sie trotzdem wissen, damit Sie wissen, worauf wir warten, bevor einer von uns die PR überprüft. Wenn unser Ersthelfer zustimmt, nehmen wir gerne eine PR entgegen ?

Entschuldigung für die Verwirrung! In Zukunft werde ich diese Labels nicht mehr vorzeitig hinzufügen – dadurch wurde unser Triage-Prozess unbeabsichtigt übersprungen?

Auf GitHub ansehen

Runde zwei

Als ich auf GitHub nach weiteren Problemen mit der Bezeichnung „Hilfe gesucht“ suchte, an denen ich arbeiten konnte, stieß ich auf ein weiteres Mattermost-Problem, dieses Mal für die Webanwendung. Da ich die Entwicklungsumgebung für die Webanwendung bereits eingerichtet hatte, dachte ich, ich könnte schnell in die Tat umsetzen.

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen Fügen Sie den eingefügten Bilddateinamen einen Zeitstempel hinzu, um sie zu unterscheiden #29524

Mehr Open-Source-Sachen machen: Verlorene Zeit aufholen
Mattermod veröffentlicht am

Das Problem

Wenn Sie ein Bild aus der Zwischenablage in die Nachrichteneingabe einfügen, erhält es den Dateinamen image.png. Wenn mehrere Bilder eingefügt werden, erhalten alle denselben image.png-Dateinamen. Dies kann ein Problem sein, wenn alle Dateien mit demselben Namen heruntergeladen werden und die Gefahr besteht, dass sie überschrieben werden.

Lösungsvorschlag

Generieren Sie automatisch einen Dateinamen, der den Zeitstempel in diesem Format enthält:

image-2024-11-18-6-29-57-PM

Mattermost-Thread: https://hub.mattermost.com/private-core/pl/xryg3tedg3bbxq3xuwnrj9ymyc


Wenn Sie interessiert sind, kommentieren Sie bitte hier und kommen Sie zu unserem Community-Kanal „Mitwirkende“ auf unserem täglichen Build-Server, wo Sie Fragen mit Community-Mitgliedern und dem Mattermost-Kernteam diskutieren können. Für technische Ratschläge oder Fragen treten Sie bitte unserem Community-Kanal „Entwickler“ bei.

Neue Mitwirkende lesen bitte unseren Entwicklerleitfaden.

JIRA: https://mattermost.atlassian.net/browse/MM-62003

Auf GitHub ansehen

Ich beschäftige mich mit diesem Problem, während ich diesen Blogbeitrag schreibe, und habe die Ursache des Problems identifiziert. Wenn Sie ein Bild aus der Zwischenablage in einem Browser oder einer browserähnlichen Umgebung (à la Electron-App) veröffentlichen und das Bild keinen Namen hat, gibt ihm der Browser automatisch den Namen „image.png“. Ich habe dies mit Firefox und Edge getestet und es gilt für beide. Warum ist das ein Problem? Die App verfügt bereits über eine Logik, die unbenannten Dateien Zeitstempel hinzufügt. Da diesen Bildern beim Einfügen aus der Zwischenablage jedoch automatisch Namen zugewiesen werden, werden die Zeitstempel nicht gesetzt.

Die einfachste Lösung wäre, einfach eine Prüfung für den Namen „image.png“ fest zu codieren. Aber ich frage mich, was passiert, wenn das Bild kein PNG ist? Ist das überhaupt in der Zwischenablage möglich? Und was ist, wenn der Benutzer eine Datei mit dem tatsächlichen Namen „image.png“ hochlädt? Das muss ich mit den Entwicklern besprechen.

Auf jeden Fall bin ich fest entschlossen, dieses Problem zu beheben. Wir hoffen, dass alles reibungslos verläuft.

Das obige ist der detaillierte Inhalt vonMehr Open-Source-Sachen machen: Verlorene Zeit aufholen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Apr 10, 2025 am 09:33 AM

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

See all articles