Skip to content
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

Support gnome 3.32 #76

Merged
merged 2 commits into from
Apr 21, 2019
Merged

Support gnome 3.32 #76

merged 2 commits into from
Apr 21, 2019

Conversation

ccat3z
Copy link
Contributor

@ccat3z ccat3z commented Mar 16, 2019

Gnome 3.32 doesn't support Lang.Class anymore. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/361

@ccat3z
Copy link
Contributor Author

ccat3z commented Mar 19, 2019

#75

@philgood
Copy link

Any chance this Pull Request can be approved? I have argos scripts that have stopped working.

@ccat3z
Copy link
Contributor Author

ccat3z commented Mar 21, 2019

@philgood Any example?
this commit replace Lang.Class with ES6 class. Is should work on gnome 3.32

@philgood
Copy link

I run a cpu load script using ps and stopped running every 5s. I cloned your fork and is now working well. Thank you @ccat3z

@prurigro
Copy link

This fork fixes everything I've tested except base64 icons. Thanks!

@jakommo jakommo mentioned this pull request Mar 21, 2019
@p-e-w
Copy link
Owner

p-e-w commented Mar 23, 2019

Thanks for looking into this! Two questions:

  1. What about the other uses of Lang.Class? Do they not have to be replaced as well?
  2. Argos is currently compatible with all GNOME Shell versions since 3.14 (well, except the latest one 😏). Will it still work with 3.14 after this change?

@jaromero
Copy link

load_gicon() In lineview.js#58 now takes 5 arguments instead of 4, and the last argument is a scale float (I think these are the relevant docs? How do people even find these things in the first place?).

Locally I've set it to 1.0 and I've got my b64 icons back for now, but I'm not sure what the proper solution for this is.

@ccat3z
Copy link
Contributor Author

ccat3z commented Mar 25, 2019

  1. What about the other uses of Lang.Class? Do they not have to be replaced as well?

Lang.Class classes extends GObject still work well. These class use a metaclass.

For more detail:

  1. https://ptomato.wordpress.com/2017/07/14/inventing-gobject-es6-classes/
  2. https://gitlab.gnome.org/GNOME/gnome-shell/blob/master/HACKING.md#classes
  1. Argos is currently compatible with all GNOME Shell versions since 3.14 (well, except the latest one smirk). Will it still work with 3.14 after this change?

for api change of st_texture_cache_load_gicon maybe not work before 3.32
for ES6 class maybe not work before 3.26
need more test

@ccat3z ccat3z changed the title Use ES6 classes (support gnome 3.32) Support gnome 3.32 Mar 25, 2019
@zeten30
Copy link

zeten30 commented Apr 4, 2019

I can confirm that it works in Gnome 3.32. Good job 👍

@cklosowski
Copy link

I can confirm this fixed my issues with having nested menus.

It did actually also fix my base64 encoded images as well. While some display issues exist, I think this PR overall fixes the issues with menus break.

Nice work @ccat3z

@p-e-w
Copy link
Owner

p-e-w commented Apr 7, 2019

Thanks to everyone who has tested this and confirmed it works. Unfortunately, this PR breaks compatibility with all GNOME releases except 3.32, so it cannot be merged in its current form.

We need a solution that works for 3.32 while maintaining compatibility with a reasonable number of older versions. A year ago there were still quite a few people on GNOME 3.14, but supporting only 3.20 and newer would probably be fine.

@zeten30
Copy link

zeten30 commented Apr 8, 2019

Sure, this breaks backwards compatibility. What about starting separate (github) branch/tag and uploading it as new extension ('argos2' for example) to extensions.gnome.org so users can easily pick their desired extension version?

@cklosowski
Copy link

I'm not sure what the 'Shell Version' Dropdown does on the extensions listing, but is that something you could use to deliver a different version of the package depending on what Shell Version the user is on?

@p-e-w
Copy link
Owner

p-e-w commented Apr 14, 2019

To be clear, there will not be an "argos2" (or similar) secondary extension for 3.32, as that would create a maintenance nightmare and be bound to introduce confusion for users.

So there are two options:

  1. Have code that runs on 3.32 while maintaining backwards compatibility (preferred)
  2. Have a way to deliver a different version of the extension for different GNOME Shell versions using the same extension name (as indicated by @cklosowski)

Nothing in the (sparse) documentation provided by GNOME clearly indicates that option 2 is possible, though I would love to be proven wrong here.

The main issue is that for now, the userbase of GNOME versions other than 3.32 still dwarfs that of 3.32 itself. Therefore, any change that degrades the experience of pre-3.32 users in any way is an automatic non-starter.

@cklosowski
Copy link

Maybe @micheleg (developer of Dash to Dock) has an idea how the shell-version information in the metadata.json works for the developers benefit. It appears that the project is using the metadata to handle this.

@ccat3z
Copy link
Contributor Author

ccat3z commented Apr 15, 2019

It seems that old version is avaliable for pre-3.32 users.
v

@p-e-w p-e-w merged commit 9fba582 into p-e-w:master Apr 21, 2019
p-e-w added a commit that referenced this pull request Apr 21, 2019
@p-e-w
Copy link
Owner

p-e-w commented Apr 21, 2019

Indeed, this is what other extension authors seem to be doing as well, so this is good to go. I have merged the PR and submitted an update to extensions.gnome.org.

Thanks again to everyone who helped test this, and of course most of all to @ccat3z for submitting this PR!

@cklosowski
Copy link

Thank you @ccat3z and @p-e-w .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants