Releases: bit-team/backintime
Back In Time 1.5.3 (November 13, 2024)
Summary
The minimum supported Python version has been raised to 3.9. The user manual has migrated to a new format and build system, now including sections on user callbacks and detailed example scripts. The code base has undergone extensive refactoring. FCron support has been added. The English strings in the GUI have been optimized. Serbian language is now available in both Latin and Cyrillic scripts. Interlingua (Occidental) has been introduced as a new language. The libnotify-bin (notify-send) dependency has been removed, as Back In Time now uses DBus for notifications.
Contributors
This version received extensive support from external contributors (in alphabetical order by last name or nickname):
- Keith Bates @dnerever
- David Gibbs @fallingrock
- Johannes @hannes101
- Manuel @feman323
- Ihor Pryyma @Ihor-Pryyma
- Timothy Southwick @NickNackGus
- Felix Stupp @Zocker1999NET
- Derek Veit @DerekVeit
- Kosta Vukicevic @stcksmsh
- David Wales @daviewales
- Paul Worrall @Silver-Saucepan
- Also not to be forgotten are the many people who supported the project by testing it, providing feedback, reporting issues, and analyzing problems.
Installation
This release contains the source code only but no distro packages. To install the new release from the source code please follow our build & installation instructions.
Known major issues open
- qt_probing.py may hang with high CPU usage when running Back In Time as root via cron (#1592)
- File permissions handling and therefore possible non-differential backups (#988 & #994)
Changelog
- Doc: User manual (build with MkDocs) (#1838) (Kosta Vukicevic @stcksmsh)
- Doc: User-callback topic in user manual (#1659)
- Feature: Support language Interlingua (Occidental)
- Feature: Warn if destination directory is formatted as NTFS (#1854) (David Gibbs @fallingrock)
- Breaking Change: Minimal Python version 3.9 required (#1731)
- Breaking Change: Auto migration of config version 4 or lower not longer supported (#1857)
- Fix: Prevent duplicates in Exclude/Include list of Manage Profiles dialog
- Fix: Fix Qt segmentation fault when canceling out of unconfigured BiT (#1095) (Derek Veit @DerekVeit)
- Fix: Correct global flock fallbacks (#1834) (Timothy Southwick @NickNackGus)
- Fix: Use SSH key password only if it is valid, otherwise request it from user (#1852) (David Wales @daviewales)
- Feature: Support fcron (#610)
- Feature: User message about release candidate (#1906)
- Refactor: General tab and its Schedule section
- Refactor: Own module for Manage Profiles dialog and separate Generals tab code (#1865)
- Refactor: Remove class OrderedSet
- Refactor: Remove os.system() from class Execute
- Refactor: Systray notifications send utilize DBUS instead of notify-send (#1156) (Felix Stupp @Zocker1999NET)
- Refactor!: Remove unused config field "user_callback.no_logging" (#1887)
- Refactor!: Remove eCryptFS check for home folder (#1855)
- Dependency: Remove libnotify-bin (notify-send) (#1156)
- Build: Replace "pycodestyle" linter with "flake8" (#1839)
Release Candidate 1 - Back In Time 1.5.3-rc1
Summary
This is a release candidate. Please report if you use it even if there are no new problems.
The minimum supported Python version has beend raised to 3.9. The user manual has migrated to a new format and build system, now including sections on user callbacks and detailed example scripts. The code base has undergone extensive refactoring. FCron support has been added. The English strings in the GUI have been optimized. Serbian language is now available in both Latin and Cyrillic scripts. Interlingua (Occidental) has been introduced as a new language. The libnotify-bin (notify-send) dependency has been removed, as Back In Time now uses DBus for notifications.
Contributors
This version received extensive support from external contributors (in alphabetical order):
- Keith Bates @dnerever
- David Gibbs @fallingrock
- Derek Veit @DerekVeit
- Timothy Southwick @NickNackGus
- Felix Stupp @Zocker1999NET
- Ihor Pryyma @Ihor-Pryyma
- Kosta Vukicevic @stcksmsh
- David Wales @daviewales
- Paul Worrall @Silver-Saucepan
- Manuel @feman323
- Also not to be forgotten are the many people who supported the project by testing it, providing feedback, reporting issues, and analyzing problems.
Installation
This release contains the source code only but no distro packages. To install the new release from the source code please follow our build & installation instructions.
Known major issues open
- qt_probing.py may hang with high CPU usage when running Back In Time as root via cron (#1592)
- File permissions handling and therefore possible non-differential backups (#988 & #994)
Changelog
- Doc: User manual (build with MkDocs) (#1838) (Kosta Vukicevic @stcksmsh)
- Doc: User-callback topic in user manual (#1659)
- Feature: Support language Interlingua (Occidental)
- Feature: Warn if destination directory is formatted as NTFS (#1854) (David Gibbs @fallingrock)
- Breaking Change: Minimal Python version 3.9 required (#1731)
- Breaking Change: Auto migration of config version 4 or lower not longer supported
- Fix: Prevent duplicates in Exclude/Include list of Manage Profiles dialog
- Fix: Fix Qt segmentation fault when canceling out of unconfigured BiT (#1095) (Derek Veit @DerekVeit)
- Fix: Correct global flock fallbacks (#1834) (Timothy Southwick @NickNackGus)
- Fix: Use SSH key password only if it is valid, otherwise request it from user (#1852) (David Wales @daviewales)
- Feature: Support fcron (#610)
- Feature: User message about release candidate (#1906)
- Refactor: General tab and its Schedule section
- Refactor: Own module for Manage Profiles dialog and separate Generals tab code (#1865)
- Refactor: Remove class OrderedSet
- Refactor: Remove os.system() from class Execute
- Refactor: Systray notifications send utilize DBUS instead of notify-send (#1156) (Felix Stupp @Zocker1999NET)
- Refactor!: Remove unused config field "user_callback.no_logging" (#1887)
- Refactor!: Remove eCryptFS check for home folder (#1855)
- Dependency: Remove libnotify-bin (notify-send) (#1156)
- Build: Replace "pycodestyle" linter with "flake8" (#1839)
Back In Time 1.5.2 (August 6, 2024)
Summary
This version fixes urgent bugs from the previous version causing crashes when using languages Spanish, Basque or Icelandic. Thank you to @Caramelitosis for reporting this.
Installation
This release contains the source code only but no distro packages. To install the new release from the source code please follow our build & installation instructions.
Known major issues open
- qt_probing.py may hang with high CPU usage when running Back In Time as root via cron (#1592)
- File permissions handling and therefore possible non-differential backups (#988 & #994)
Changes
Back In Time 1.5.1 (July 27, 2024)
Summary
This version fixes a bug from the previous version. During ping tests of the SSH server, the port of the SSH proxy was used instead of the target SSH server. Thank you to Johannes (@hannes101) for reporting this.
Installation
This release contains the source code only but no distro packages. To install the new release from the source code please follow our build & installation instructions.
Known major issues open
- qt_probing.py may hang with high CPU usage when running Back In Time as root via cron (#1592)
- File permissions handling and therefore possible non-differential backups (#988 & #994)
Changes
- Fix: Use correct port to ping SSH Proxy (#1815)
Back In Time 1.5.0 (July 26, 2024)
This release increase the Qt version usedfrom 5 to 6. EncFS is marked as deprecated (#1734). BIT warns if Cron is not running. As a new feature SSH proxy (aka jump host) can be used. For more details see the changelog.
This release has several new contributors. Thank you to all of them, several issues could be fixed and the code quality increased.
- Ayush Saluja: Improving code quality
- Christie Grinham: Implement SSH proxy feature
- David Gibbs: Fix "places" widget in main window and "one file system" export option.
- DerekVeit: Fix a long standing Qt segmentation fault
- JATIN-RAGHAV: Improve code quality and docu
- Kosta Vukicevic: Improve debug behavior of the GUI and code quality.
- Rafael Hurpia da Rocha: Fix "Backup folders" list in main window.
- Tianyi Tao: Improve code quality with refactoring.
- Tom Hunter: Improve code quality with refactoring.
- Vaibhav Raj: Improve code quality with refactoring.
Also several new translators and former translators updating their translations to fit to the latest development. Thank you to them the language translation coverage increased to 82 %.
Installation
This release contains the source code only but no distro packages. To install the new release from the source code please follow our build & installation instructions.
Known major issues open
- qt_probing.py may hang with high CPU usage when running Back In Time as root via cron (#1592)
- File permissions handling and therefore possible non-differential backups (#988 & #994)
Changelog
- Dependency: Migration to PyQt6
- Breaking Change: EncFS deprecation warning (#1735, #1734)
- Breaking Change: GUI started with --debug does no longer add --debug to the crontab for scheduled profiles.
Use the new "enable logging for debug messages" in the 'Schedule' section of the 'Manage profiles' GUI instead. - Feature: Warn if Cron is not running (#1747)
- Feature: Profile and GUI allow to activate debug output for scheduled jobs by adding '--debug' to crontab entry (#1616, contributed by @stcksmsh Kosta Vukicevic)
- Feature: Support SSH proxy (jump) host (#1688) (@cgrinham, Christie Grinham)
- Feature: Support rsync '--one-file-system' in Expert Options (#1598)
- Feature: "*-dev" version strings contain last commit hash (#1637)
- Fix: Global flock fallback to single-user mode if insufficient permissions (#1743, #1751)
- Fix: Fix Qt segmentation fault with uninstall ExtraMouseButtonEventFilter when closing main window (#1095)
- Fix: Names of weekdays and months translated correct (#1729)
- Fix: Global flock for multiple users (#1122, #1676)
- Fix bug: "Backup folders" list does reflect the selected snapshot (#1585) (@rafaelhdr Rafael Hurpia da Rocha)
- Fix: Validation of diff command settings in compare snapshots dialog (#1662) (@stcksmsh Kosta Vukicevic)
- Fix bug: Open symlinked folders in file view (#1476)
- Fix bug: Respect dark mode using color roles (#1601)
- Fix: "Highly recommended" exclusion pattern in "Manage Profile" dialog's "Exclude" tab show missing only (#1620)
- Fix bug:
make install
ignored $(DEST) in file migration part (#1630) - Removed: Context menu in LogViewDialog (#1578)
- Removed: Field "filesystem_mount" and "snapshot_version" in "info" file (#1684)
- Refactor: Replace Config.user() with getpass.getuser() (#1694)
- Chore!: Remove "debian" folder (#1548)
- Build: Enable several PyLint rules (#1755, #1766)
- Build: Add AppStream meta data (#1642)
- Build: PyLint unit test is skipped if PyLint isn't installed, but will always run on TravisCI (#1634)
- Build: Git commit hash is presevered while "make install" (#1637)
- Build: Fix bash-completion symlink creation while installing & adding --diagnostics (#1615)
- Build: TravisCI use PyQt (except arch "ppc64le")
Back in Time v1.4.3 (Jan 30, 2024)
Installation
This release contains the source code only but no distro packages.
To install the new release from the source code please follow our build & installation instructions
Known major open issues
- #1592:
qt5_probing.py
may hang with high CPU usage when running BiT asroot
viacron
Changes
Important note for package maintainers:
We are now using absolute paths to python3
which may impact how you build your package.
You can you use ./configure --python=PYTHON_PATH
to configure this.
- Feature: Exclude 'SingletonLock' and 'SingletonCookie' (Discord) and 'lock' (Mozilla Firefox) files by default (part of #1555)
- Work around: Relax
rsync
exit code 23: Ignore instead of error now (part of #1587) - Feature (experimental): Add new snapshot log filter
rsync transfer failures (experimental)
to find them easier (they are normally not shown as "error").
This feature is experimental because it is based on hard-coded error message strings in the rsync source code
and may possibly not find all rsync messages or show false positives. - Fix bug: 'qt5_probing.py' hangs when BiT is run as root and no user is logged into a desktop environment (#1592 and #1580)
- Fix bug: Launching BiT GUI (root) hangs on Wayland without showing the GUI (#836)
- Improve: Launcher for BiT GUI (root) does not enforce Wayland anymore but uses same settings as for BiT GUI (userland) (#1350)
- Fix bug: Disabling suspend during taking a backup ("inhibit suspend") hangs when BiT is run as root and no user is logged into a desktop environment (#1592)
- Change of semantics: BiT running as root never disables suspend during taking a backup ("inhibit suspend") even though this may have worked before in BiT <= v1.4.1 sometimes (required to fix #1592)
- Fix bug: RTE: module 'qttools' has no attribute 'initate_translator' with encFS when prompting the user for a password (#1553).
- Fix bug: Schedule dropdown menu used "minutes" instead of "hours".
- Fix bug: Unhandled exception "TypeError: 'NoneType' object is not callable" in tools.py function __log_keyring_warning (#820).
Logging thread removed and logger module correctly initialized as fix. Is "Heisenbug" so 100 % retesting was not possible. - Build: Use PyLint in unit testing to catch E1101 (no-member) errors.
- Build: Activate PyLint warning W1401 (anomalous-backslash-in-string).
- Build: Add codespell config.
- Build: Allow manual specification of python executable (--python=PYTHON_PATH) in common/configure and qt/configure
- Build: All starter scripts do use an absolute path to the python executable by default now via common/configure and qt/configure (#1574)
- Build: Install dbus configuration file to /usr/share not /etc (#1596)
- Build:
configure
does delete old installed files (qt4plugin.py
andnet.launchpad.backintime.serviceHelper.conf
) that were renamed or moved in a previous release (#1596) - Translation: Minor modifications in source strings and updating language files.
- Refactor: Solved circular dependency between tools.py and logger.py to fix #820
- Improved:
qtsystrayicon.py
,qt5_probing.py
,usercallbackplugin.py
and all parts ofapp.py
do now also use "backintime" as logging namespace in the syslog to ensure complete log output withjournalctl | grep -i backintime
Statistics
- Issue progress report
- The language translation coverage increased from from 56 to 72 % since the new developer team started in summer 2022
(thanks to all our translators and @buhtz to pursue this topic!)
Back in Time 1.4.1 (Oct. 1, 2023)
Installation
This release contains the source code only but no distro packages.
To install the new release see: https://github.com/bit-team/backintime/blob/dev/CONTRIBUTING.md#build--install
Known major issues
- #1553: RTE: module 'qttools' has no attribute 'initate_translator' (encFS when prompting the user for a password)
Changes
- Dependency: Add "qt translations" to GUI runtime dependencies (#1538)
- Build: Unit tests do generically ignore all instead of well-known warnings now (#1539).
- Build: Warnings about missing Qt translation now are ignored while testing (#1537).
- Fix bug: GUI didn't start when "show hidden files" button was on (#1535).
Statistics
- Issue progress report
- The language translation coverage increased from 38 to 56 % since the new developer team started in summer 2022
(thanks to all our translators and @buhtz to pursue this topic!)
Back in Time 1.4.0 (Sept. 14, 2023)
Installation
This release contains the source code only but no distro packages.
To install the new release see: https://github.com/bit-team/backintime/blob/dev/CONTRIBUTING.md#build--install
Known major issues
- #1553: RTE: module 'qttools' has no attribute 'initate_translator' (encFS when prompting the user for a password)
- #1535 (fix in v1.4.1)
Changelog
- Project: Renamed branch "master" to "main" and started "gitflow" branching model.
- Refactor: Renamed qt4plugin.py to systrayiconplugin.py (we are using Qt5 for years now ;-)
- Refactor: Removed unfinished feature "Full system backup" (#1526)
- Fix bug: AttributeError: can't set attribute 'showHiddenFiles' in app.py (#1532)
- Fix bug: Check SSH login works on machines with limited commands (#1442)
- Fix bug: Missing icon in SSH private key button (#1364)
- Fix bug: Master issue for missing or empty system-tray icon (#1306)
- Fix bug: System-tray icon missing or empty (GUI and cron) (#1236)
- Fix bug: Improve KDE plasma icon compatibility (#1159)
- GUI Change: View last (snapshot) log button in GUI uses "document-open-recent" icon now instead of "document-new" (#1386)
- Fix bug: Unit test fails on some machines due to warning "Ignoring XDG_SESSION_TYPE=wayland on Gnome..." (#1429)
- Fix bug: Generation of config-manpage caused an error with Debian's Lintian (#1398).
- Fix bug: Return empty list in smartRemove (#1392, Debian Bug Report 973760)
- Fix bug: Taking a snapshot reports
rsync
errors now even if no snapshot was taken (#1491) - Fix bug: takeSnapshot() recognizes errors now by also evaluating the rsync exit code (#489)
Fixes related problem: Killingrsync
was not handled gracefully (by ignoring the rsync exit code) - Fix bug: The error user-callback is now always called if an error happened while taking a snapshot (#1491)
- Fix bug: D-Bus serviceHelper error "LimitExceeded: Maximum length of command line reached (100)":
Max command length is now 120 instead of 100 (#1027) - Feature: Introduce new error codes for the "error" user callback (as part of #1491):
5: Error while taking a snapshot.
6: New snapshot taken but with errors. - Feature: The
rsync
exit code is now contained in the snapshot log (part of #489). Example:
[E] Error: 'rsync' ended with exit code -9 (negative values are signal numbers, see 'kill -l') - Fix bug: Treat rsync exit code 24 as INFO instead of ERROR (#1506)
- Breaking change: Minimal Python version 3.8 required (#1358).
- Removed: Handling and checking of user group "fuse" (#1472).
- Feature: Exclude /swapfile by default (#1053)
- Feature: Rearranged menu bar and its entries in the main window (#1487, #1478).
- Feature: Configure user interface language via config file and GUI.
- Documentation: Removed outdated docbook (#1345).
- Build: Introduced .readthedocs.yaml as asked by ReadTheDocs.org (#1443).
- Dependency: The oxygen icons should be installed with the BiT Qt GUI since they are used as fallback in case of missing icons
- Fix bug: Add support for ChainerBackend class as keyring which iterates over all supported keyring backends (#1410)
- Translation: Strings to translate now easier to understand for translators (#1448, #1457, #1462, #1465).
- Translation: Improved completeness of translations and additional modifications of source strings (#1454, #1512)
- Translation: Plural forms support (#1488).
- Removed: Translation in Canadian English, British English and Javanese (#1455).
- Added: Translation in Persian and Vietnamese (#1460).
- Added: Message to users (after 10 starts of BIT Gui) to motivate them contributing translations (#1473).
Release 1.3.3 (Jan 3, 2023)
Changelog
- New feature: Command line argument "--diagnostics" to show helpful info for better issue support (#1100)
- GUI change: Remove Exit button from the toolbar (#172)
- GUI change: Define accelerator keys for menu bar and tabs, as well as toolbar shortcuts (#1104)
- Desktop integration: Update .desktop file to mark Back In Time as a single main window program (#1258)
- Improvement: Write all log output to stderr; do not pollute stdout with INFO and WARNING messages anymore (#1337)
- Bugfix: RTE "reentrant call inside io.BufferedWriter" in logFile.flush() during backup (#1003)
- Bugfix: Incompatibility with rsync 3.2.4 or later because of rsync's "new argument protection" (#1247). Deactivate "--old-args" rsync argument earlier recommaned to users as a workaround.
- Bugfix: DeprecationWarnings about invalid escape sequences.
- Bugfix: AttributeError in "Diff Options" dialog (#898)
- Bugfix: Settings GUI: "Save password to Keyring" was disabled due to "no appropriate keyring found" (#1321)
- Bugfix: Back in Time did not start with D-Bus error
"dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner:
Could not get owner of name 'net.launchpad.backintime.serviceHelper': no such name"
(fixes client-side part of #921 - system D-Bus part of the Udev serviceHelper is still under investigation). - Bugfix: Avoid logging errors while waiting for a target drive to be mounted (#1142, #1143, #1328)
- Bugfix: [Arch Linux] AUR pkg "backintime-git": Build tests fails and installation is aborted (#1233, fixed with #921)
- Bugfix: Wrong systray icon showing in Wayland (#1244)
- Documentation update: Correct description of profile.schedule.time in backintime-config manpage (#1270)
- Translation update: Brazilian Portuguese (#1267)
- Translation update: Italian (#1110, #1123)
- Translation update: French (#1077)
- Testing: Fix a test fail when dealing with an empty crontab (#1181)
- Testing: Fix a test fail when dealing with an empty config file (#1305)
- Testing: Skip "test_quiet_mode" (does not work reliably)
- Testing: Improve "test_diagnostics_arg" (introduced with #1100) to no longer fail
when JSON output was mixed with logging output (part of #921, fixes #1233) - Testing: Numerous fixes and extensions to testing (#1115, #1213, #1279, #1280, #1281, #1285, #1288, #1290, #1293, #1309, #1334)
Back in Time 1.3.2
CHANGELOG
- Fix bug: Tests no longer work with Python 3.10 (#1175)