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) Active
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

Previous Reviews on this Version

fmuellner active