Skip to content

Conversation

@crwood
Copy link
Member

@crwood crwood commented Oct 17, 2021

This PR adds preliminary support for the new/standalone "Magic-Folder", presently under development by Least Authority.

Previously, Tahoe-LAFS version 1.14 provided it's own built-in "magic-folder" feature that Gridsync relied heavily upon for Tahoe-LAFS-based file synchronization. This feature, however, was removed in Tahoe-LAFS 1.15 for various reasons (among them, to facilitate Tahoe-LAFS' port to python3 and to support independent development paths and release cadences between the two projects). Gridsync, for better or worse, continued to support "old-magic-folder" and shipped Tahoe-LAFS version 1.14 for over one year after its removal from Tahoe-LAFS, painstakingly backporting patches from upstream Tahoe-LAFS and implementing various workarounds throughout the Gridsync codebase to compensate for various known magic-folder bugs -- bugs which, given magic-folder's removal, would never be fixed in "upstream" Tahoe-LAFS.

Since then, the standalone/new Magic-Folder application has made good initial progress towards fulfilling the original goals of the old "magic-folder" feature in Tahoe-LAFS. Although new-magic-folder not yet reached feature-parity with old-magic-folder (insofar as it chiefly lacks, e.g., folder-invites, filesystem event monitoring, and progress indicators for upload/download operations), such features are either in-the-works or planned for the near future. Most importantly, perhaps, is that new-magic-folder has a future, while old-magic-folder certainly does not. Accordingly, as indicated by the v0.5.0 release notes, Gridsync will aim to support only the new standalone "Magic-Folder" application moving forward, dropping support for the old magic-folder (and Tahoe-LAFS 1.14) in the coming weeks/months.

This PR should be considered the first -- but certainly not the final -- step towards that goal. With this PR merged, Gridsync will ship the standalone Magic-Folder application (alongside Tahoe-LAFS) and will create new-magic-folders by default (leaving previous configuration relating to old-magic-folder intact until tooling becomes available to "convert" an old-magic-folder into a "new" one). This first step -- and the commitment to support only new Magic-Folder moving forward -- should greatly facilitate the exposure and testing of new Magic-Folder as well as Gridsync's own integration with it, thereby providing opportunities for both projects to catch and fix bugs earlier rather than later and as development continues.

Onward. Finally.

crwood added 19 commits October 14, 2021 15:04
...and allow more graceful failures. Gridsync's inclusion of Watchdog
was something of a temporary hack, added until Magic-Folder gets its
own, proper filesystem monitor; failures from adding/removing watchers
should thus strive to not interfere with the rest of the application.
...until new Magic-Folder re-implements them. See/follow
tahoe-lafs/magic-folder#560
To prevent spurious "Unhandled error in Deffered" messages in tests
(caused by checking file status for recently-left magic-folders)
Because GitHub Actions has updated to python 3.10, breaking this env
@crwood crwood merged commit 7127221 into master Oct 17, 2021
@crwood crwood deleted the 290.new-magic-folder branch October 17, 2021 02:20
@crwood crwood restored the 290.new-magic-folder branch October 17, 2021 02:21
@crwood crwood deleted the 290.new-magic-folder branch October 17, 2021 02:23
@crwood crwood restored the 290.new-magic-folder branch October 17, 2021 02:23
crwood added a commit that referenced this pull request Oct 27, 2021
Core.executable was removed in #389

Fixes #393
@crwood crwood deleted the 290.new-magic-folder branch October 29, 2021 00:47
@crwood crwood mentioned this pull request Jan 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants