Review of "SimpleWeather" version 50.0.0 (7)

Details Page Preview

A highly configurable weather indicator. Doesn't use GNOME Weather.

Extension Homepage
https://github.com/romanlefler/SimpleWeather

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 6

Shexli found 6 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • autoConfig.js:30
    GLib.file_get_contents("/sys/class/dmi/id/chassis_type")

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • extension.js:174
            this.#sunTimeIcon = new St.Icon({
                icon_name: "daytime-sunset-symbolic",
                style_class: "system-status-icon"
            })
  • extension.js:168
            this.#sunTimeLabel = new St.Label({
                text: "...",
                y_align: Clutter.ActorAlign.CENTER,
                y_expand: true,
                style: "padding-left: 8px;"
            })
  • welcome.js:93
    this.#abort = abort
  • welcome.js:94
    this.#okay = okay
  • welcome.js:161
    this.#okay = okay

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:88
    this.#gsettings = this.getSettings()
  • extension.js:174
            this.#sunTimeIcon = new St.Icon({
                icon_name: "daytime-sunset-symbolic",
                style_class: "system-status-icon"
            })
  • extension.js:168
            this.#sunTimeLabel = new St.Label({
                text: "...",
                y_align: Clutter.ActorAlign.CENTER,
                y_expand: true,
                style: "padding-left: 8px;"
            })
  • welcome.js:93
    this.#abort = abort
  • welcome.js:94
    this.#okay = okay
  • welcome.js:161
    this.#okay = okay

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:192
            indic.menu.connect("open-state-changed", (_, isOpen) => {
                if (isOpen)
                    actor.add_style_class_name("swa-open");
                else
                    actor.remove_style_class_name("swa-open");
            })

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:209
    this.#fetchLoopId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 15 * 60, this.#updateWeather.bind(this))
  • extension.js:78
    this.#waitLayoutId = id

All Versions

Version Status
50.0.0 (7) Unreviewed
49.2.0 (6) Active
49.1.0 (5) Active
49.0.0 (4) Active
48.2.0 (3) Active
48.1.0 (2) Active
48.0.0 (1) Active