v1.5.4-rc1 Release Candidate 1.5.4-rc1

# Summary
This is a release candidate. Please report if you use it even if there are no new problems.

This version is set to be released with Debian 13 (Trixie) this early summer and will remain available for the long lifetime of that Debian version.
EncFS, used for encrypted profiles, has been marked as deprecated and is schedule for removal in 2026. The Smart & Auto remove GUI has been reorganized and renamed into "Remove & Retention", with improvements to the user manual section. Its behavior remains unchange. An offset minute can now be configured for hourly schedule options. Some config file fields have been moved to a newly introduced state file. License and copyright information is now provided in machine-readable SPDX format, following the REUSE standard.

# Contributors
This version received extensive support from contributors (in alphabetical order):

- @bremnere
- David Gibbs @fallingrock
- graysky @graysky2
- Samuel More @mooresamuel
- Iván Rodríguez @ivanrdgz03
- Peter Sevens @sevens
- David Wales @daviewales
- Dylan Wilson @dylan-wilson-usq
- Also not to be forgotten are the many people who supported the project by testing it, providing feedback, reporting issues, and analyzing problems.

# Known major issues open
- qt_probing.py may hang with high CPU usage when running Back In Time as root via cron (https://github.com/bit-team/backintime/issues/1592)
- File permissions handling and therefore possible non-differential backups (https://github.com/bit-team/backintime/issues/988 & https://github.com/bit-team/backintime/issues/994)

# Changelog
* Changed: More clear and intense warning about EncFS deprecation and removal (#1904)
* Changed: Updated desktop entry files
* Changed: Move several values from config file into new introduce state file ($XDG_STATE_HOME/backintime.json)
* Changed: Completed license information to conform the REUSE.software and SPDX standards.
* Breaking Change: Auto-remove rules "Free inodes" and "Free space" disabled by default (#1976)
* Fix!: Smart-remove rule "Keep one snapshots per week or the last week" use calendar weeks
* Fix: The width of the fourth column in files view is now saved
* Fix: Snapshot compare copy symlink as symlink (#1902) (Peter Sevens @sevens)
* Fix: Crash when comparing a snapshot with a symlink pointing to a nonexistent target (Peter Sevens @sevens)
* Fix: Crash (KeyError) opening language setup dialog with unknown locale/language
* Feature: Open user manual (local if available otherwise online) via Help menu
* Feature: Toolbar context menu to display the buttons in different combinations with icons and text (#1105, #2002) (Samuel Moore @s4moore)
* Feature: Add offset minutes to hourly schedules (David Gibbs @fallingrock)
* Doc: Remove & Retention (formally known as Auto-/Smart-Remove) with improved GUI and user manual section (#2000)

Christian Buhtz avatar Christian Buhtz

Tag #2494 passed

  • Ran for
  • Total time
  • New branch build
bit-team/backintime:.travis.yml@6441aa1
# SPDX-FileCopyrightText: © 2008 Back In Time Team
#
# SPDX-License-Identifier: CC0-1.0
#
# This file is released under Creative Commons Zero 1.0 (CC0-1.0) and part of
# the program "Back In Time". The program as a whole is released under GNU
# General Public License v2 or any later version (GPL-2.0-or-later).
#
# TravisCI (https://travis-ci.org) configuration file
os: linux

# Support End of "Focal" (20.04 LTS) is April 2025
# dist: focal
# Support End of "Jammy" (22.04 LTS) is April 2027
dist: jammy

language: python

arch:
 - amd64

python:
  - "3.9"
  - "3.10"
  - "3.11"
  - "3.12"
  - "3.13"

addons:
  # add localhost to known_hosts to prevent ssh unknown host prompt during unit tests
  ssh_known_hosts: localhost

env:
  # TravisCI support said this could prevent errors from "make".
  PYTHONUNBUFFERED=1

before_install:
  # disable mongodb as we don't need it and it sometimes temporary fails
  # https://github.com/travis-ci/travis-ci/issues/4937#issuecomment-149289729
  - sudo rm -f /etc/apt/sources.list.d/mongodb*.list
  - sudo apt-key del 90CFB1F5
  - sudo apt-get -qq update
  # install screen, and util-linux (provides flock) for test_sshtools
  - sudo apt-get install -y sshfs screen util-linux libdbus-1-dev

# jobs:
#   exclude:
#     - python: "3.9"
#     - python: "3.10"
#     - python: "3.11"
#     - python: "3.12"

install:
  - pip install -U pip
  - pip install pylint ruff flake8 pyfakefs keyring
  - pip install pyqt6 dbus-python
  # add ssh public / private key pair to ensure user can start ssh session to localhost for tests
  - ssh-keygen -b 2048 -t rsa -f /home/travis/.ssh/id_rsa -N ""
  - cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  # start ssh-agent so that we can add private keys
  - eval `ssh-agent -s`

script:
  # compile all files - ensure that syntax is correct
  - python -m compileall common common/test common/plugins qt qt/test qt/plugins
  # run unit tests - ensure that functionality is correct
  - cd common
  - ./configure
  - make unittest-v
  - cd ..
  - cd qt
  - ./configure
  - make
  - pytest --verbose
Build Config
{
  "language": "python",
  "os": [
    "linux"
  ],
  "dist": "jammy",
  "arch": [
    "amd64"
  ],
  "python": [
    "3.9",
    "3.10",
    "3.11",
    "3.12",
    "3.13"
  ],
  "addons": {
    "ssh_known_hosts": [
      "localhost"
    ]
  },
  "env": {
    "jobs": [
      {
        "PYTHONUNBUFFERED": "1"
      }
    ]
  },
  "before_install": [
    "sudo rm -f /etc/apt/sources.list.d/mongodb*.list",
    "sudo apt-key del 90CFB1F5",
    "sudo apt-get -qq update",
    "sudo apt-get install -y sshfs screen util-linux libdbus-1-dev"
  ],
  "install": [
    "pip install -U pip",
    "pip install pylint ruff flake8 pyfakefs keyring",
    "pip install pyqt6 dbus-python",
    "ssh-keygen -b 2048 -t rsa -f /home/travis/.ssh/id_rsa -N \"\"",
    "cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys",
    "eval `ssh-agent -s`"
  ],
  "script": [
    "python -m compileall common common/test common/plugins qt qt/test qt/plugins",
    "cd common",
    "./configure",
    "make unittest-v",
    "cd ..",
    "cd qt",
    "./configure",
    "make",
    "pytest --verbose"
  ]
}