getting-things-gnome / gtg

Getting Things GNOME! trunk
https://wiki.gnome.org/Apps/GTG
GNU General Public License v3.0
559 stars 164 forks source link

Resurrecting this project #210

Closed ghost closed 4 years ago

Nhorning commented 7 years ago

I'd also like to know, since I seem to have built my whole life around it. Is anybody here to at least merge pull requests?

digsig commented 6 years ago

since I seem to have built my whole life around it ...

bump! we really need some committed and talented people here!

q2dg commented 6 years ago

Well...http://gtgnome.net points me to http://gtgnome.net/cgi-sys/suspendedpage.cgi . Bad vibrations

msnjuegos commented 6 years ago

Any answer?

FranklinYu commented 6 years ago

I think this project is dead. Use Gnome To Do instead.

Nhorning commented 5 years ago

Can any previous GTG users let me know if Gnome To Do does the job for them? I've been learning python for the last year, but stopped using GTG without a replacement and my life unraveled.

I'm back to GTG until I figure out something to switch to, but it occurred to me I could possibly take it on as a pet project. Thoughts?

XioNoX commented 5 years ago

Gnome To Do doesn't fit the bill for me, and I can't find any suitable replacements. So anyone bringing GTG to life would be greatly appreciated.

Nhorning commented 5 years ago

Well @jakubbrindza, if I decided to do that, what would be the first steps?

nekohayo commented 5 years ago

I've been using GTG for ten years, and I'm stuck on an old insecure distro because of the lack of new releases; the lack of maintainers working on GTG (which looks to me like a collective burn-out from the "development hell" that was 2013-2015, and probably everybody on the team moved on to further their individual careers) and the bitrotting dependencies means some distros are beginning to drop it from their packaging.

So here's my question to @izidormatusov : can you tell us what state is GTG in, code-wise/development-wise? More importantly, what is preventing it from being in a releaseable state? What are the steps that a community of interested individuals could do to resurrect this project and finish the job to start releasing again?

Nhorning commented 5 years ago

@nekohayo Thanks!

nekohayo commented 5 years ago

I got a GNOME contributor (Bilal) to make a Flatpak package of GTG: https://github.com/bilelmoussaoui/gtg-flatpak

He was able to package both the git version and the 0.3.1 release.

Then we can look at resurrecting this project and getting a release out of the door. Anyone here still interested in contributing code? I think I'll also do a survey elsewhere to see the potential for this and raise some awareness...

Nhorning commented 5 years ago

Well, I'm pleased to report that GTG 0.3.1 was still in the default repository after migrating to Ubuntu 18.04.3 LTS on my new system. So, there's that.

nekohayo commented 5 years ago

For what it's worth, I've designed and published a survey to evaluate if there would be people interested in contributing code or hiring people to maintain it somehow, feel free to share the news around you: https://fortintam.com/blog/survey-on-making-gtg-sustainable/

nekohayo commented 5 years ago

One concern that @ploum had raised was "How is it possible that the git version runs GTK3, wasn't liblarch still GTK 2 and Python 2?", and from what I can see and hear it's actually all ported to GTK 3 and Python 3 already.

From my observations above I haven't noticed anything "fundamentally broken" in the git version, besides the few plugins that traceback because they reference UI elements (like the menubar) that don't exist anymore.

It surprises me that the project was abandoned so close to the finish line back then. I tried getting an opinion of previous maintainers (@jakubbrindza, @parinporecha, @izidormatusov) regarding blockers for a release but couldn't get anything more than what we know above, it seems to me like they don't quite remember what the state of things was. So we may have to just figure it out as we go and hope there aren't naughty "surprises" hidden somewhere. If someone knows/remembers anything more, now is a good time to speak up.

diegogangl commented 5 years ago

I gave the git version a test and found a few things broken:

It surprises me that the project was abandoned so close to the finish line back then. I tried getting an opinion of previous maintainers (@jakubbrindza, @parinporecha, @izidormatusov) regarding blockers for a release but couldn't get anything more than what we know above, it seems to me like they don't quite remember what the state of things was. So we may have to just figure it out as we go and hope there aren't naughty "surprises" hidden somewhere. If someone knows/remembers anything more, now is a good time to speak up.

