Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 04:12
· 112 commits to main since this release
4c2e485

Install as a package, for amd64 (tested on Fedora 44 and Debian stable) or arm64
(built, not yet tested):

# Fedora
sudo dnf install https://github.com/fqazzazee/shuttle/releases/download/v0.1.0/shuttle_0.1.0_linux_amd64.rpm
# Debian, Ubuntu
curl -LO https://github.com/fqazzazee/shuttle/releases/download/v0.1.0/shuttle_0.1.0_linux_amd64.deb
sudo apt install ./shuttle_0.1.0_linux_amd64.deb

Then enable the service and, on GNOME 50, the extension: see the
README. checksums.txt has every
file's SHA-256.

shuttle is source-available under PolyForm Noncommercial 1.0.0 or PolyForm Internal Use
1.0.0; its GNOME extension is GPL-2.0-or-later. See
LICENSE.

Changelog

Features

  • feat(bus): serve the daemon over D-Bus (#21)
  • feat(cli): shuttle status, sync, pause and resume (#22)
  • feat(config): a shuttle syncs only what it includes, or all but what it excludes (#76)
  • feat(config): edit config.toml in place, keeping comments and layout (#27)
  • feat(config): load shares, profiles and shuttles from TOML (#5)
  • feat(daemon): desktop notifications for errors, conflicts, completed runs and shares (#25)
  • feat(daemon): follow config.toml as it changes, without a restart (#30)
  • feat(daemon): run every shuttle on its own with shuttle daemon (#17)
  • feat(daemon): run shuttles on a schedule and when their share comes online (#18)
  • feat(daemon): sync real-time shuttles when local files change (#19)
  • feat(daemon): the status says when a scheduled shuttle runs next (#88)
  • feat(engine): apply conflict policies and guard against mass deletion (#8)
  • feat(engine): honour ignore patterns and bandwidth limits (#10)
  • feat(engine): keep replaced and deleted files as versions (#9)
  • feat(engine): scan, plan and execute push, pull and sync runs (#7)
  • feat(engine): stop a run that would not fit, before it copies (#81)
  • feat(extension): a Quick Settings toggle that pauses and resumes the shuttles (#63)
  • feat(extension): a dropdown of the shuttles (#61)
  • feat(extension): a top-bar indicator that follows the daemon (#59)
  • feat(extension): the bus in the top bar, with the state's mark beside it (#75)
  • feat(extension): the icon pulses while syncing, with the transfer rate beside it (#60)
  • feat(extension): the top bar's menu has the Quick Settings controls (#82)
  • feat(fsys): NFSv3 backend over internal/nfs3 (#53)
  • feat(fsys): add filesystem interface and local backend (#3)
  • feat(fsys): reach SMB shares directly with go-smb2 (#12)
  • feat(nfs): say how much room an NFS share has (#80)
  • feat(nfs3): a small NFSv3 client (#51)
  • feat(secrets): keep share passwords in the Secret Service (#15)
  • feat(shares): open a shuttle's share with its password from the keyring (#16)
  • feat(state): store each shuttle's last synced file state in bbolt (#6)
  • feat(tui): a SHARE column on the dashboard, offline in red (#86)
  • feat(tui): a panel under the dashboard with the selected shuttle in full (#89)
  • feat(tui): a progress bar while a run copies, a spinner while it scans (#87)
  • feat(tui): a tree with marks on this computer too, sharing the share's marks (#83)
  • feat(tui): add, edit and delete shuttles (#46)
  • feat(tui): fit narrow terminals: columns that give way, wrapped keys, a help that scrolls (#90)
  • feat(tui): grey out settings that do not apply (#72)
  • feat(tui): help and questions as overlays on the dimmed screen (#97)
  • feat(tui): shuttle's own palette, vivid, for dark and light terminals (#91)
  • feat(tui): the Activity tab (#42)
  • feat(tui): the Conflicts tab (#41)
  • feat(tui): the Profiles tab: add, edit, copy and delete profiles (#45)
  • feat(tui): the Shares tab: add, edit, test and delete shares (#44)
  • feat(tui): the TUI skeleton, with a live Shuttles tab (#40)
  • feat(tui): the bus and the wordmark in the header, giving way in small terminals (#92)
  • feat(tui): the bus in the header takes the shuttles' state (#93)
  • feat(tui): the bus on the empty screens in the app icon's colors (#95)
  • feat(tui): the bus's lights take turns while a shuttle runs (#94)
  • feat(tui): the panel draws a run's transfer rate as a sparkline (#98)
  • feat(tui): the progress bar fills by eighths, along shuttle's gradient (#96)
  • feat(tui): the shuttle bus, in text, on first-run screens and in help (#74)
  • feat: NFS shares (#54)
  • feat: Open shuttle, from the app grid and from notifications (#48)
  • feat: a shuttle bus icon, for the app and the top bar (#73)
  • feat: an activity log for every shuttle (#38)
  • feat: describe both copies of a conflict on the bus (#39)
  • feat: install shuttle as a systemd user service (#23)
  • feat: live progress and transfer rates (#37)
  • feat: show how much each shuttle syncs: its size and its files (#78)
  • feat: show how much room each share and this computer have (#79)
  • feat: turn shuttles on and off from the bus and the CLI (#32)
  • feat: up and down arrows for push and pull, and a MODE column in shuttle status (#84)

Bug fixes

  • fix(bus): update the properties before signalling a change (#34)
  • fix(daemon): announce a lost share before the run that found it is over (#36)
  • fix(daemon): apply the global bandwidth cap (#33)
  • fix(daemon): run real-time shuttles at start even after a recent run (#26)
  • fix(daemon): send each shuttle's status changes in the order they happened (#58)
  • fix(daemon): show a run as over only once its notifications are sent (#31)
  • fix(daemon): start with no shuttles when there is no config file yet (#71)
  • fix(engine): handle names that differ only in case on SMB shares (#14)
  • fix(engine): record a copy whose source changed mid-copy, so it is not a conflict (#35)
  • fix(extension): Quick Settings switches follow the daemon when it refuses (#68)
  • fix(nfs3): say to mount an NFSv4-only server when its mount service lacks v3 (#57)
  • fix(state): start afresh when a shuttle's folders change (#29)
  • fix(tui): the help lists the tree's keys for both steps, and t (#85)

Other changes

  • Update README.md
  • build(packages): third-party notices in the tarballs, RPM and DEB (#103)
  • build: packages that carry what make install does, built and tested locally (#70)
  • deps: bump eslint from 10.11.0 to 10.12.0 in the lint group (#66)
  • deps: bump the go-minor-patch group with 3 updates (#65)
  • perf(engine): scan with several folder listings in flight (#20)
  • refactor(extension): one daemon client for the indicator and what comes next (#62)