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

OnionShare source code is to be found in this Git repository: https://github.com/onionshare/onionshare

If you’d like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you’re thinking of working on. You should also review all of the open issues on GitHub to see if there are any you’d like to tackle.

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 is developed in Python. To get started, clone the Git repository at https://github.com/onionshare/onionshare/ and then consult the cli/README.md file to learn how to set up your development environment for the command-line version, and the desktop/README.md file to learn how to set up your development environment for the graphical version.

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.3.3                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

[May 10 2021 18:24:02] Settings.__init__
[May 10 2021 18:24:02] Settings.load
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[May 10 2021 18:24:02] ModeSettings.load: creating /home/user/.config/onionshare/persistent/tattered-handgun-stress.json
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.title = None
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.public = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostart_timer = 0
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostop_timer = 0
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.legacy = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.client_auth = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: share.autostop_sharing = True
[May 10 2021 18:24:02] Web.__init__: is_gui=False, mode=share
[May 10 2021 18:24:02] Common.get_resource_path: filename=static
[May 10 2021 18:24:02] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[May 10 2021 18:24:02] Web.generate_static_url_path: new static_url_path is /static_4yxrx2mzi5uzkblklpzd46mwke
[May 10 2021 18:24:02] ShareModeWeb.init
[May 10 2021 18:24:02] Onion.__init__
[May 10 2021 18:24:02] Onion.connect
[May 10 2021 18:24:02] Settings.__init__
[May 10 2021 18:24:02] Settings.load
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:02] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpw6u0nz8l
[May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template
[May 10 2021 18:24:02] 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
[May 10 2021 18:24:10] Onion.connect: Connected to tor 0.4.5.7
[May 10 2021 18:24:10] Settings.load
[May 10 2021 18:24:10] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:10] Web.generate_password: saved_password=None
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[May 10 2021 18:24:10] Web.generate_password: built random password: "tipping-colonize"
[May 10 2021 18:24:10] OnionShare.__init__
[May 10 2021 18:24:10] OnionShare.start_onion_service
[May 10 2021 18:24:10] Onion.start_onion_service: port=17645
[May 10 2021 18:24:10] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: general.service_id = omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: onion.private_key = 6PhomJCjlWicmOyAAe0wnQoEM3vcyHBivrRGDy0hzm900fW5ITDJ6iv2+tluLoueYj81MhmnYeTOHDm8UGOfhg==
Compressing files.
[May 10 2021 18:24:14] ShareModeWeb.init
[May 10 2021 18:24:14] ShareModeWeb.set_file_info_custom
[May 10 2021 18:24:14] ShareModeWeb.build_zipfile_list
[May 10 2021 18:24:14] Web.start: port=17645
* Running on http://127.0.0.1:17645/ (Press CTRL+C to quit)

Give this address to the recipient:
http://onionshare:tipping-colonize@omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd.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
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.3.3                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

* Running on http://127.0.0.1:17617/ (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:ended-blah@127.0.0.1:17617

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