protonup icon indicating copy to clipboard operation
protonup copied to clipboard

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

Open cloudishBenne opened this issue 3 years ago • 20 comments

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

cloudishBenne avatar Feb 28 '22 21:02 cloudishBenne

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

Quget avatar Mar 01 '22 05:03 Quget

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

cloudishBenne avatar Mar 01 '22 10:03 cloudishBenne

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 avatar Mar 01 '22 10:03 cloudishBenne

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?

cloudishBenne avatar Mar 08 '22 03:03 cloudishBenne

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!

Quget avatar Mar 08 '22 07:03 Quget

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

cloudishBenne avatar Mar 08 '22 11:03 cloudishBenne

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.

dawnmist avatar Mar 18 '22 02:03 dawnmist

@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'

cobalt2727 avatar Mar 24 '22 20:03 cobalt2727

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

kureta avatar Mar 27 '22 19:03 kureta

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

cloudishBenne avatar Mar 27 '22 19:03 cloudishBenne

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?

kureta avatar Mar 27 '22 20:03 kureta

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.

cloudishBenne avatar Mar 28 '22 08:03 cloudishBenne

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.

ahmed-al-balochi avatar Mar 29 '22 07:03 ahmed-al-balochi

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 avatar Mar 29 '22 09:03 cloudishBenne

@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.

cloudishBenne avatar Mar 30 '22 01:03 cloudishBenne

@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

kureta avatar Mar 30 '22 06:03 kureta

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

cloudishBenne avatar Mar 30 '22 13:03 cloudishBenne

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

cloudishBenne avatar Mar 31 '22 22:03 cloudishBenne

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

cloudishBenne avatar Mar 31 '22 22:03 cloudishBenne

I'll check it out as soon as possible

ahmed-al-balochi avatar Apr 01 '22 05:04 ahmed-al-balochi

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

yochananmarqos avatar Oct 17 '22 22:10 yochananmarqos

It seems protonup is working fine with the new naming scheme

AUNaseef avatar Oct 19 '23 02:10 AUNaseef