Maybe there wasn't any big thing. It's a large codebase that had two big transitions, maybe they just burnt out. Performance could be the naughty surprise though.

ploum commented 5 years ago

@nekohayo : please give me commit rights to gtg and liblarch. In the meantime, I let you triage the 93 tickets opened.

As the goal is to make a release by fixing bugs, no feature requests will be accepted so either close them or mark them accordingly ;-)

ploum commented 5 years ago

could you also please review the merge requests to see if there's anything worth merging?

diegogangl commented 5 years ago

Tested a little more and found some more bugs:

nekohayo commented 5 years ago

@ploum normally should have commit (and admin) rights to both of those subprojects, and even the global project I think. Let me know if that's still not the case, as I've now tried messing around with the "teams" permissions a bit.

@diegogangl thanks for finding those issues, if you intend to fix them yourself go right ahead, or if that's not on your plate then it might be a good idea for you to file issues for these (I guess we'll need to figure out tags and milestones arrangements to indicate what affects the git version and what is a blocker or not... will try to set that up sometime, if it's not already in place)

nekohayo commented 5 years ago

And to answer @ploum's question, to my surprise there are over 15 pull requests in https://github.com/getting-things-gnome/gtg/pulls and https://github.com/getting-things-gnome/liblarch but I have absolutely no idea if they're any good or relevant today. If you or others have ideas on how to filter out what's merge-worthy vs stale, I don't think I'll be knowledgeable enough to handle the code merge requests right now, so (collective?) help would be needed on that front, perhaps collective wisdom can determine what goes and what doesn't.

