← Back to team overview

syncany-team team mailing list archive

Lots of updates: SQL backend GUI, other plugins (SFTP, etc.), installers/packages, BitTorrent and IRC

 

Hello everyone,

long time no see -- even though we've been keeping up with the development,
the mailing list has been rather quiet. So I just wanted to give you all a
quick update of what's been going on:

*1. SQL backend (*Philipp, Gregor, Steffen, Pim)
As you might know, I'm working on integrating HSQL as a local backend to
make queries and the cleanup process easier (or: feasible). Gregor and
Steffen have been reviewing parts of it. And Pim has been doing the same.
Thanks for that! That helps a lot.

We started out with JPA, but realized the benefits of JPA don't really
apply here (or at least, not yet). JDBC works just fine and is reasonably
fast. The corresponding branch can be found here:
https://github.com/binwiederhier/syncany/tree/sqlplayground -- A current
database scheme (as implemented in HSQL) can be found here:
https://raw.github.com/binwiederhier/syncany/sqlplayground/syncany-assets/documentation/MySQL%20Workbench%20Database%20Layout.png

As soon as it's somewhat stable, nicely integrated and tested, I'll merge
this into the master.

*2. GUI (*Vincent)
Vincent is constantly continuing the development on the GUI and the daemon.
The daemon component uses the Syncany library to manage 1-n watched
folders. It is controlled by the GUI. The two independent components (two
JVMs!) communicate via web sockets -- so that a headless mode will also be
possible in the future; and other GUIs (web-GUI, android/iPhone) interfaces
can be easily added on top.

Screenshots (on Linux, fonts are a bit off): http://imgur.com/a/47idl#0

a) Daemon: The daemon basically runs 1-n WatchOperations (as provided by
syncany-lib). It can be paused/stopped via websocket command; and new
WatchOperations (new folders) can be added on the fly.

b) GUI: After our initial discussions we decided to use the SWT libraries
as UI framework and I am really happy with that choice.
- Wizard: Like in the 2011-Syncany-version. there's a wizard style "new
folder" setup (see screenshots) that let you specify your folder and
connection settings in a GUI.
- Preferences: in addition to the wizard, there's a global "Preferences"
dialog to see the watched folders and edit startup/proxy settings.
- Tray: The tray icon has a dynamic menu that shows the watched folders and
allows the user to pause/stop any folder. It works wonderfully on Linux and
Windows (and Mac OS, also, I think). Even the tray icon looks nice on Linux
(!!). For Ubuntu's Unity UI (does not support tray icons; instead: "app
indicator"), we used the little python script to display and integrate the
tray icon. The python script communicates to the GUI via websocket. Tiny
hack, but works very well.
- File manager integration: (not yet any, can wait!)

Thank you Vincent for the magnificent work! Keep it up!!

*3. Other storage plugins*, SFTP, S3, ... (Vincent)
I noticed that Vincent started to work on another SFTP/SSH plugin. As you
might know, there are many other plugins that can be easily adjusted to
work with the newest Syncany code base (from the 2011-Syncany code) here:
https://github.com/stacksync/desktop/tree/master/src/com/stacksync/desktop/connection/plugins(can't
find the original syncany commit anywhere; good thing stacksync
picked it up :-))

As I explained Vincent, I currently do not have the time to maintain any of
these plugins and right now I don't want to add them to the main repo.
Instead, I'd like to move them to the Syncany "organization" space here:
https://github.com/syncany

If you want to develop a new plugin (or move your plugin code there), let
me know. I will make a new repo and give you access to it. So that we can
have plugin maintainers for the individual plugins. I will eventually move
the syncany repo there, but right now I don't see the need for it.

*4. Installers and packages* (Philipp)
I started to create a Windows installer (with Innosetup) and Linux packages
(deb + rpm using fpm) for the CLI. They can be generated using gradle with
the tasks "gradle exe" (even on Linux, with Wine and InnoSetup installed!),
or "gradle debian"/"gradle rpm". Eventually, the GUI should also be
installable like this. Right now it's just the CLI.

Whenever the master is updated, new deb/exe/rpm/tar.gz/zip files are
generated here: http://syncany.org/dist/ -- Note: The "rpm" is entirely
untested!

Details to the Linux packages here:
https://github.com/binwiederhier/syncany/blob/master/gradle/fpm/FPM.md
Details to the Windows installer here:
https://github.com/binwiederhier/syncany/blob/master/gradle/innosetup/INNOSETUP.md

*5. BitTorrent* (Christof)
A colleague of mine has the crazy idea of transforming Syncany into an open
source BTsync. He's just starting, but who knows. :-)

- First ideas here: https://github.com/christf/openbtsync
- Branch here: https://github.com/christf/syncany/tree/bt

*6. #syncany on Freenode/IRC*
I'm hanging around IRC more often now. There are not many people, but I
hope to be there regularly in the future. If you like, feel free to join.
Don't expect masses :-D

Network: Freenode
Channel: #syncany
Nick: binwiederhier (say my name to ping me)

Alright then. That's it for now. Please let me know what you think!
Thanks to everyone for the support!!

Best
Philipp