-
Notifications
You must be signed in to change notification settings - Fork 2
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
[Release] Follow the GNOME Shell Extensions Review Guidelines - Take 2 #15
Comments
Development is currently paralyzed by exams. For those who cannot compile the project, here's an already prepared file in the meantime. Install it with gnome-extensions install [email protected] |
Gonna attempt to pass a review once again now that everything has been checked, good luck to me. 😎 |
Fixed by 8fd68cb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
General Guidelines
enable()
is calledenable()
to create objects, connect signals and add main loop sourcesdisable()
to cleanup anything done inenable()
General Tips
Rules
Only use initialization for static resources
Extensions MUST NOT create any objects, connect any signals, add any main loop sources or modify GNOME Shell during initialization.
Destroy all objects
Any objects or widgets created by an extension MUST be destroyed in
disable()
.Disconnect all signals
Any signal connections made by an extension MUST be disconnected in
disable()
.Remove main loop sources(N.A)Any main loop sources created MUST be removed indisable()
.Do not use deprecated modules
Extensions MUST NOT import deprecated modules.
Do not import GTK libraries in GNOME Shell
Extensions MUST NOT import
Gdk
,Gtk
orAdw
in the GNOME Shell process.Do not import GNOME Shell libraries in Preferences
Extensions MUST NOT import
Clutter
,Meta
,St
orShell
in the preferences process.Code must not be obfuscated
Extension code MUST be readable and reviewable JavaScript.
(Not sure how that applies to TypeScript code. Do I need to preserve comments ?)
No excessive logging
Extension MUST NOT print excessively to the log. The log should only be used for important messages and errors.
Scripts and Binaries
Use of external scripts and binaries is strongly discouraged.
In Noiseclapper, this is unavoidable. I have yet to find an equivalent I can use in JavaScript directly for Python's
socket
library.However, I believe my usage should be tolerated, especially since the removal of SoundcoreLifeAPI months ago.
Privileged Subprocess must not be user-writable(N.A)Extensions must be functional
Extensions are reviewed, but not always tested for functionality so an extension MAY be approved with broken functionality or inoperable preferences window.
metadata.json must be well-formed
The metadata.json file that ships with every extension should be well-formed and accurately reflect the extension.
Session Modes(N.A)GSettings Schemas
For extensions that include a GSettings Schema:
Licensing
Copyrights and trademarks
(Not sure how that applies when the name Soundcore is simply used in the description to... well, say the project is for Soundcore headphones. Should be fine with the disclaimer I put in the settings window.)
Recommendations
The text was updated successfully, but these errors were encountered: