-
Notifications
You must be signed in to change notification settings - Fork 137
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
PyQt6 Upgrade #1685
PyQt6 Upgrade #1685
Conversation
Oh, I think you accidentally pushed all your icon work too. The PyQt6 commit should be based on the current master branch, not your other work. Now it's all mixed up. Best to force-push this again. |
You can just cherry-pick your one PyQt commit, as tested here: #1686 Commands:
|
I initially made the changes on my fork which contained the changes for the icons too and the icons also took some changes to work with PyQt6 so I thought those could also be added here. I'll make those changes on the icons PR and keep this to PyQt6 upgrade only. |
Great, thanks! You should also change I'm surprised it doesn't need more changes than this. Was expecting to update the .UI files too. If this is really the case, we should quickly start a new 0.9 branch with this. |
Ya, I forgot to change that.
The only major changes it took were the full enums and the imports, for which I wrote a script that took care of those. Other than that it required some minor changes here and there including change in the import of QAction and QShortcut, removal of High DPI scaling, some flag changes, data type changes in SetChecked, change in some deprecated methods and some more.
Yes, after fixing those failing tests which I mentioned I think we might be good with the upgrade. |
Yeah, I see the changes. It's a bit more than search & replace, but not a crazy change. And no change to the UI XML files. For your commits, you added one new commit that undoes previous commits. Would be better to just have the actual changes. You see all the commits of this PR here: https://github.com/borgbase/vorta/pull/1685/commits If you like I can also force-push just your one commit to this repo and we take it from there. But I'm sure you can also figure it out. |
A system package may need adding in .github/workflows/test.yml |
You can force-push my commit to this repo if you want. My bad I've committed my icons work on my master branch so when I do checkout master it still keeps those changes. |
Done. As you can see we only have 2 commits now and the history is much clearer than first adding and then removing stuff. But don't worry, this Git stuff can be confusing in the beginning. |
Yeah, Thanks for the help! But it still contains some of my code from the icon issue, is that fine? |
With this Ubuntu package added, test properly run on all platforms, but have a few minor errors. Can look into those tomorrow. |
Yeah Sure! |
Packaging with PyInstaller for macOS also works well. The resulting app is actually 30% or so smaller than Qt5. 🤷♂️ |
Oh great! I think the upgrade will be complete sooner then expected. |
982378b
to
3f6a46d
Compare
Fixed the tests. Nothing major to change. There were some subtle changes to dBus notifications. Would be good if someone can test those on Linux. 🙏 |
Should I mark this PR as ready for review? |
Yes, please! |
What should I do/work on next? |
The signature of `QVariant.convert` has changed breaking this keyring provider. * src/vorta/keyring/kwallet.py (VortaKWallet5Keyring.try_unlock)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has to be updated too, I think:
Line 103 in 6edd409
extension-pkg-whitelist=PyQt5 |
I couldn't test notifications because they no longer work on my testing machine for some reason.
Co-authored-by: yfprojects <[email protected]>
Changed. Do we still use pylint anywhere? |
Notifications should work. I fixed and tested them on Ubuntu 22.04. |
I've pinned pyobjc, since today's update causes a segfault in our autostart code. This will be a separate PR. |
* src/vorta/borg/extract.py (BorgExtractJob.prepare): Compare `item.data.checkstate` to type `Qt.Checkstate` instead of the value of the enum
I use it locally. But it isn't used in the repository. |
Fixes type hints and type handling. * src/vorta/views/extract_dialog.py
Merged this and will soon do a v0.9.0 beta release so macOS users can easily test the compiled version. Thanks to @i1sm3ky for getting the ball rolling on this and @real-yfprojects for reviewing and adding valuable fixes and input! |
@m3nu @real-yfprojects What else should I get on doing next? |
You can look for stale PRs that may only need a small push or change to be useable. E.g. #1639 should be nearly ready, but was abandoned by the person or something. Careful, since some PRs may also include features that are either too specific or add too much maintenance effort in the long term. So we don't want to merge those. |
Ok thanks! I had seen this issue before, I'll work on it and get it fixed.
Ok gotcha. |
These docs may need updating too. I'm on an Intel mac and can't test Arm stuff. https://vorta.borgbase.com/contributing/#local-development-setup Would be good to build an Arm binary or universal binary somehow. GH Actions is also Intel. |
I'll look more into it and get back to you. |
|
I think you need universal2 python binaries for that to work. |
Not impossible to build universal2 Python bins: Maybe an afternoon to get this working on Github Actions with macOS. |
The Apple dev docs suggest a similar approach using lipo to merge the individual binaries. |
Thanks, I think you're right, I might have to look further into it. |
This puts Vorta on PyQt6 and starts a new main branch 0.9. --------- Co-authored-by: real-yfprojects <[email protected]> Co-authored-by: Manu <[email protected]> Co-authored-by: yfprojects <[email protected]>
Description
This PR aims to upgrade Vorta from using PyQt5 to PyQt6.
Related Issue
Issue: #765 PyQt6 Upgrade by @m3nu.
Motivation and Context
This change upgrades Vorta's GUI library (PyQt5) to its latest version at the time (PyQt6) which natively supports ARM architecture. Due to an update on PyQt5, it is no longer supported on ARM architecture which makes us unable to install and use Vorta on ARM based operating systems. By upgrading Vorta from PyQt5 to PyQt6, it'll add support for ARM architecture allowing us to use Vorta on ARM based systems too.
How Has This Been Tested?
This has been tested using the pre-written unit tests.
Types of changes
Checklist:
I provide my contribution under the terms of the license of this repository and I affirm the Developer Certificate of Origin.