Bei der Entwicklung von OnionShare mitmachen

Zusammenarbeit

OnionShare hat ein offenes Team auf Keybase, um über das Projekt zu diskutieren, Fragen zu stellen, Ideen und Designs zu teilen und um Pläne für die künftige Entwicklung zu schmieden. (Außerdem ist dies ein einfacher Weg, um Ende zu Ende verschlüsselte Nachrichten, z.B. OnionShare-Adressen, an andere Leute in der OnionShare-Community zu senden.) Um Keybase zu nutzen, lade die Keybase-App <https://keybase.io/download>`_ herunter, erstelle dir einen Account und trete diesem Team bei. In der App, gehe auf „Teams“, klicke auf “Team beitreten“ und gib „onionshare“ ein.

OnionShare hat auch eine Mailinglist für Entwickler und Designer, um sich über das Projekt auszutauschen.

Code beitragen

Der OnionShare Quellcode befindet sich in diesem Git-Repository: https://github.com/micahflee/onionshare

Wenn du Code zu OnionShare beitragen willst, solltest du dem Keybase-Team beitreten und dort zur Diskussion stellen, was du gerne beitragen möchtest. Du solltest auch einen Blick auf alle offenen Issues auf GitHub werfen, um zu sehen, ob dort etwas für dich dabei ist, das du in Angriff nehmen möchtest.

Wenn du bereit bist, Code beizusteuern, lege einen Pull-Request im GitHub-Repository an und einer der Projektbetreuer wird einen Blick darüber werfen und ggfs. Fragen stellen, Änderungen anfragen, ihn zurückweisen oder ihn in das Projekt einpflegen.

Mit der Entwicklung beginnen

OnionShare wurde in Python entwickelt. Zum Starten, laden sie das Git-Repository von https://github.com/onionshare/onionshare/ herunter und öffnen die Datei unter ‚cli/README.md‘, um ihre Entwicklungsumgebung für die Kommandozeilenversion einzurichten., oder die Datei ‚desktop/README.md‘ um ihre Entwicklungsumgebung für die graphische Version einzurichten.

Diese Dateien enthalten die notwendigen technischen Instruktionen und Befehle, um die Abhängigkeiten für deine Plattform zu installieren,und um OnionShare aus dem Sourcetree auszuführen.

Debugging-Tipps

Verbose-Modus

Beim Entwickeln ist es hilfreich, OnionShare über die Kommandozeile auszuführen und dabei die --verbose- (oder -v-) Flagge zu setzen. Dadurch werden viele hilfreiche Nachrichten auf der Kommandozeile ausgegeben, zum Bespiel wenn bestimmte Objekte initialisiert wurden oder wenn Ereignisse eintreten (Klicken von Buttons, Speichern oder Auffrischen von Einstellungen o.ä.), sowie andere Debug-Informationen. Zum Beispiel:

$ poetry run onionshare-cli -v ~/Documents/roms/nes/Q-bert\ \(USA\).nes
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.4.1                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

[Sep 09 2021 19:13:20] Settings.__init__
[Sep 09 2021 19:13:20] Settings.load
[Sep 09 2021 19:13:20] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=wordlist.txt
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[Sep 09 2021 19:13:20] ModeSettings.load: creating /home/user/.config/onionshare/persistent/polish-pushpin-hydrated.json
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.title = None
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.public = False
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.autostart_timer = 0
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.autostop_timer = 0
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: share.autostop_sharing = True
[Sep 09 2021 19:13:20] Web.__init__: is_gui=False, mode=share
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=static
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=templates
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[Sep 09 2021 19:13:20] Web.generate_static_url_path: new static_url_path is /static_gvvq2hplxhs2cekk665kagei6m
[Sep 09 2021 19:13:20] ShareModeWeb.init
[Sep 09 2021 19:13:20] Onion.__init__
[Sep 09 2021 19:13:20] Onion.connect
[Sep 09 2021 19:13:20] Settings.__init__
[Sep 09 2021 19:13:20] Settings.load
[Sep 09 2021 19:13:20] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:20] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpf3akiouy
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=torrc_template
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=torrc_template, path=/home/user/code/onionshare/cli/onionshare_cli/resources/torrc_template
Connecting to the Tor network: 100% - Done
[Sep 09 2021 19:13:30] Onion.connect: Connected to tor 0.4.6.7
[Sep 09 2021 19:13:30] Settings.load
[Sep 09 2021 19:13:30] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:30] OnionShare.__init__
[Sep 09 2021 19:13:30] OnionShare.start_onion_service
[Sep 09 2021 19:13:30] Onion.start_onion_service: port=17616
[Sep 09 2021 19:13:30] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: general.service_id = vucwsdmjt7szoc6pel3puqoxobiepdsowmqaq7pm7dzhembtzr2capad
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.private_key = +HfFALM4MtrNh59ibfMtRwDCIpfpWHIcNh3boahqrHh3TkLAyQvzKTm/y53KoYKSh0VU+m9DZY7DtZuCzkHkqQ==
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.client_auth_priv_key = G24TSNLIJX7YZM6R7P24AIGRU4N56ZFL7ENZVIDIWUEWY66YS3EQ
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.client_auth_pub_key = GDY2EPXSS7Q3ELQJFIX2VELTVZ3QEYIGWIZ26CEDQKZJ5Y7VKI3A
Compressing files.
[Sep 09 2021 19:13:35] ShareModeWeb.init
[Sep 09 2021 19:13:35] ShareModeWeb.set_file_info_custom
[Sep 09 2021 19:13:35] ShareModeWeb.build_zipfile_list
[Sep 09 2021 19:13:35] Web.start: port=17616
* Running on http://127.0.0.1:17616/ (Press CTRL+C to quit)