Then another thing that needs to be done is a big amount of bug triaging and contributor documentation updating (I'll probably file a ticket with, for example, all the places referencing the old dead website), which I guess I'll tackle myself as my contribution at least.

diegogangl commented 5 years ago

@nekohayo Yeah, I will make some issues for them.

I tried to fix the Input methods bug but couldn't figure out what's wrong. It's not a widget issue, if I add another GtkEntry it will also not take IMs. It's more like an application issue. But it's weird because Gtk should work with IMs out of the box.

I also took a look around the editor code. There's no code at all for bold and italics, so that would have to be implemented in the text entry widget first. Undo/Redo are missing too. Also, there's no code to remove tags. The calendar popovers are missing some work too:

    '''
    TODO(jakubbrindza): Add the functionality to the existing calendar widgets.
    This will require ammending and re-factoring the entire calendar.py.
    '''

My 2c on MRs

Bugzilla and Hamster are kind of dead. GTGOnline probably too (is someone running this?). I'm not sure those MRs are useful anymore.

The calendar plugin (#42) sounds cool but it's a major feature that's going to delay the release. Same for geolocalized tasks (#13). The bugfix MRs should be quick and easy to check out.

The one in liblarch can be merged right away. It's just a formality pygtk started requiring at some point.

ploum commented 5 years ago

I agree that every kind of backend is mostly dead but the XML one. Those can be safely rejected with a mention "please reapply".

diegogangl commented 4 years ago

I agree that every kind of backend is mostly dead but the XML one.

Master currently includes RTM and Gnote/Tomboy, maybe those should be removed too?

Is there any active channel for gtg (IRC or Matrix)? I'm trying to fix a search bug but I'm having trouble clearing the tasks filter, so I figure I could ask someone who knows the code :)

nekohayo commented 4 years ago

I also took a look around the editor code. There's no code at all for bold and italics, so that would have to be implemented in the text entry widget first. Undo/Redo are missing too.

I don't remember seeing rich text formatting and undo/redo as existing features in previous releases, so I would tend to punt this to a "would be nice, may happen if someone feels strongly enough to implement those" status. I'm not actually sure rich text formatting is worth the trouble (never felt the need as a user, personally), and wouldn't it introduce a whole new level of complexity in the file format and parsing and whatnot?

Also, there's no code to remove tags.

Not even the Right-click -> "Modify Tags..." feature that was there in 0.3.1? Or you mean "Deleting a tag everywhere, from the sidebar" (which wasn't there in 0.3.1 so I'd say that's a feature request, therefore not 0.4-blocking)

— "Bugzilla and Hamster are kind of dead. GTGOnline probably too (is someone running this?). I'm not sure those MRs are useful anymore." — "I agree that every kind of backend is mostly dead but the XML one. Those can be safely rejected with a mention "please reapply"." — "Master currently includes RTM and Gnote/Tomboy, maybe those should be removed too?"

I have no opinions on backends personally, as long as the app runs and the local backend works, that's already something :) is there such a thing as marking merge requests as stale? What about the code, should it be simply commented out with a mention that it needs some new maintainer for those parts?

Is there any active channel for gtg (IRC or Matrix)? I'm trying to fix a search bug but I'm having trouble clearing the tasks filter, so I figure I could ask someone who knows the code :)

For what it's worth I found the "#gtg" channel on irc.gnome.org, it had only one person in it, so I joined and I'm sitting there on that channel too; normally I will be connected 24/7 but cannot guarantee instantaneous turnaround as I may not be in front of the app/computer, but at least maybe we can coordinate faster this way. I don't know the GTG codebase, but I guess I can try to help however I can with a secondary opinion, if that's useful.

BTW apologies if anyone is not seeing much movement from my part for now, I'm juggling a bunch of things, but my hope is to gradually bring our current efforts to the attention of potentially interested developers from the survey. I'm wondering if the IRC channel could be useful for this, and/or voice chats "hacking sessions" sometimes.

diegogangl commented 4 years ago

I'm not actually sure rich text formatting is worth the trouble (never felt the need as a user, personally), and wouldn't it introduce a whole new level of complexity in the file format and parsing and whatnot?

I think it uses Gtk's tag system, which is already used to style tags and titles. There's also the pango markup code which works out of the box if you add a <b> or something. But I don't know about getting the selection, etc.

Not even the Right-click -> "Modify Tags..." feature that was there in 0.3.1? Or you mean "Deleting a tag everywhere, from the sidebar" (which wasn't there in 0.3.1 so I'd say that's a feature request, therefore not 0.4-blocking)

In the editor, there's a comment mentioning that there should be a way to delete tags.

is there such a thing as marking merge requests as stale?

Maybe close and a label?

What about the code, should it be simply commented out with a mention that it needs some new maintainer for those parts?

I'd just delete it and leave a mention somewhere in the wiki, readme, etc. We are using git so it's easy to go back and get it.

ploum commented 4 years ago

@diegogangl > thanks for your contributions. I took the liberty to merge them without having running them (just reading the code) because I'm not on my work machine and it looks fine, it cannot be worst than it is currently.

I'm not on IRC but would be really happy to help you as much as I can through the code. @nekohayo is our project manager/release manager. So he should handle everything which is not technical. I really hope we will get a 0.4 version released soon and your contributions could make all the difference between never releasing again or resurecting the project.

Nice to have you onboard :-)

diegogangl commented 4 years ago

@ploum Thanks for the confidence :D I could really use a powerful todo/GTD/PKM kind of app, so I'll try my best to help get this going

diegogangl commented 4 years ago

Hey guys, I'm slowly working on the calendars thing (#216) and I was wondering if anyone is really using the fuzzy dates? Or did anyone that used gtg used them before?

Looking at the code they seem sort of random. I'm not sure how useful this would really be in day-to-day usage.

# functions giving absolute dates for fuzzy dates + no date
FUNCS = {
    NOW: datetime.date.today(),
    SOON: datetime.date.today() + datetime.timedelta(15),
    SOMEDAY: datetime.date.max,
    NODATE: datetime.date.max - datetime.timedelta(1),
}
Nhorning commented 4 years ago

Hi Diego,

The now, soon and someday categories come strait out of the "getting things done" book which the software is based on. I definitely use them. Not every action needs a date, and it lets you prioritize things that are due on a near term fixed date over things that generally need to get done.

On Sun, Dec 29, 2019 at 3:35 PM Diego Gangl notifications@github.com wrote:

Hey guys, I'm slowly working on the calendars thing (#216 https://github.com/getting-things-gnome/gtg/issues/216) and I was wondering if anyone is really using the fuzzy dates? Or did anyone that used gtg used them before?

Looking at the code they seem sort of random. I'm not sure how useful this would really be in day-to-day usage.

functions giving absolute dates for fuzzy dates + no dateFUNCS = {

NOW: datetime.date.today(),
SOON: datetime.date.today() + datetime.timedelta(15),
SOMEDAY: datetime.date.max,
NODATE: datetime.date.max - datetime.timedelta(1),

}

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/getting-things-gnome/gtg/issues/210?email_source=notifications&email_token=AAOJCNILVBVX7MSXWU7L4C3Q3EX5LA5CNFSM4DY4HHY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHZK3MY#issuecomment-569552307, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOJCNN42CCY7Q63TBXAWD3Q3EX5LANCNFSM4DY4HHYQ .

diegogangl commented 4 years ago

Hey @Nhorning thanks, I don't think I ever used something like this in other software so I wasn't aware of the workflow. Still feels like there should be a specific view or some way to filter those tasks, rather than just changing the background. Maybe something for future versions

ploum commented 4 years ago

My initial plan was to help @nekohayo to release GTG 0.4. But life is what happens when you have other plans.

Due to a new project, I'm not even able to catch up will all pull requests from @diegogangl.

I suggest then to give commit access to @diegogangl and that both of you try to cooperate to release 0.4. On my side, I will be there to answer questions as much as I can.

What do you think ?

nekohayo commented 4 years ago

[...] was wondering if anyone is really using the fuzzy dates? Or did anyone that used gtg used them before?

For the record, I do use them regularly: now, soon, someday, but more importantly "tomorrow", "monday", "saturday", "samedi", "demain", "jeudi" (yes it works both in English and the user's translated locale, which is great); or even integers like "31". I actually wish there somehow was something between "soon" and "someday" (I don't know what though) and that maybe we had even more formats supported, like "beginning of next month", "in 30 days", "beginning of next year, etc." but those are things that should go into a feature request ticket (if we're getting to that point I guess we're doing really really well).

[...] I suggest then to give commit access to @diegogangl and that both of you try to cooperate to release 0.4. On my side, I will be there to answer questions as much as I can.

I'm fine with that idea if Diego is interested in having a faster turnaround through getting direct commit rights. I don't want to be holding things back as I feel I am late here and merely getting back into the waters myself with unexpected things coming up (for example today I wanted to work on various things to help make the GTG project more attractive to contributors, but got sidetracked by "Oh no, a number of security issues showed up on a bunch of websites I host and I really need to fix this now before it gets worse", urgh :)

diegogangl commented 4 years ago

I actually wish there somehow was something between "soon" and "someday" (I don't know what though)

I started using fuzzy dates shortly after talking about it here, and one I wish we had is "blocked" (for tasks that could be done right away but depend on something else).

[...] I suggest then to give commit access to @diegogangl and that both of you try to cooperate to release 0.4. On my side, I will be there to answer questions as much as I can.

I'm fine with that idea if Diego is interested in having a faster turnaround through getting direct commit rights.

I'd be honored :). Reviews are best, but in this situation I guess pushing onward would be the better option. We'll be fine as long as someone else is testing somewhat regularly.

I don't want to be holding things back as I feel I am late here and merely getting back into the waters myself with unexpected things coming up (for example today I wanted to work on various things to help make the GTG project more attractive to contributors, but got sidetracked by "Oh no, a number of security issues showed up on a bunch of websites I host and I really need to fix this now before it gets worse", urgh :)

Well, it's better to deal with vulnerabilities than their consequences!

nekohayo commented 4 years ago

Alright you should now have "write" (commit/push) rights! I'll try to catch up when I can.

diegogangl commented 4 years ago

Thanks, I'm in. There's one last thing, I can't merge any PRs because the CI is blocking them. The checks stay in pending mode (yellow) and I can't merge either via web or cli. It doesn't look like this is working at all, since it should take seconds to check rather than days and I can't see any recent PRs in Travis:

https://travis-ci.org/getting-things-gnome/gtg/pull_requests

Could you disable CI for now? We can fix it later for 0.5. https://stackoverflow.com/questions/30874853/how-do-you-remove-a-github-repository-for-travis-ci-tests

nekohayo commented 4 years ago

So far I'm actually totally unfamiliar with Travis (or any CI thingies, for that matter) and don't have an account on travis-ci, I'm not sure I could do something even logging in there with my github account. On the other hand, I see in https://github.com/getting-things-gnome/gtg/settings/installations (the "Integrations & Services" setting) that it was @parinporecha that had set it up. From here it seems I can delete entirely the Travis CI integration but I'm not sure that's the safe/correct approach. Maybe Parin or others can suggest/do something on this front?

Otherwise, I think that I can still force the merging of PRs on an ongoing basis even if they don't pass the tests... though of course in theory test-driven development would recommend that the tests always pass or get updated to match the implementation, but I guess we live in an imperfect world and don't have a ton of time & resources for that ;)

diegogangl commented 4 years ago

Yeah, I also don't know anything about CI/automated tests other than seeing it when I send a MR/PR. It looks like you could make it not required through the settings. Check out this guide: https://help.github.com/en/github/administering-a-repository/enabling-required-status-checks

JaneSmith commented 4 years ago

I got a GNOME contributor (Bilal) to make a Flatpak package of GTG: https://github.com/bilelmoussaoui/gtg-flatpak

Would it be possible for somebody to get this up on Flathub? I'd love to use this app (even if it's currently in a semi-broken and buggy state), but I couldn't get the build instructions there to work. I'd love to be able to install it and have it automatically updated just the same as any other app.

