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

Decommission/deactivate broken plugins and backends, merge critical features into core #222

Closed
16 of 17 tasks
nekohayo opened this issue Dec 11, 2019 · 12 comments
Closed
16 of 17 tasks
Assignees
Labels
low-hanging-fruit "Easy picks" suitable for new contributors to tackle maintainability Automated tests suite, tooling, refactoring, or anything that makes it easier for developers plugins Plugins and extra backends priority:critical reproducible-in-git Issues that affect the current dev version

Comments

@nekohayo
Copy link
Member

nekohayo commented Dec 11, 2019

Most of the plugins in the git version are broken. Here are my opinions on what we should do with them to be able to release 0.4.

Deactivate (for 0.4)

...and maybe kill/remove completely if nobody shows up to resurrect them within a year after the release (I'm thinking we could "give a chance" to the community to bring them back to life, but we need to very clearly indicate in the README and the affected plugins/backends' code that these require a new maintainer and may otherwise get deleted in the future if nobody steps up to do it).

Plugins of questionable value in 2019:

  • Bugzilla
  • Geolocalized Tasks
  • Notification area

Backends to decommission (they would need new maintainers, because chasing external APIs is going to be a never-ending crapshoot):

  • Evolution
  • GNote
  • Launchpad
  • Mantis
  • RTM (Remember the Milk)
  • Hamster Time Tracker Integration (though it seems the project is resurrecting as we speak, so see HELP WANTED: resurrect the Hamster plugin #114)
  • Gnote
  • Tomboy (though it seems the "Tomboy NG" project is resurrecting as we speak)

I guess the rest can be kept if it works. And if any of those above are working and in good shape, then let's keep them I guess.

Try fixing for 0.4-0.5

Attempt simple bugfixing, otherwise deactivate for 0.4 if it's too broken:

Already works

  • None

Turn into a core feature

  • Not Today: "technically a core feature hidden in a right click menu, the plugin just added a button in the toolbar." — done as part of A better/faster task deferring feature #244
  • Closed tasks remover (bonus points if you can make it write to disk only once, not on every operation)
@nekohayo nekohayo added low-hanging-fruit "Easy picks" suitable for new contributors to tackle priority:critical reproducible-in-git Issues that affect the current dev version labels Dec 11, 2019
@nekohayo nekohayo added this to the 0.4 "Work of love" milestone Dec 11, 2019
@nekohayo nekohayo changed the title Decommission/deactivate broken plugins, merge critical features into core Decommission/deactivate broken plugins and backends, merge critical features into core Dec 12, 2019
@vjcalel
Copy link

vjcalel commented Dec 12, 2019

ATM, none of the plugins works and also calendar needs to be ported to python3.

@diegogangl
Copy link
Contributor

Tomboy and Hamster are going through a kind of rebirth like gtg, so they will probably be very different in the end.

Notification area throws an error but sorta works? That said this is an app that has Gnome in the name, I don't think it's part of the core target anymore :)

Untouched tasks references a submenu which doesn't exist anymore, so it fails pretty hard.
Urgency color works fine AFAIK

Not Today is technically a core feature hidden in a right click menu, the plugin just added a button in the toolbar.

Export to email throws an error when you try to open the editor. It wants to insert a button in a toolbar

Are geolocalized tasks useful?

Maybe they could be moved to a separate repo while they wait someone to adopt them, instead of being shipped disabled/hidden.

@nekohayo
Copy link
Member Author

Thanks for your investigation, updated the description above with it a little...

I was not aware that Hamster and "Tomboy NG" are resurrecting and active again, I guess that might be a reason to keep the plugins around, maybe simply deactivated/blacklisted, with a note for potential contributors.

I'm not sure if it's better to move them to a separate repository as you suggest, or to just git mv them to a "broken_needs_new_maintainer" subfolder or something... simpler and more obvious?
I don't know what geolocalized tasks was used for, I doubt it's terribly useful (especially as many GTD folks tend to have tags for "contexts", like @home, @work, @errands, etc.

I'd tend to agree that the notification area feature is from the previous millenium and a bit pointless to have today (people on some desktop environments like XFCE or Mate will probably complain about it, though in those cases I'd tend to think "what's wrong with having it sit in the taskbar's window list or in your mac-style dock?")

For the rest, I guess if we can "trivially" fix them to match the changed GTK3 UI that has the menubutton instead of the menubar, and the headerbar instead of a toolbar, it would be worth attempting to do so for 0.4 or 0.5.

@diegogangl
Copy link
Contributor

I'm not sure if it's better to move them to a separate repository as you suggest, or to just git mv them to a "broken_needs_new_maintainer" subfolder or something... simpler and more obvious?

Yeah, that sounds much easier. We can add txt to explain the situation there too.

