Replies: 28 comments 14 replies
-
I see this is by design, https://github.com/GothenburgBitFactory/taskwarrior/releases/tag/v3.0.0 . Still astonishing. Feel free to close as wontfix but I think you will lose users over this kind of thing. Best of luck to your project. |
Beta Was this translation helpful? Give feedback.
-
Same issue. Fortunately, I didn't have a huge task list. Regarding this:
How do you do this? |
Beta Was this translation helpful? Give feedback.
-
Okay, here's what I did. By looking in However, whenever I do |
Beta Was this translation helpful? Give feedback.
-
https://taskwarrior.org/docs/upgrade-3/ https://github.com/GothenburgBitFactory/taskwarrior/blob/v3.0.0/doc/man/task-sync.5.in bgregos/foreground#180 https://github.com/GothenburgBitFactory/taskwarrior/issues/3299 |
Beta Was this translation helpful? Give feedback.
-
Depends on how you installed taskwarrior. I use arch so pacman keeps a copy of every package in So you can do Other package managers may do the same, I am not familiar with them. Worst case scenario build the old version from source |
Beta Was this translation helpful? Give feedback.
-
jfc I've wasted so much time on trying to fix this, and now I find it's by design! 👎 It happened to coincide with another issue with file permissions so I thought that was the cause. This upgrade also totally breaks syncing with WingTask (so far the only non-self-hosted solution I've found for syncing TW - and presumably it would have broken self-hosted solutions too). My 'mistake' was to do a simple pacman upgrade. I don't know if there's a way that users can be warned before upgrading without going to the github of every single package in the upgrade (can be well into the hundreds), something along the lines of 'Warning: if you install this upgrade the app will stop working and you will lose access to your data!'. Going to try downgrading now. |
Beta Was this translation helpful? Give feedback.
-
I'm sorry for your frustration. I just finished debugging a sync issue that resulted in an important task mysteriously disappearing while other tasks continued to sync between I don't have any involvement in any of the downstream distributions that would package Taskwarrior, and I am quite surprised that Pacman blithely upgraded you over a major version bump. In my experience as a user of various distros, typically this is handled either by allowing major versions to be installed side-by-side (e.g., postgres 15 and postgres 16 can both be installed at the same time) or by shipping the major version upgrade in a distro upgrade (so maybe Ubuntu 24.04 has Taskwarrior 3, while the older Ubuntus keep shipping 2.6.2). In fact, homebrew specifically called out this bump although that hasn't been handled yet due to a build error. |
Beta Was this translation helpful? Give feedback.
-
I spent many years managing engineers so let me first say that I totally get the desire to rewrite things from scratch, particularly in Rust. I also want to express my gratitude to the authors of Taskwarrior for their contributions to this project and in general. This is a big project and you all do this as volunteers. Much respect and love. TW3 is not a major revision, it is a new product. It is a breaking change in storage format, sync backend, and many other things in between. One way this could have been more gracefully released is as a new project v1.0 (eg. taskchampion which seems to be a component of the new architecture) with clear guidance on the benefits of moving to the new project with scripts to manage converting existing configs to new configs including automating away some of the hassle of converting the server config which, tbqh is a lot of work with TW2.6. Rather than force all existing users to take a breaking change, invite them into the new project and then put the existing TW2.6 lineage into maintenance mode. This would also be an opportunity to explain the benefits of the new codebase. What do existing TW users get when they convert their task and server config to the new taskchampion (placeholder for lack of a better moniker) world? Taskwarrior is already a community project so it would be quite fair to leave 2.6 issues as wontfix unless community members provide PRs which address them, freeing the authors of the new platform to concentrate their enthusiasm on the new code tree. This breakage is particularly onerous because good productivity tools should be so transparent and immediate that they disappear from a person's workflow. Taskwarrior was one such tool. I only started using TW a couple of months ago and one of the things I had enjoyed about it is that the commands are simple and run fast on any of my machines even the super old ones. It had successfully 'disappeared' for me up until 3.0. The fact that it reappeared so vividly and so demandingly of my time to go and take on a new project to spin up on the new workflow was quite unwelcome. I'm quite certain I could 1) maintain my own fork of 2.6 and then handle any issues that come up by patching the C++ myself, 2) port my tasks and server to the new workflow, etc., but I won't. I'm too busy and I differ too far from the philophy of this project given its willingness to impose this level of change on its users. I've put my task list into a vimwiki until I can find a replacement. If the project decides to revert this project to the 2.6 code fork and create a new separate project per my completely unsolicited advice above, I would be quite grateful and would go back to just working with TW for the next months or years until I found the time to take a look at the new project. It will be a wildly fascinating social experiment to see how many people go through the work to convert all of their tasks into the new world order and persist using the new and improved Taskwarrior. As I said in an earlier comment, I think you'll lose users over this. It violates the principle of least surprise which I hope they still teach to young programmers. It was beaten into my head by my mentors, for whom I remain grateful. |
Beta Was this translation helpful? Give feedback.
-
One other piece of data that I didn't include in my previous comment: like @imran-iq and maybe some of the others, I got tw3 via a pacman upgrade on Arch. One way this issue could potentially be addressed is to change the way tw is released on Arch specifically. For example, it could be split into taskwarrior2 and taskwarrior3 packages, allowing people to opt in to the 3.0 lineage when they want to rather than automatically. Python did this on arch for many years (maybe still) to allow people to run older programs and then slowly opt in to the new world, or even run both revisions in parallel for a while. If you wanted to be really slick, you could even create a way for the old sync server to sync with the new sync server which could possibly reduce the friction along the migration path. Again, I acknowledge that y'all do this as volunteers so I'm not demanding anything there, just throwing out some ideas. |
Beta Was this translation helpful? Give feedback.
-
I think this highlights the somewhat paradoxical wall between satisfied users and developers. The happiest users will never give any feedback and are thus invisible to developers and unrepresented in decision-making. Anyone who becomes a developer of OSS productivity tools does so to fix their dissatisfaction with said tooling. On the other hand, satisfied users are blind to the technical debt that their tooling rests on. If they were charged with addressing this debt they would likely be more open to change. |
Beta Was this translation helpful? Give feedback.
-
To put it more concretely, the decision likely would have been different if someone with your position had been a participant. But your position might have been different if you had the perspective of a maintainer. |
Beta Was this translation helpful? Give feedback.
-
I would have thought my response convinced you of my empathy for the plight of the maintainers. I get the desire to address big structural bugs with rewrites. I also get the desire to enter into the world of open source to solve a category of issue that isn't solved to one's satisfaction in any of the existing offerings. Part of why I weighed in with my lengthy comment above is precisely because I absolutely understand how these things happen. I've seen it in many large and small ways in my roles as a leader in engineering teams. If I weren't so busy, I might even join this project to help do some of the things I propose. For what it's worth, I'm working on the Arch side to see if we can split the packages per my previous comment re: task2/task3. But thank you for your comment because I do think that we are speaking about issues of software development philosophy in general and not just this change specifically. You rightly point out some of the tradeoffs in this tension between dissatisfied end users and enthusiastic maintainers. |
Beta Was this translation helpful? Give feedback.
-
I didn't mean to accuse you of lack of empathy. I'm more regretting that it seems inherently impossible for a more conservative position such as yours to be represented before breaking your setup. |
Beta Was this translation helpful? Give feedback.
-
For what it's worth: most of my systems are running on Manjaro, and, being more actively managed with respect to upgrades, tw3 was not even available from any of its repos. So I had to get the tar file from the arch package repo and install manually. In my case, I was fortunate enough to have noticed the instructions for updating before I did so. When I did a full update on the one machine that I have running Arch, I was really surprised, as expressed by others above, that it upgraded to tw3. I immediately thought about how many users could get a big surprise. It makes sense to me that the Taskwarrior team can't really control how downstream packagers distribute updated packages. That said, the one suggestion I might offer is that tw3 could detect when the sql lite file is absent from the data directory and issue an error message to the effect that the data need to be exported in tw2 and reimported under tw3. My guess is that many users are going to start running into this. While this approach does not address the entire problem, at the very least it would help users understand that they need to downgrade to tw2 and either stay there somehow or export and upgrade and import. Thanks for listening. |
Beta Was this translation helpful? Give feedback.
-
See #3321. |
Beta Was this translation helpful? Give feedback.
-
Thank you for your comment. I respectfully disagree that there is an inherent impossibility between breaking changes and least surprise. Like I said in my long comment above, I view the delta between 2.6 and 3.0 to be more than a major revision. There are many ways to take both the conservative approach and releasing the overhauled version. Two of which I've also outlined above, namely, consider this a new product or release parallel versions so people can opt in to the overhauled version on their own schedule rather than on the project's schedule. |
Beta Was this translation helpful? Give feedback.
-
https://gitlab.archlinux.org/archlinux/packaging/packages/task/-/issues/1 |
Beta Was this translation helpful? Give feedback.
-
Yeah this is more of a ball dropping on arch's part unfortunately. Usually they have a news update for breaking changes like: https://archlinux.org/news/budgie-desktop-1072-6-update-requires-manual-intervention/ but it looks like it was missed this time around. (Thank you to @kensmith for following through on that front). Just as a more general note though. I do get the frustration around breaking changes, however lets all remember, as per the licence of this software:
Let's not build up entitlement on a free product that was built and shared on nothing but goodwill of the maintainers. It is a good way to burn out maintainers |
Beta Was this translation helpful? Give feedback.
-
As I said earlier in this thread, I appreciate the frustration (and have experienced similar frustration with other TW breakage), and I'm sorry for that. I appreciate the empathetic comments! To the point of this being a new project, there's some additional background on how the decision not to fork was made here. Availability of maintainers' time was a factor in that decision. No decision is perfect, and others may have made a different decision, especially in different circumstances. But please know that we did take some time to think about this one. Two data points to the "rewrite it in rust" comment. The goal here was to build a reliable, secure implementation of the task DB, to replace the existing ad-hoc, buggy and insecure implementation. Rust was a good choice for this work, but was not the motivating factor. Second, there are no plans to rewrite the remainder of Taskwarrior in Rust. If someone would like to maintain the 2.x series going forward, please get in touch. I don't, personally, have the capacity to do so. On a procedural note, I'm going to convert this from an issue to a discussion as I think that better represents what's going on here. |
Beta Was this translation helpful? Give feedback.
-
I just want to throw my €0.02 here... No doubt, it is frustrating when updating of some package does break its normal/expected behaviour... However, if taskwarrior is an important package in someone's productivity workflow, then I assume it is normal to check, from time to time , what is going on with its development. 3.0 released was planned may years ago and I was constantly monitoring what is going on. Frankly, I was alwyas expecting that 3.0 is going to solve TW's recurring problems since the release was planned as "recurrence overhaul". But, the development was stalled and I'm very happy that @djmitche stepped up and infused fresh energy into almost dead project. "Recurrence overhaul" is still not there, but I'm sure that 3.0 is providing a solid foundation for further development. Moreover, current 3.0 release did not happen out of thin air and it was reported that it requires careful migration which is documented. Same thing in regard to taskserver... So:
Considering all those points, one could easily avoid "Upgrading to 3.0 broke everything" scenario or easily revert from the last backup holding 2.6.2 data. I'm well aware of the 3.0 release and all the consequences of 2.6.2 --> 3.0 upgrade, but I still wait for my distro (openSUSE Tumbleweed) to update the package... If you didn't pay attention to any of the above-mentioned three points, you simply are not entitled to blame TW developers for selflessly using their spare time to work on the application and giving it to us freely. Sincerely, |
Beta Was this translation helpful? Give feedback.
-
I'll just take advantage of the attention on this topic and say, if anyone has some time available and can help with any of the most pressing 3.0 bugs, I'd really appreciate it. You can find the list here. |
Beta Was this translation helpful? Give feedback.
-
FWIW, those who use Arch Linux can now find the If bugfixes will be provided for |
Beta Was this translation helpful? Give feedback.
-
First off, congratulations to the developers of TaskWarrior with the 3 release, but which also means the end of the journey with TW for me. I was one of the people who was surprised that in my package manager (Homebrew) to see a new version of TW only to be confronted with not being able to open my tasks any more. Sadly, Homebrew doesn't offer much of downgrading. And no, Homebrew did not show any sign or mention of it being a breaking change. I rather think I could compile the source of the latest 2.x version, but to be honest I don't think I will put in the time. 3.0.0 doesn't offer what I still think to be the biggest issue with TW: recurrence. For me the sync was never a problem as there are many other ways to sync plain text files, I use SyncThing and Git (which also gives me nice version control). Also, the move to a database breaks all my (small) scripts that I've built over the years as they depend on it being text files. I seem to remember though that in the past there was mention of it being up to the user whether to switch to a database?! But perhaps I'm mistaken… I wish the developers good luck with further developments, but alas for me, there doesn't seem to be much future in continuing with TW. With regards, Angelo Machils |
Beta Was this translation helpful? Give feedback.
-
That was/is still my sour point regarding TW and I was also hoping to see “recurrence overhaul” in 3.0... My distro (openSUSE Tumbleweed) is still on 2.6.2, so didn't have an opportunity to test 3.0. Due to recurrence, I've tried several other applications, but TW is the most productive for me, but recurrence-wise I can recommend trying Etm which is practically capable to specifying whatever you like. |
Beta Was this translation helpful? Give feedback.
-
My TW broke after I upgraded it to v3 with homebrew on MacOS. I managed to export data by first installing v2.6.2 on VPS running Ubuntu with |
Beta Was this translation helpful? Give feedback.
-
I just did submit some tickets or other form of communication what is expected by "proper recurring support".
Unfortunately, my C++ skills are pretty rusty (pun intended) and neither enough time to dive into Rust. My (research) plate is simply too full to be able to contribute in code. 😢 |
Beta Was this translation helpful? Give feedback.
-
Hi, i just had a small scare seeing all my tasks vanished after (unknowingly) upgrading from 2.6.2 to 3.0.0. I see that this is expected and documented behavior but considering the nice The 3.x versions should at least be able to read and convert from the old format transparently. All is fine now since i just locked the TW version in my package manager down - for now. This situation is just deeply disappointing because i always used TW and its ---Rant over |
Beta Was this translation helpful? Give feedback.
-
Good to hear that this project is finally migrating to sqlite! Have always thought it's way better for future extensions and integrations. The only thing that makes me sad is sync changes: I have found a promising ansible role for setting up a taskwarrior just a few days ago!.. Hope, we as community will develop new ways to easily deploy personal task server. |
Beta Was this translation helpful? Give feedback.
-
Upgrading from 2.6 to 3.0 broke everything in my taskwarrior setup. I'm self hosting taskd and syncing across multiple Linux machines and Android Foreground. Until upgrading, everything was great.
task list
no longer shows any tasks. When I look in $TASKDIR/pending.data, the tasks are all still there. Ditto for /var/lib/taskd/orgs//tx.data. Everything is still theretask sync
yields "No sync.* settings are configured." This is coming fromtaskwarrior/src/commands/CmdSync.cpp
Line 91 in 3e41fb6
sync.server.origin
etc.I barely have the enthusiasm to unbreak my configuration by trying to figure out the new config to make sync and task listing work again. I'm astonished that this breaking change was released without backward compatibility. I'm likely going to abandon Taskwarrior but in case you want to try to repro my case, here is a redacted .taskrc.
Beta Was this translation helpful? Give feedback.
All reactions