Changelog for rbackup ===================== Version 0.7.2 ------------- * backup script * Do not log user-provided destination argument * rbackup.config.config_files * Use ternary statement for return condition * rbackup.plugins * Add exception info parameters for PackageManager.__exit__() * rbackup.struct.hierarchy * Rewrite docstrings to explain things more clearly * Don't import os.PathLike directly into module-level namespace * Log shutil.rmtree.avoids_symlink_attacks as a warning, not an error * rbackup.struct.repository * Docstring and comment cleanup * Log shutil.rmtree.avoids_symlink_attacks as a warning, not an error * tests.test_hierarchy * Split tests into specifically named cases * Do not pass kwarg in Hierarchy.cleanup() test * tests.test_repository * Split normal and special cases for Repository.create_snapshot() * Split properties and dunder methods of Repository * Project Structure * Add remote backup script "rbackup" * Use % formatting in all log messages over f-strings Version 0.7.1 ------------- * Bug fixes * rbackup.logging: fix incorrect passing of non-formatter object Version 0.7 ----------- * backup script * Make ``backup`` strictly for backups to a local repository * Add description for script in help message * Bug fixes * backup script * Fix incorrect log message handling * Add slash between port and hostname * Remove -v, --verbose flag * Documentation * Change all instances of ``:returns:`` in docstrings to ``:return:`` * Make mention of default kwargs values for all modules * Project Structure * Split common logging operations into rbackup.logging module Version 0.6 ----------- * backup script * Add --port option for ssh * Add --umask option for changing umask of backup process * backupd * Add backupd script * Add config file * rbackup.network * Add rbackup.network module * rbackup.system * Add associated tests * Building * Fix incorrect parameters on setup.py sphinx section * Project Structure * Add ``rbackup.network``, ``rbackup.script``, and ``rbackup.system`` * Split main backup script into separate library modules for easier maintainability Version 0.5.3 ------------- * rbackup.rsync * Log at the exception level, not at the library level * rbackup.config.config_files * ``load_list_from_option()`` * Use non-mutable default argument * Ensure that list is returned if fallback is unset * rbackup.struct.repository.Repository * Implement ``__eq__()``, ``__ne__()``, and ``__hash__()`` * Update docstrings explaining what happens to snapshot_symlink when snapshot is deleted * Building * Add sphinx build commands to ``setup.py`` * Explain replacing colons on datetime on default snapshot name * Project Structure * Move config module to ``rbackup.config.config_files`` * Move config files to ``config_files/`` in root dir * Delete ``rbackup.plugins.pacman`` module Version 0.5.2 ------------- * Use ``try..finally`` blocks within context manager functions Version 0.5.1 ------------- Bug Fixes ^^^^^^^^^ * backup script * Fix uninitialized repo variable * If rsync process fails, exit by its return code Version 0.5 ----------- * rbackup.plugins.package_managers.PackageManager * Raise ``NotimplementedError`` for non-supported operations * rbackup.struct.hierarchy.Hierarchy * Move ``Repository.gen_metadata()`` to ``Hierarchy._gen_metadata()`` * rbackup.struct.repository.Repository * Add basic logic for updating symlink after snapshot removal * Implement snapshot deletion using ``__delitem__()`` * Add basic logic for symlinking after snapshot removal * rbackup.struct.repository.Snapshot * Add attribute code to ``_gen_metadata()`` * Add ``ctime`` attribute * Project structure * Add file for snapshot management script * Rename ``rbackup.package_managers`` to ``rbackup.plugins`` Version 0.4.1 ------------- * backup script * Change umask to ``0000`` when running backup Version 0.4 ----------- * backup script * Use fallback option * rbackup.config Folder * Add ``[main]`` to default config file * rbackup.config.config_files * Add ``load_list_from_option()`` Version 0.3 ----------- * rbackup.rsync * Add default rsync options list * rbackup.struct.hierarchy.Hierarchy * Don't calculate private attributes each time they are called * rbackup.struct.repository.Repository * Add ``gen_metadata()`` * Add ``symlink_snapshot()`` * Ignore ``PermissionError`` when creating snapshot symlink * config_files * Include ``/root`` in default paths * Split config file handling into its own module * Doctest cleanup Version 0.2 ----------- * rbackup.config * Merge, filter, and sort file entries from multiple files * rbackup.rsync * Change execution of rsync subprocess to text mode * rbackup.config_files * Split ``etc-include`` and ``system-include`` config files * rbackup.package_managers.packagemanager.PackageManager * Remove type and value checking * Add ``gen_db_archive()`` * Check for valid compression mode before proceeding with ``gen_db_archive()`` * rbackup.struct.hierarchy.Hierarchy * Add ``metadata_path`` * Subclass ``os.PathLike`` * Make write_metadata() an atomic operation * Log metadata read/write operations * rbackup.struct.repository.Repository * Add ``cleanup()`` * Add ``is_valid_snapshot_name()`` * Add ``gen_snapshot_path()`` * Remove current_snapshot attribute * Implement ``__repr__()`` * Use regex to parse user snapshot name input * Split snapshot metadata lists * Change serialization backend from pickle to JSON * Raise ``ValueError`` when snapshot name contains a '/' * rbackup.struct.repository.Snapshot * Remove all attributes except for ``pkg_dir`` * Project structure * Do not ship test suite under rbackup package * Rename ``rbackup.hierarchy`` package to ``rbackup.struct`` Version 0.1 ----------- * Initial commit * Project structure * Add basic modules * Add LICENSE