AUNaseef / protonup

Install and Update Proton-GE
GNU General Public License v3.0
577 stars 24 forks source link

Proton GE got new naming scheme, i added compatibility with both naming schemes. #26

Closed cloudishBenne closed 1 year ago

cloudishBenne commented 2 years ago

Could you test your way through it and possible merge this as soon as possible?

Quget commented 2 years ago

I tested this, it does update and remove the new versions of GE Proton nicely. However, it isn't able to delete the older version for me. image

cloudishBenne commented 2 years ago

Hey mate, thanks for testing! I'll dig into it later after work and fix this.

cloudishBenne commented 2 years ago

I see what is wrong here: By design the version string of the (to be) installed Proton GE is just the corresponding tag of the original release. So with the old naming scheme it was "X.Y-GE-Z" and with the new naming scheme it is "GE-ProtonX-Z". I was now thinking about the following options to short the typing a bit: [Proton-]X.Y-GE-Z [GE-Proton]X-Z The strings within [...] would be optional. With these new options your problem gets solved and the new Proton GE versions could be typed down much quicker.

@AUNaseef what do you think about it?

cloudishBenne commented 2 years ago

I tested this, it does update and remove the new versions of GE Proton nicely. However, it isn't able to delete the older version for me. image

Did you get it running with the X.Y-GE-Z tag?

Quget commented 2 years ago

I tested this, it does update and remove the new versions of GE Proton nicely. However, it isn't able to delete the older version for me. image

Did you get it running with the X.Y-GE-Z tag?

Ohh I have not tested the updated one. I just manually deleted the old proton version and kept using your protonup version to update Proton which works nicely still. Someone else would have to test if your protonup update deletes the old proton versions.

I hope @AUNaseef will respond to your pull request soon!

cloudishBenne commented 2 years ago

I tested this, it does update and remove the new versions of GE Proton nicely. However, it isn't able to delete the older version for me. image

Did you get it running with the X.Y-GE-Z tag?

Ohh I have not tested the updated one. I just manually deleted the old proton version and kept using your protonup version to update Proton which works nicely still. Someone else would have to test if your protonup update deletes the old proton versions.

I hope @AUNaseef will respond to your pull request soon!

I did not finish the feature i described above. So just to make sure it works how it is supposed to be (tested this on my machine but you get the usual "works on my machine"-thing), these should pass:

protonup -t 7.2-GE-2 protonup -r 7.2-GE-2 protonup -t GE-Proton7-8 protonup -r GE-Proton7-8

This are the correct tags that have to be used with protonup==0.2.0 Your error showed up because of: protonup -r »Proton-«7.2-GE-2

dawnmist commented 2 years ago

I can confirm that it is working on my machine as well for both old and new naming schemes.

Has it always reported the installed versions for the old naming scheme with the Proton- prefix when using --list? That's where I originally tripped up when trying to test removal/reinstallation of a prior version - I also just copied the version stated under the list, which wasn't the correct tag to use for removal. I can see that being a very common user error, and I don't remember stumbling over it before so it makes me suspicious that this prefix was previously being suppressed/not shown. It would be really good if this could be done so that the list view actually shows the correct tag names to use for uninstalling a version.

cobalt2727 commented 2 years ago

@AUNaseef could you look at merging this? protonup is completely broken without it