diegogangl commented 4 years ago

Hey @JaneSmith, yeah we should try to get it on flathub soon. Or at least have a flatpak available here. That flatpak is the old GTK2 stable version though. What errors are you getting?

nekohayo commented 4 years ago

As per your questions here, I asked Bilal today if there was a particular reason why he hadn't published his flatpak package to Flathub, and there was no particular blocker for that, it would need a little bit of cleanup though, and he would prefer if the project owns it rather than depending on him or flathub maintainers.

If someone is interested in spearheading this and somehow integrating it officially with the GTG project (making it the "One Officially Supported Product Package"), I've summarized my findings in #233 ; this task is up for grabs for anyone reading this.

nekohayo commented 4 years ago

For anyone interested in helping with some "contributors documentation" instead of coding, please have a look at https://github.com/getting-things-gnome/gtg/issues/200#ref-issue-549142086 in which I have made a detailed analysis and plan of what should probably done to make the project less scary/confusing to contribute to. I would welcome help on that front, otherwise I'll have to do it it all "whenever I can find the time to spend a solid day or two on it".

nekohayo commented 4 years ago

Just as an additional tool in the arsenal to bring awareness to the project, I have now registered https://twitter.com/GetThingsGNOME ; it seems like it never had a Twitter account (that I could find). This will be better than nothing ;)