I don't know what geolocalized tasks was used for, I doubt it's terribly useful (especially as many GTD folks tend to have tags for "contexts", like @home, @work, @errands, etc.

Maybe if you are a digital nomad and have tasks to do in specific places? I have no idea either, we should probably move it to the needs_maintainer folder and see if someone opens a request.

For the rest, I guess if we can "trivially" fix them to match the changed GTK3 UI that has the menubutton instead of the menubar, and the headerbar instead of a toolbar, it would be worth attempting to do so for 0.4 or 0.5.

The three that are in "try fixing" could go in the main menu. What did you have in mind for "Not today"?

@ploum
Copy link
Contributor

ploum commented Jan 14, 2020 via email

@diegogangl
Copy link
Contributor

Should we close the PRs related to the disabled plugins?

diegogangl added a commit that referenced this issue Jan 17, 2020
diegogangl added a commit that referenced this issue Jan 17, 2020
diegogangl added a commit that referenced this issue Jan 18, 2020
@diegogangl
Copy link
Contributor

I've done the decomission-ing in the plugins_unmaintained branch and I've fixed the plugin API, Send task via email and Untouched tasks in the fix_plugins branch. I also updated the dialog a bit. We'll have to update the API docs at some point.

  • I removed all the toolbar functions since we don't have one anymore
  • The main way of adding functionality right now is add_menu_item. It can automatically add a widget to the task editor or browser window (depending on what you pass to __init__)
  • I also removed icons from the dialog. None of the official plugins had icons and I doubt others will bother adding one.

I've also taken a look at export and print. Unfortunately this won't be a trivial fix, some of the (many) dependencies have gone stale. I'm on fedora and I can't get pdftk. There's also the issue of API changes for all the others. I'm more inclined to decomission it too for now TBH, since this might need a deep rewrite with modern dependencies (or not, maybe some stuff can be done without)

diegogangl added a commit that referenced this issue Feb 1, 2020
diegogangl added a commit that referenced this issue Feb 1, 2020
diegogangl added a commit that referenced this issue Feb 1, 2020
@diegogangl
Copy link
Contributor

Task reaper is now in core and the old plugin is no more 🎉

@nekohayo
Copy link
Member Author

On my smoke-testing setup (Ubuntu 20.04) the "Export and print" plugin says it's missing these python modules: cheetah, pdflatex, pdftk, pdfjam.

  • On Ubuntu 20.04, only python3-cheetah exists, but the others are less "obvious" to find. The "pdftk" package is deprecated in debian, replaced by pdftk-java; pdfjam and pdflatex are mentioned in the description of the texlive-extra-utils package.
  • On Fedora 31, python3-cheetah also exists, but I couldn't find pdflatex (there is python3-pylatex though, not sure if that's the same thing), nor pdftk or py*pdfjam (there is texlive-pdfjam though)

Installing python3-cheetah, pdftk-java and texlive-extra-utils, the plugin no longer complains about missing dependencies and can be enabled. However, when you try to enable it, you get this traceback (most recent call last):

  File "GTG/gtk/plugins.py", line 232, in on_plugin_toggle
    self.pengine.activate_plugins([plugin])
  File "GTG/core/plugins/engine.py", line 219, in activate_plugins
    plugin.instance.activate(api)
  File "GTG/plugins/export/export.py", line 104, in activate
    self._preferences_apply()
  File "GTG/plugins/export/export.py", line 391, in _preferences_apply
    self.plugin_api.add_toolbar_item(self.tb_button)
AttributeError: 'PluginAPI' object has no attribute 'add_toolbar_item'

@diegogangl
Copy link
Contributor

Removed all the toolbar mentions from the export plugin, could you test again and see if it works? (I can't get the dependencies)

@nekohayo
Copy link
Member Author

nekohayo commented May 7, 2020

It almost works... the menu entry is there but not selectable nor insensitive, so I can't actually call the export action to see if it fully works.

Also, I think it might be worth eliminating the single configuration option of that plugin (show the Export menu entry or not) because it makes no sense to have a config option just for that anymore (vs toggling the plugin on/off); but that's a nitpick and only "if it's trivial to make that change", shouldn't be a blocker.

@nekohayo nekohayo added the plugins Plugins and extra backends label May 12, 2020
@nekohayo
Copy link
Member Author

I see now that there is issue #299 specifically about the Export plugin.

Since neither you nor I have been able to fully test the existing plugin but it seems "mostly harmless" as it is (doesn't cause tracebacks or crashes etc.), and since I doubt you'll be fixing what I said in the comment above in the near future, we can just put this issue to rest, say this situation is "good enough" and close this ticket; I think it's pretty much "mission accomplished" wrt the plugin yaks to shave for 0.4!

johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
johnnybubonic pushed a commit to johnnybubonic/gtg that referenced this issue Jul 20, 2020
@nekohayo nekohayo added the maintainability Automated tests suite, tooling, refactoring, or anything that makes it easier for developers label Feb 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
low-hanging-fruit "Easy picks" suitable for new contributors to tackle maintainability Automated tests suite, tooling, refactoring, or anything that makes it easier for developers plugins Plugins and extra backends priority:critical reproducible-in-git Issues that affect the current dev version
Projects
None yet
Development

No branches or pull requests

4 participants