1. 07 Feb, 2020 1 commit
  2. 04 Feb, 2020 1 commit
    • Matt Harbison's avatar
      visdiff: convert the tool command back to str before displaying in an error dlg · eb63baf582e8
      Matt Harbison authored
      The str cast is necessary, otherwise an AttributeError is raised saying (for
      example) that 'FileNotFoundError' object has no attribute 'decode'.  In testing
      this (by trying to `subprocess.Popen("NULL")`), the error dialog pops up with
      the title, but nothing else in the box.  The following message is printed in the
      terminal, and the whole process hangs:
      
          QObject::startTimer: Timers can only be used with threads started with QThread
      
      --HG--
      branch : stable
      eb63baf582e8
  3. 07 Feb, 2020 1 commit
    • Matt Harbison's avatar
      setup: launch pyrcc5 with subprocess instead of `distutils.spawn` · 63c0a83d128f
      Matt Harbison authored
      For some reason, building PyQt5 isn't building pyrcc5.exe, and instead creates
      *.bat files.  But in order for *.bat files to be executed as a command, it needs
      to go through the shell.
      
      That's not enough, however, as the *.bat files are installed to the root of the
      virtualenv, which isn't on PATH.  So also adjust the environment when launching.
      I'm not handling the case of building outside of a virtualenv because this is so
      complicated that it would be crazy to build inside of the global python
      installation.  It does look like pyrcc5.exe is back and in the right place when
      installing with pip under py3, so this is probably a short term hack.
      
      --HG--
      branch : stable
      63c0a83d128f
  4. 06 Feb, 2020 1 commit
  5. 04 Feb, 2020 2 commits
  6. 03 Feb, 2020 1 commit
  7. 04 Feb, 2020 2 commits
  8. 03 Feb, 2020 2 commits
  9. 01 Feb, 2020 2 commits
  10. 03 Feb, 2020 2 commits
  11. 02 Feb, 2020 1 commit
  12. 01 Feb, 2020 5 commits
  13. 02 Feb, 2020 1 commit
  14. 01 Feb, 2020 2 commits
    • Yuya Nishihara's avatar
      typing: fix type annotation of chktext3() and add assertion · 1330ea968cec
      Yuya Nishihara authored
      pytype 2020.01.24 complains that pyqtSlot doesn't form a type. That's true
      because pyqtSlot is a decorator function. Using Any should be fine here since
      we just want to work around the type mismatch of the return value.
      
        File "tortoisehg/hgqt/clone.py", line 158, in __init__: Invalid type
        annotation '<instance of Callable>' for btnslot [invalid-annotation]
          Not a type
      
      Since the latest version of pytype can infer the return type of chktext3()
      from chktext(), we need to assert that there's a third element in the tuple.
      
        File "tortoisehg/hgqt/clone.py", line 162, in chktext3: bad option in
        return type [bad-return-type]
          Expected: Tuple[PyQt5.QtWidgets.QCheckBox, PyQt5.QtWidgets.QLineEdit,
                          PyQt5.QtWidgets.QPushButton]
          Actually returned: Tuple[PyQt5.QtWidgets.QCheckBox,
                                   PyQt5.QtWidgets.QLineEdit]
      
      --HG--
      branch : stable
      1330ea968cec
    • Aay Jay Chan's avatar
      py3: byteify config setting lookup · 89ecc3a14828
      Aay Jay Chan authored
      This caused a crash when opening diff tool.
      
      --HG--
      branch : stable
      89ecc3a14828
  15. 31 Jan, 2020 1 commit
  16. 30 Jan, 2020 3 commits
  17. 28 Jan, 2020 2 commits
    • Matt Harbison's avatar
      packaging: update to the latest versions of the macOS dependencies · 78c637275328
      Matt Harbison authored
      I stayed with the Qt5.9 branch because it is still supported for now.  The PyQt5
      documentation says to always use the latest version, and not worry about keeping
      it in sync with Qt5.  SourceForge is lagging behind with some of these packages,
      so I moved them to the official download site.  Not sure if this is a great idea
      long term, because I don't see an archive page.  But we were already relying on
      this site for sip.
      
      Something (Qt5?) wanted `enum34` installed.  So the package installation had to
      be moved to immediately after building python.  Additionally, sip needed to be
      configured differently, otherwise this version of PyQt5 couldn't find it, and
      QScintilla failed to build.
      78c637275328
    • Matt Harbison's avatar
      packaging: update the OpenSSL dependency on macOS · a5969c6d6849
      Matt Harbison authored
      OpenSSL 1.0.2 is now EOL, but newer versions contain API changes.  The other
      dependencies are an intertwined mess, so doing those separately.
      a5969c6d6849
  18. 29 Jan, 2020 1 commit
  19. 28 Jan, 2020 1 commit
  20. 30 Jan, 2020 1 commit
  21. 27 Jan, 2020 2 commits
  22. 24 Jan, 2020 5 commits
    • Matt Harbison's avatar
      packaging: vendor the scripts used to build the official macOS installers · 379199a5db42
      Matt Harbison authored
      The scripts download and/or build all of the required dependencies, create a
      virtualenv to install them, and then build the app bundle from there.  They
      expect a `thg` and `hg` repo in `contrib/packaging/macos/src`, so to build for
      now, add a symlink back to the repo root, and symlink to a local Mercurial repo.
      Then run `build.sh` from that directory.
      
      With Bitbucket going away, I think it's important to capture this as-is for
      reference before integrating it more tightly.  This is unmodified from my latest
      pull request to fix a build failure[1] (followed by some cleanup by Sam Hathaway
      and me), except that I adjusted the `background.png` and `TortoiseHg.icns` to
      keep it working, and I generated a requirements file for the external python
      packages based on what the script installed to successfully build 5.3rc0.
      
      Also for whatever reason, OpenSSL fails to link on my system with Xcode 10
      installed.  The errors are mostly around _OBJ_xxx symbols like _OBJ_txt2obj and
      _OBJ_sigid_free being missing.  I have no idea why this is, and the command line
      tools work fine, so build_settings.conf is adjusted to use the command line
      tools if they are installed.
      
      The next steps are to get rid of some of the cruft (Qt4, the separate setup.py,
      and so forth).  I had some success building a py3 .app with some modifications,
      so this may end up being more than an historical reference when py2 support is
      dropped.  (Sadly the py3 app crashed on startup, complaining about some missing
      imports.  But so did a manually built .app using setup.py in the repo root.)
      
      [1] https://groups.google.com/forum/#!msg/thg-dev/vD6mbg3DTmg/1HoU6UdUBwAJ
      379199a5db42
    • Matt Harbison's avatar
      70b6c2be0601
    • Matt Harbison's avatar
      831f1a9c8f0a
    • Matt Harbison's avatar
      contrib: move the macOS app icon under a dedicated directory for macOS · 5dffbe09f135
      Matt Harbison authored
      I plan on vendoring the Mac build scripts here.  I also plan on a (hopefully)
      much simplified set of release scripts for Windows.  So it makes sense to
      organize this roughly like Mercurial has.
      5dffbe09f135
    • Matt Harbison's avatar
      contrib: sync the py2app config to the config used to build official releases · 1fa281466840
      Matt Harbison authored
      Mostly this is adding PyQt5 support, but now also includes certifi (because
      modern python needs it on macOS) and iniparse to edit preferences.  The
      reference config is in setup.py in another repo for now[1].
      
      The one thing it still doesn't do is add a module that extends `sys.path` to
      include the user's site-packages directory.
      
      [1] https://bitbucket.org/Weeds2000/tortoisehg-osx-build-scripts/pull-requests/1/additional-build-improvements/commits
      1fa281466840