Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Huge packaging refactor #1208

Merged
merged 78 commits into from
Nov 10, 2020
Merged

Huge packaging refactor #1208

merged 78 commits into from
Nov 10, 2020

Conversation

micahflee
Copy link
Collaborator

@micahflee micahflee commented Nov 8, 2020

This PR doesn't change much in the actual logic of OnionShare. But it does change all of this:

  • Renamed onionshare (former CLI) to onionshare-cli and onionshare-gui (former GUI) to just onionshare
  • Rearranged the directory structure -- now the CLI project is in cli and the GUI project is in desktop
  • Rearranged dev/release documentation. Now:
    • cli/README.md has build instructions for the CLI app
    • desktop/README.md has build instructions for the desktop app
    • RELEASE.md has instructions for making a release -- and these instructions are much more thorough, and describe all the new platforms OnionShare will support
  • Ported from PyQt5 to PySide2 -- these are two competing python bindings for Qt5, but PySide2 makes setting up a dev environment much simpler and works with Briefcase
  • Ported from PyInstaller to Briefcase:
    • Changed how we build macOS releases, packaging with briefcase and distributing in a DMG
    • Changed how we build a Windows release, packaging with briefcase and distributing in an MSI
    • Almost added support for Linux AppImage packages, but blocked by this briefcase bug (should be simple to support AppImage when this is fixed)
  • Added support for Flatpak packaging, with the Flatpak manifest defined in the flatpak dir
  • Added support for Snapcraft packaging, with the Snapcraft manifest in the snap dir
  • Adds support for standalone CLI version, distributed through PyPi/pip

Things left to do:

  • Make tests pass in Windows
  • Update the docs for how to install in Linux
  • Handle localization from cli/onionshare_cli/onion.py -- the CLI version is not localized at all, so all of the strings are in the desktop version. Right now, Tor-related error messages are all only in English, but they should continue to get localized

Resolves #1200, #1111, #910, #1107, #1009 (mostly), #834

…ython packages and get them from pyproject.toml instead
…s from snap because they are defined in poetry; fix onionshare and onionshare-gui snap apps definition; switch back to download Qt5 from the internet
…macOS sandbox because this is required for PyInstaller and Catalina
@micahflee micahflee requested a review from mig5 as a code owner November 8, 2020 23:07
"settings_error_missing_password": "Connected to Tor controller, but it requires a password to authenticate.",
"settings_error_unreadable_cookie_file": "Connected to the Tor controller, but password may be wrong, or your user is not permitted to read the cookie file.",
"settings_error_bundled_tor_not_supported": "Using the Tor version that comes with OnionShare does not work in developer mode on Windows or macOS.",
"settings_error_bundled_tor_timeout": "Taking too long to connect to Tor. Maybe you aren't connected to the Internet, or have an inaccurate system clock?",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should also fix #1184 and the comment I mentioned.

@micahflee micahflee added this to the 2.3 milestone Nov 9, 2020
…nts crashes after running the tests; and fix msi_filename in Windows build script
…cond when cleaning up MainWindow so loose threads can finish
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Windows packaging crash
2 participants