Package: magic-folder
Magic FolderThis repository is provisional.It may move to a different organization.Magic Folder for Tahoe-LAFS is a Free and Open file synchronization system.
It detects local changes to files and uploads those changes to a Tahoe-LAFS grid.
It monitors a Tahoe-LAFS grid and downloads changes to the local filesystem.Installingfor integratorsWhen packaging magic-folder, please install using our pinned requirements,
which are tested in CI. This should be done in a virtualenv, or other
isolated python environment, so as to not interfere with system or user
python packages:git clone https://github.com/LeastAuthority/magic-folder
cd magic-folder
pip install --require-hashes -r requirements/base.txt
pip install --no-deps .from sourceTo install from source (either so you can hack on it, or just to run
pre-release code), you should create a virtualenv and install into that:git clone https://github.com/LeastAuthority/magic-folder.git
cd magic-folder
virtualenv venv
venv/bin/pip install --upgrade setuptools
venv/bin/pip install --editable .
venv/bin/magic-folder --versionUsageMagic-Folder is configured via themagic-foldercommand-line tool.Magic-Folder configuration is kept in a directory.
The default place for this directory is platform-dependant; on Linux it will be in~/.config/magic-folder.
Inside this directory is a database for global configuration and sub-directories to track state and temporary space for each actual magic-folder including a configuration database.
All databases are SQLite.A running Magic-Folder needs to have access to a Tahoe-LAFS client that it may use to perform operations in the Tahoe-LAFS Grid.
This is referenced by the “node directory” of the Tahoe-LAFS client although actual operations are performed via the Tahoe-LAFS WebUI.There are two ways to create a new Magic Folder instance (that is, the configuration required).
Create a fresh one withmagic-foldercreateor migrate from a Tahoe-LAFS 1.14.0 or earlier instance withmagic-foldermigrate.Once a Magic-Folder is configured, functionality is provided by running a long-lived magic-folder daemon.
This process is run using themagic-foldercommand line tool:magic-folder --config <path to Magic Foler directory> runAs long as this process is running, whatever magic folders are configured will be functional.
The process must be restarted to read configuration changes.
All other interactions are via the HTTP API which listens on a local endpoint according to the configuration.
Othermagic-foldersubcommands are typically just thin CLI wrappers around a particular HTTP endpoint.TestingTo run the unit test suite:toxYou can pass arguments totrialwith an environment variable.  For
example, you can run the test suite on multiple cores to speed it up:MAGIC_FOLDER_TRIAL_ARGS="-j4"toxDocumentationDocumentation is written as reStructuredText documents and processed
using Sphinx; you will needsphinxandsphinx_rtd_theme.  To
generate HTML version of Magic Folder documents, do:cd docs; make htmlResulting HTML files will be underdocs/_build/html/.LicenseCopyright 2006-2018 The Tahoe-LAFS Software Foundation
Copyright 2020-2021 The Magic-Folder DevelopersYou may use this package under the GNU General Public License, version 2 or,
at your option, any later version. You may use this package under the
Transitive Grace Period Public Licence, version 1.0, or at your option, any
later version. (You may choose to use this package under the terms of either
licence, at your option.) See the fileCOPYING.GPLfor the terms of the
GNU General Public License, version 2. See the fileCOPYING.TGPPLfor
the terms of the Transitive Grace Period Public Licence, version 1.0.SeeTGPPL.PDFfor why the TGPPL exists, graphically illustrated on three
slides.