cobalt@cobalt-inspiron:~$ protonup
Ready to download Proton-GE-Proton7-10 
Size      : 398.8 MiB 
Published : 2022-03-19
Continue? (Y/n): y
Downloaded 100.00% - 398.9 MiB / 398.8 MiB   
Traceback (most recent call last):
  File "/home/cobalt/.local/bin/protonup", line 8, in <module>
    sys.exit(main())
  File "/home/cobalt/.local/lib/python3.9/site-packages/protonup/__init__.py", line 4, in main
    return main()
  File "/home/cobalt/.local/lib/python3.9/site-packages/protonup/cli.py", line 33, in main
    get_proton(version=args.tag, yes=args.yes, dl_only=args.download,
  File "/home/cobalt/.local/lib/python3.9/site-packages/protonup/api.py", line 152, in get_proton
    tarfile.open(destination, "r:gz").extractall(install_directory())
  File "/usr/lib/python3.9/tarfile.py", line 2036, in extractall
    self.extract(tarinfo, path, set_attrs=not tarinfo.isdir(),
  File "/usr/lib/python3.9/tarfile.py", line 2077, in extract
    self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
  File "/usr/lib/python3.9/tarfile.py", line 2150, in _extract_member
    self.makefile(tarinfo, targetpath)
  File "/usr/lib/python3.9/tarfile.py", line 2191, in makefile
    with bltn_open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: '/home/cobalt/.steam/root/compatibilitytools.d/GE-Proton7-10/files/lib64/wine/vkd3d-proton/libvkd3d-proton-utils-3.dll'
kureta commented 2 years ago

I hope @AUNaseef is OK. They haven't been active since December. I am thinking about forking this but I am not sure.

cloudishBenne commented 2 years ago

I also thought about forking, i don't know how long to wait before. We could team up on this.

kureta commented 2 years ago

I just looked at the source. It's a clean, simple, and small codebase. I trust my python skills but I did not manage an open-source project before. Also, your fork was already suggested for the AUR package. You can add me as a maintainer and we can tell the folks at AUR to move to your fork. But I don't know the etiquette on forking. Should we wait for some more time?

cloudishBenne commented 2 years ago

Temporarily i would just finish the shorted tag installation i mentioned above and create a new pull request for this. I think this would be the neatest on git. The biggest problem is the pip package, there we would have to release under a new package name. Something like protonup-ng should do it. I never released a package on pypi, do you have done this before?

Some more info on the future of protonup: https://github.com/Ahmed-Al-Balochi/LibreGaming/issues/25#issuecomment-1061609688 My problem is, i don't want to have a complete new protonup, i just want to have a working protonup. I wrote an apt hook for a few mates so protonup is run on every apt update. We like this and we don't need anything more.

When i'm back from work i'll finish my addition and add you as a maintainer, then we can look how to release on pypi if you want.

ahmed-al-balochi commented 2 years ago

Hi @cloudishBenne @kureta, Its very easy to publish a pypi package. @AUNaseef already did all the work by making the directory structure and the needed files. You only need to build the package and upload the built package on pypi. You can follow this guide on how to publish a pypi package.

cloudishBenne commented 2 years ago

Hi @cloudishBenne @kureta, Its very easy to publish a pypi package. @AUNaseef already did all the work by making the directory structure and the needed files. You only need to build the package and upload the built package on pypi. You can follow this guide on how to publish a pypi package.

Thanks mate!

cloudishBenne commented 2 years ago

@kureta I added you to my repo, can you test if you have access? I also created an account on pypi, finished the new regex version-matching and wrote a quick test method to validate it. Tomorrow i first want to publish the quick patch on pypi, then hopefully finish the new regex version-matching integration and push it to a new development-branch so we can refactor the code a bit for a 0.3 release. Let's continue discussion at my repo and add a last issue here with all needed information and links.

kureta commented 2 years ago

@cloudishBenne I have accepted your invitation. I have a busy couple of days at work, I'll get working on this tomorrow. Also, what is your timezone? Mine is GMT+3

cloudishBenne commented 2 years ago

@kureta Alright, thank you! Mine is GMT+2.

cloudishBenne commented 2 years ago

I corrected the author of my last commits and added gpg signing. Just if someone wonders.

cloudishBenne commented 2 years ago

@kureta @Ahmed-Al-Balochi Hey guys, finally the fork is online: https://pypi.org/project/protonup-ng/ https://github.com/cloudishBenne/protonup-ng

ahmed-al-balochi commented 2 years ago

I'll check it out as soon as possible

yochananmarqos commented 2 years ago

@ahmed-al-balochi Not to be impatient, but It's been almost 7 months. This PR is good, please merge it.

AUNaseef commented 1 year ago

It seems protonup is working fine with the new naming scheme