← Back to team overview

duplicity-team team mailing list archive

Version 2.0.0 Progress

 

Intro

This will serve to keep track of major changes coming down the pike for
v2.0 duplicity.  I'll update with any new changes

I have made a new project called duplicity-py3
<https://gitlab.com/duplicity/duplicity-py3>. It passes all the tests we
have. I’m working on more comprehensive testing now.
Timeline

At this point we have released 3 alpha and 3 beta versions with almost
minimal from testers. I’d like to get the testing done before the release
if at all possible.

The main branch has been merged into *duplicity-py3*, and *main* has is now
in a release freeze. When we release 2.0, I’ll just replace main's repo
with the duplicity-py3 repo and be done with it, down to just one project
again. Between now and then I have a tentative release schedule:
daterelease
07/10 RC0
07/17 RC1
07/24 RC2
07/27 2.0.0Python 3.8+ only from now on

   - 2.7 is End Of Life
   - 3.0 to 3.7 are End Of Life
   - remove future (includes builtins)
   - pure Python 3 code only (1 C extension)

Deprecated options

   - –gio
   - –old-filenames
   - –short-filenames
   - –time-separator
   - –exclude-globbing-filelist
   - –include-globbing-filelist
   - –exclude-filelist-stdin
   - –include-filelist-stdin
   - –s3-multipart-max-timeout
   - –s3-use-multiprocessing
   - –s3-use-server-side-encryption
   - –s3-use-server-side-kms-encryption

NOTE 1: For --old-filenames and --short-filenames, only the option itself
and the ability to *create* old and short filenames will be removed. We
will maintain the ability to read them for the foreseeable future.

NOTE 2: The --time-separator option will be deprecated only for full or
incremental backups, but allowed for non-backup commands since it is
necessary to read any backups created with a nonstandard time separator
character. We will not create any new files with time separators.
Changed Options

   - --file-to-restore to --path-to-restore
   - --do-not-restore-ownership to --no-restore-ownership

Remove replicate command

   - See issue #98
   - Plenty of other tools available, rsync, rclone, etc.

Remove rdiffdir command

   - Not known to be in use.
   - Would require major updates to maintain.

Remove s3_boto_backend.py

   - boto has not been updated since 2018
   - Does not support above Python 3.4
   - Replaced by s3_boto3_backend.py

Help system overhaul

   - Module optparse will be replaced by argparse
   - Hierarchical help for each command and backend
   - Some improvements may be moved to 2.1 or later

Command line fixes

   - Convert from optparse (deprecated) to argparse.
   - There will be 1 optional and 1 or 2 positional args:
      1. COMMAND - all previous commands plus help (optional for
      backup/restore)
      2. SOURCE - the source directory or URL - same as previous
      3. TARGET - the target directory or URL - same as previous
      4. Other - timestamp or count
   - Compression and encryption option interaction:
      1. compression and encryption are both default
      2. if –no-encryption is passed, only compression will be done (by
      default gzip algo for now)
      3. if –no-compression is passed, only encryption will be done (gpg
      gets –compress-algo=none)
      4. if both are passed we generate plain tarballs