nekohayo commented 4 years ago

We're getting really really close to being able to release 0.4. Help wanted for the release marketing process: https://discourse.gnome.org/t/gtg-0-4-release-coming-very-soon-need-help-with-testing-marketing-release-notes-video/3050

Right now, personally I'm aiming to beat the contributors documentation into shape. But as a low-hanging fruit I've started with writing a whole new list of features and benefits on https://wiki.gnome.org/Apps/GTG (and yes, I did use some humor in there, because what the hell) ; at least now it clearly articulates why I think this app is great from users' perspective.

nekohayo commented 4 years ago

Contributors documentation has now been beaten into shape. Report and explanations here: https://fortintam.com/blog/improving-developer-experience-and-attracting-open-source-project-contributors/

Please test the git version if you haven't already, it seems to be rock solid so far. A blog post will follow soon-ish to ask the wider public to test out the git version as well, and both blog posts would benefit from y'all spreading the news for public awareness.

nekohayo commented 4 years ago

Approaching final stages now. If someone here is reading this and has time this month to help with researching/brainstorming & drafting for my "technical copywriting" efforts to write release notes, please help here: #347

Short of surprise bugs showing up, this will basically be the only thing standing between a pre-release and a final 0.4 release.

nekohayo commented 4 years ago

The 0.4 release is out, yak shaven, mission accomplished: https://fortintam.com/blog/gtg-0-4-released/ Therefore I guess I can close this ticket.

If anyone is reading this, we're always looking for people to join and help out with the next release (for plugins, performance improvements, easy bug fixes, etc.)!