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

OnionShares Quellcode findet 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 ist in Python geschrieben. Klone zunächst das git-Repository unter https://github.com/micahflee/onionshare/ und lies in der cli/README.md-Datei nach, wie du deine Entwicklungsumgebung für die Kommandozeilen-Version aufsetzt; lies in der desktop/README.md-Datei nach, wie du deine Entwicklungsumgebung für die grafische Version aufsetzt.

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
OnionShare 2.3 | https://onionshare.org/

                    @@@@@@@@@
                @@@@@@@@@@@@@@@@@@@
            @@@@@@@@@@@@@@@@@@@@@@@@@
          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            @@@@@@@@@@@@@@@@@@@@@@@@@@@@@           ___        _
              @@@@@@         @@@@@@@@@@@@@         / _ \      (_)
        @@@@    @               @@@@@@@@@@@       | | | |_ __  _  ___  _ __
      @@@@@@@@                   @@@@@@@@@@       | | | | '_ \| |/ _ \| '_ \
    @@@@@@@@@@@@                  @@@@@@@@@@      \ \_/ / | | | | (_) | | | |
  @@@@@@@@@@@@@@@@                 @@@@@@@@@       \___/|_| |_|_|\___/|_| |_|
      @@@@@@@@@                 @@@@@@@@@@@@@@@@    _____ _
      @@@@@@@@@@                  @@@@@@@@@@@@     /  ___| |
      @@@@@@@@@@                   @@@@@@@@       \ `--.| |__   __ _ _ __ ___
      @@@@@@@@@@@               @    @@@@          `--. \ '_ \ / _` | '__/ _ \
        @@@@@@@@@@@@@         @@@@@@               /\__/ / | | | (_| | | |  __/
        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@             \____/|_| |_|\__,_|_|  \___|
          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            @@@@@@@@@@@@@@@@@@@@@@@@@
                @@@@@@@@@@@@@@@@@@@
                    @@@@@@@@@

[Nov 10 2020 20:50:35] Settings.__init__
[Nov 10 2020 20:50:35] Settings.load
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=wordlist.txt
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[Nov 10 2020 20:50:35] ModeSettings.load: creating /home/user/.config/onionshare/persistent/abstain-reprogram-elevate.json
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.public = False
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.autostart_timer = 0
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.autostop_timer = 0
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.legacy = False
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.client_auth = False
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: share.autostop_sharing = True
[Nov 10 2020 20:50:35] Web.__init__: is_gui=False, mode=share
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=static
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=templates
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[Nov 10 2020 20:50:35] Web.generate_static_url_path: new static_url_path is /static_qa7rlyxwnfodczrriv3tj5yeoq
[Nov 10 2020 20:50:35] ShareModeWeb.init
[Nov 10 2020 20:50:35] Onion.__init__
[Nov 10 2020 20:50:35] Onion.connect
[Nov 10 2020 20:50:35] Settings.__init__
[Nov 10 2020 20:50:35] Settings.load
[Nov 10 2020 20:50:35] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpz53ztq3m
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=torrc_template
[Nov 10 2020 20:50:35] 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
[Nov 10 2020 20:50:42] Onion.connect: Connected to tor 0.4.4.5
[Nov 10 2020 20:50:42] Settings.load
[Nov 10 2020 20:50:42] Web.generate_password: saved_password=None
[Nov 10 2020 20:50:42] Common.get_resource_path: filename=wordlist.txt
[Nov 10 2020 20:50:42] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[Nov 10 2020 20:50:42] Web.generate_password: built random password: "pedometer-grower"
[Nov 10 2020 20:50:42] OnionShare.__init__
[Nov 10 2020 20:50:42] OnionShare.start_onion_service
[Nov 10 2020 20:50:42] Onion.start_onion_service: port=17610
[Nov 10 2020 20:50:42] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[Nov 10 2020 20:50:46] ModeSettings.set: updating abstain-reprogram-elevate: general.service_id = x5duatuhpiwfzb23iwpjanalvtxdhoj43ria44s53ryy5diywvbu24ad
[Nov 10 2020 20:50:46] ModeSettings.set: updating abstain-reprogram-elevate: onion.private_key = uIXJzY+88tGSAXAjQxdwkzb2L7jHv467RIX1WDieVkFEZjEA7st2p/6uVCM4KM3L9PdShTPScuUv2IEbVQammA==
Compressing files.
[Nov 10 2020 20:50:46] ShareModeWeb.init
[Nov 10 2020 20:50:46] ShareModeWeb.set_file_info_custom
[Nov 10 2020 20:50:46] ShareModeWeb.build_zipfile_list
[Nov 10 2020 20:50:46] Web.start: port=17610
* Running on http://127.0.0.1:17610/ (Press CTRL+C to quit)

Give this address to the recipient:
http://onionshare:pedometer-grower@x5duatuhpiwfzb23iwpjanalvtxdhoj43ria44s53ryy5diywvbu24ad.onion

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
OnionShare 2.3 | https://onionshare.org/

                    @@@@@@@@@
                @@@@@@@@@@@@@@@@@@@
            @@@@@@@@@@@@@@@@@@@@@@@@@
          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            @@@@@@@@@@@@@@@@@@@@@@@@@@@@@           ___        _
              @@@@@@         @@@@@@@@@@@@@         / _ \      (_)
        @@@@    @               @@@@@@@@@@@       | | | |_ __  _  ___  _ __
      @@@@@@@@                   @@@@@@@@@@       | | | | '_ \| |/ _ \| '_ \
    @@@@@@@@@@@@                  @@@@@@@@@@      \ \_/ / | | | | (_) | | | |
  @@@@@@@@@@@@@@@@                 @@@@@@@@@       \___/|_| |_|_|\___/|_| |_|
      @@@@@@@@@                 @@@@@@@@@@@@@@@@    _____ _
      @@@@@@@@@@                  @@@@@@@@@@@@     /  ___| |
      @@@@@@@@@@                   @@@@@@@@       \ `--.| |__   __ _ _ __ ___
      @@@@@@@@@@@               @    @@@@          `--. \ '_ \ / _` | '__/ _ \
        @@@@@@@@@@@@@         @@@@@@               /\__/ / | | | (_| | | |  __/
        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@             \____/|_| |_|\__,_|_|  \___|
          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            @@@@@@@@@@@@@@@@@@@@@@@@@
                @@@@@@@@@@@@@@@@@@@
                    @@@@@@@@@

* Running on http://127.0.0.1:17635/ (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 to the sender:
http://onionshare:train-system@127.0.0.1:17635

Press Ctrl+C to stop the server

In diesem Fall lädst du die URL http://onionshare:eject-snack@127.0.0.1:17614 in einem normalen Webbrowser wie Firefox anstelle des Tor Browsers.

Ü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