Give this address and private key to the recipient:
http://vucwsdmjt7szoc6pel3puqoxobiepdsowmqaq7pm7dzhembtzr2capad.onion
Private key: G24TSNLIJX7YZM6R7P24AIGRU4N56ZFL7ENZVIDIWUEWY66YS3EQ

Press Ctrl+C to stop the server

Du kannst deine eigenen Debug-Nachrichten einbauen, indem du die Common.log-Methode aus onionshare/common.py ausführst. Zum Beispiel:

common.log('OnionShareGui', 'start_server', 'I ran here')

Das kann nützlich sein, wenn du die Abfolge von Events beim Benutzen der Anwendung oder den Wert bestimmter Variablen vor oder nach deren Änderung herausfinden möchtest.

Nur lokal

Tor ist langsam, und oft ist es ratsam, bei der Entwicklung keine Onion-Dienste zu starten. Dies kannst du mit der --local-only-Flagge tun. Zum Beispiel:

$ poetry run onionshare-cli --local-only --receive
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.4.1                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

* Running on http://127.0.0.1:17641/ (Press CTRL+C to quit)

Files sent to you appear in this folder: /home/user/OnionShare

Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.

Give this address and private key to the sender:
http://127.0.0.1:17641
Private key: E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA

Press Ctrl+C to stop the server

In diesem Fall lädst du die URL http://127.0.0.1:17614 in einem normalen Webbrowser wie Firefox anstelle des Tor Browsers. Der private Schlüssel wird im lokalen Betrieb für gewöhnlich nicht benötigt.

Übersetzungen beitragen

Hilf mit, OnionShare für die Leute einfacher zu benutzen, vertrauter und einladender zu machen, indem du es auf Hosted Weblate übersetzt. Halte „OnionShare“ immer in lateinischen Lettern und nutze „OnionShare (localname)“ bei Bedarf.

Um bei der Übersetzung mitzuhelfen, erstelle dir ein Benutzerkonto für Hosted Weblate, und schon kann es losgehen.

Vorschläge für die ursprüngliche englischsprache Zeichenketten („strings“)

Manchmal sind die originalen englischsprachigen Zeichenketten falschen oder stimmen nicht zwischen Anwendung und dem Handbuch überein.

Verbesserungen an den originalen Zeichenketten können vorgeschlagen werden, indem du @kingu in deinem Weblate-Kommentar hinzufügst, oder indem du ein Issue oder einen Pull Request auf GitHub anlegst. Letzterer Weg stellt sicher, dass alle Hauptentwickler den Vorschlag sehen und die Zeichenkette gegebenenfalls im Rahmen des üblichen Code-Review-Vorgangs abändern können.

Übersetzungsstatus

Hier siehst du den aktuellen Stand der Übersetzungen. Wenn du eine Übersetzung in einer Sprache beginnen möchtest, die hier nicht gelistet ist, schreibe uns bitte auf der Mailinglist: onionshare-dev@lists.riseup.net

https://hosted.weblate.org/widgets/onionshare/-/translations/multi-auto.svg