Review of "Clockify Time Tracker" version 1

Details Page Preview

Time tracking extension that integrates with the Clockify API, mimicking the Hamster time tracker UX.

Extension Homepage
https://github.com/nextsux/clockify-gnome-shell-extension

No comments.

FAQ

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.

EGO025 warning

unnecessary build and translation artifacts should not be shipped

Package contains files that often should not be shipped for review.

Don't include unnecessary files

  • package-lock.json
    package-lock.json
  • .gitignore
    .gitignore
  • Makefile
    Makefile
  • locale/es/LC_MESSAGES/clockify-tracker.po
    locale/es/LC_MESSAGES/clockify-tracker.po
  • locale/fr/LC_MESSAGES/clockify-tracker.po
    locale/fr/LC_MESSAGES/clockify-tracker.po
  • locale/pl/LC_MESSAGES/clockify-tracker.po
    locale/pl/LC_MESSAGES/clockify-tracker.po
  • locale/zh_CN/LC_MESSAGES/clockify-tracker.po
    locale/zh_CN/LC_MESSAGES/clockify-tracker.po
  • locale/nl/LC_MESSAGES/clockify-tracker.po
    locale/nl/LC_MESSAGES/clockify-tracker.po
  • locale/cs/LC_MESSAGES/clockify-tracker.po
    locale/cs/LC_MESSAGES/clockify-tracker.po
  • locale/tr/LC_MESSAGES/clockify-tracker.po
    locale/tr/LC_MESSAGES/clockify-tracker.po

EGO025 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

EGO026 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • eslint.config.js

EGO015 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:128
    this.clutter_text.connect('key-release-event', this._onKeyRelease.bind(this))
  • extension.js:362
            this._activityEntry.clutter_text.connect('key-press-event', (_actor, event) => {
                const sym = event.get_key_symbol();
                if (sym === Clutter.KEY_Return || sym === Clutter.KEY_KP_Enter) {
                    this._onEntryActivated();
                    return Clutter.EVENT_STOP;
    
  • extension.js:319
            this.menu.connect('open-state-changed', (_menu, open) => {
                if (open) {
                    this._onMenuOpen();
                } else {
                    global.stage.set_key_focus(null);
                }
            })

EGO016 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:410
            this._errorTimeout = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, () => {
                this._errorLabel.hide();
                this._errorTimeout = null;
                return GLib.SOURCE_REMOVE;
            })
  • extension.js:427
            this._focusTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 20, () => {
                this._focusTimeout = null;
                global.stage.set_key_focus(this._activityEntry);
                return GLib.SOURCE_REMOVE;
            })
  • extension.js:328
            this._refreshTimeout = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 60, () => {
                this._loadCurrentEntry();
                return GLib.SOURCE_CONTINUE;
            })
  • extension.js:579
                this._scrollTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 0, () => {
                    this._scrollTimeout = null;
                    const adj = this._todaysWidget.vadjustment;
                    if (adj) adj.value = adj.upper;
                    return GLib.SOURCE_REMOVE;
                })

EGO037 warning

Soup.Session instances should be aborted during cleanup

Soup.Session instances should be aborted during cleanup.

Soup.Session.abort

  • extension.js:278
    this._session       = new Soup.Session()

All Versions

Version Status
3 Active
2 Rejected
1 Rejected

Previous Reviews on this Version

nextsux auto- rejected
Auto-rejected because of new version 2 was uploaded