Closed robohappy closed 1 month ago
Thanks for reporting.
ProtonUp-Qt currently only loads the 100 newest compatibility tool releases. Everything that is older than that, is not loaded. GE-Proton 6 happens to be older than the 100 newest releases.
It's probably a good idea to add a Load more
button to ProtonUp-Qt now that we got compatibility tools which have above 100 versions.
For now, you need to manually download and install GE-Proton from their releases page: https://github.com/GloriousEggroll/proton-ge-custom/releases See https://github.com/GloriousEggroll/proton-ge-custom?tab=readme-ov-file#native for an installation guide.
Code References for Developers:
https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=100
Might also make sense to make the default configurable -for now in the config, in future on a settings screen, along with a place to put the API tokens for GitHub/GitLab, which could complement this "load more" feature quite well
Hmm, it seems the maximum that GitHub will return is 100 per page. You have to pass the &page=
parameter to get more than this. We pass this parameter for Proton-tkg to fetch a bunch of pages when searching workflow runs, as it is possible all runs on the current page may have failed so we go back through until we get at least one page with one successful run (#237).
If you have jq
installed you can test this from the commandline:
## Returns "100"
curl --silent --url "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=100" | jq '. | length'
## Also returns "100"
curl --silent --url "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=200" | jq '. | length'
## Returns "69" currently
curl --silent --url "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases?per_page=100&page=2" | jq '. | length'
So in order to accommodate this, we would need to add some logic to filter through multiple pages if the count
is over 100
, which is the GitHub-enforced maximum per page. We would have to calculate how many pages this would correspond to, which I'm sure is easy but my maths skill ends far beyond this point :sweat_smile:
However before implementing, we should consider something: We have a util method for fetching project releases, aptly named fetch_project_releases
. We use this for some ctmods but not others, the ones that don't use it I think had some cases that the current implementation doesn't allow for switching over to just yet, although I can't remember exactly. It may be worth implementing this "pagination functionality" in fetch_project_releases
and then focusing on allowing other tools to use this method. This way we have the implementation of this pagination at a higher level and it would work out of the box for all ctmods using fetch_project_releases
(which right now is only Kron4ek, Luxtorpeda+Boxtron+Roberta, NorthStar Proton, vkd3dproton+vkd3dlutris, and DXVK+DXVK Async).
EDIT: Having a look again at the code, we probably don't use these functions for the GE-Proton ctmod because, for instance, fetch_project_release_data
doesn't parse out checksum, and we validate the checksum when downloading GE-Proton. It should be possible to extend this function to parse out the checksum, if it exists.
Chiming in to say I would also really like to be able to load more/older versions of Proton. Fingers crossed this will be in a coming update, and I sincerely appreciate your work on ProtonUp-Qt.
Describe the bug
On the version scroll down menu for GE-Proton, it only goes down far enough for 7.0rc3-GE-1, no GE Protons from 6 or older show on the menu.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Should be able to access all older versions of GE-Proton
Screenshots
Desktop (please complete the following information):
Terminal output