From Fedora Project Wiki
 
(19 intermediate revisions by 3 users not shown)
Line 19: Line 19:
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->


= Change Proposal Name Python3-rdiff-backup =
= Python3-rdiff-backup =


== Summary ==
== Summary ==
Line 31: Line 31:
This should link to your home wiki page so we know who you are.  
This should link to your home wiki page so we know who you are.  
-->
-->
* Name: [[User:Kevin| Kevin Fenzi]] and [User:frankcrawford| Frank Crawford]
* Name: [[User:Kevin| Kevin Fenzi]] and [[User:FrankCrawford| Frank Crawford]]
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
* Email: <your email address so we can contact you, invite you to meetings, etc. Please provide your Bugzilla email address if it is different from your email in FAS>
* Email: [mailto:kevin@scrye.com <kevin@scrye.com>] and [mailto:frank@crawford.emu.id.au <frank@crawford.emu.id.au>]
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
Line 43: Line 43:


== Current status ==
== Current status ==
* Targeted release: [[Releases/<number> | Fedora <number> ]]  
* Targeted release: [[Releases/32 | Fedora 32 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 52: Line 52:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1798431 #1798431]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/445 #445]


== Detailed Description ==
== Detailed Description ==
Line 93: Line 93:


Old, no longer maintained python2 version will be replaced with new 2.0.0 python3 version.
Old, no longer maintained python2 version will be replaced with new 2.0.0 python3 version.
This update will also allow a number of locally maintained patches to be dropped as they have now been incorporated into the revitalised upstream project.


This is also a major upgrade to this backup software and is the primary Linux distribution of the current developer, and will put Fedora in a good position to introduce new features going forward.
This is also a major upgrade to this backup software and is the primary Linux distribution of the current developer, and will put Fedora in a good position to introduce new features going forward.
Line 99: Line 101:
* Proposal owners:
* Proposal owners:


Wait for final 2.0.0 release. This is planned for Feb 2020. Gather feedback from users via copr testing and testing in rawhide and f32. Once f32 is out, push epel and older stable releases as well.  
# Test beta releases via rawhide and COPR (completed for first beta release, planned for upcoming beta releases).
 
# Gather feedback from this testing (in progress).
# Wait for final 2.0.0 release. This is planned for Feb 2020.
# Once f32 is out, push EPEL and older stable releases as well (due to compatibility issues).  
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 120: Line 124:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
Previous Python2 versions are not interoperable with the new Python3 version, when used for remote operation, however, the actual backups are compatible between the two.  This does require that all hosts used for remote operations are upgraded at the same time to continue to perform remote operations.


== How To Test ==
== How To Test ==
Line 138: Line 142:


Test backups with new version. Test existing wrapper scripts and cron jobs.
Test backups with new version. Test existing wrapper scripts and cron jobs.
Note that upstream has extensive testing and this will be leveraged for the testing of the new release.


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)  
N/A (not a System Wide Change)


== User Experience ==
== User Experience ==
Line 170: Line 176:
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


rdiff-backup will stop working with the retirement of python2 and users will need to move to a new backup setup.
rdiff-backup will stop working in Fedora with the retirement of python2 and users will need to move to a new backup setup.


== Documentation ==
== Documentation ==
Line 185: Line 191:
-->
-->


[[Category:ChangePageIncomplete]]
From the rdiff-backup release notice:
 
=== Version 2.0.0 - ready for the future ===
 
This new release has been made truly ready for the future, with a move to [https://github.com/rdiff-backup GitHub], Python 3 support, automated CI/CD pipeline on [https://travis-ci.org/rdiff-backup Travis], availability on [https://pypi.org/project/rdiff-backup PyPi] and no known regression bug compared to version 1.2.8/1.3.3.
 
We even found the time to add a few features for you (details in the [https://github.com/rdiff-backup/rdiff-backup/blob/v2.0.0/CHANGELOG change log]):
 
* sparse files handling has become more efficient on file systems which support it
* more compressed file formats are kept as-is
* have a look at the `--no-fsync` option to improve speed of backup (at the slight risk of data loss)
* reproducible builds are possible
* verbosity can be set via environment variable `RDIFF_BACKUP_VERBOSITY`
 
On the down side, we have to say that due to the many changes, rdiff-backup 2.x can't communicate with older versions 1.x in client-server mode ('''but''' the repository formats remain compatible), so you'll need to upgrade client and server at once.
 
Which brings us to the installation, described in details in the [https://github.com/rdiff-backup/rdiff-backup/blob/v2.0.0/README.md read me], but here's the quick version:
 
* On Fedora 32, in this distribution
* On Fedora 30 and 31 available as an update
* CentOS/RHEL 7 and 8, available as an update in [https://fedoraproject.org/wiki/EPEL EPEL]
* On Ubuntu, you may use [https://code.launchpad.net/~rdiff-backup/+archive/ubuntu/rdiff-backup-development Otto's PPA repo]
* Windows, download the asset `rdiff-backup-2.0.0.win32exe.zip` from [https://github.com/rdiff-backup/rdiff-backup/releases/tag/v2.0.0 here] and unpack it somewhere in your `PATH`.
* Any other supported platform, use `pip install rdiff-backup` (or download and install the proper asset from [https://github.com/rdiff-backup/rdiff-backup/releases/tag/v2.0.0 here]).
 
If you encounter issues, log a ticket in [https://bugzilla.redhat.com/ Bugzilla], contact us on the [https://lists.nongnu.org/mailman/listinfo/rdiff-backup-user rdiff-backup-users mailing list] and/or [https://github.com/rdiff-backup/rdiff-backup/issues/new report an issue].
 
Happy backup, and remember: ''no'' backup, ''no'' pity!
 
[[Category:ChangeAcceptedF32]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Latest revision as of 14:14, 10 April 2020


Python3-rdiff-backup

Summary

rdiff-backup is a python based backup tool. While development stopped for many years, it's now resumed upstream and a python3 port has been (almost) completed. Unfortunately, the python2 and python3 versions will not interoperate, although backups made with either version are compatible. Because of this we want to push the new python3 based rdiff-backup to all supported releases when Fedora 32 is released.

Owner

Current status

Detailed Description

We want to move to the upstream supported python3 version, but we want to make sure people with mixed infrastructures are able to upgrade all their hosts with the new version so they continue to interoperate, as there are numerous incompatibilities between the python2 and python3 program implementation, such as default string types and pickle definitions.

Like most backup programs, it is a long term commitment by the user and the end of life of python2 has forced a migration to a python3 for the code. This will allow rdiff-backup repositories to continue to be used going forward.

Benefit to Fedora

Old, no longer maintained python2 version will be replaced with new 2.0.0 python3 version.

This update will also allow a number of locally maintained patches to be dropped as they have now been incorporated into the revitalised upstream project.

This is also a major upgrade to this backup software and is the primary Linux distribution of the current developer, and will put Fedora in a good position to introduce new features going forward.

Scope

  • Proposal owners:
  1. Test beta releases via rawhide and COPR (completed for first beta release, planned for upcoming beta releases).
  2. Gather feedback from this testing (in progress).
  3. Wait for final 2.0.0 release. This is planned for Feb 2020.
  4. Once f32 is out, push EPEL and older stable releases as well (due to compatibility issues).
  • Other developers: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Previous Python2 versions are not interoperable with the new Python3 version, when used for remote operation, however, the actual backups are compatible between the two. This does require that all hosts used for remote operations are upgraded at the same time to continue to perform remote operations.

How To Test

Test backups with new version. Test existing wrapper scripts and cron jobs.

Note that upstream has extensive testing and this will be leveraged for the testing of the new release.

N/A (not a System Wide Change)

User Experience

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

rdiff-backup will stop working in Fedora with the retirement of python2 and users will need to move to a new backup setup.

Documentation

N/A (not a System Wide Change)

Release Notes

From the rdiff-backup release notice:

Version 2.0.0 - ready for the future

This new release has been made truly ready for the future, with a move to GitHub, Python 3 support, automated CI/CD pipeline on Travis, availability on PyPi and no known regression bug compared to version 1.2.8/1.3.3.

We even found the time to add a few features for you (details in the change log):

  • sparse files handling has become more efficient on file systems which support it
  • more compressed file formats are kept as-is
  • have a look at the --no-fsync option to improve speed of backup (at the slight risk of data loss)
  • reproducible builds are possible
  • verbosity can be set via environment variable RDIFF_BACKUP_VERBOSITY

On the down side, we have to say that due to the many changes, rdiff-backup 2.x can't communicate with older versions 1.x in client-server mode (but the repository formats remain compatible), so you'll need to upgrade client and server at once.

Which brings us to the installation, described in details in the read me, but here's the quick version:

  • On Fedora 32, in this distribution
  • On Fedora 30 and 31 available as an update
  • CentOS/RHEL 7 and 8, available as an update in EPEL
  • On Ubuntu, you may use Otto's PPA repo
  • Windows, download the asset rdiff-backup-2.0.0.win32exe.zip from here and unpack it somewhere in your PATH.
  • Any other supported platform, use pip install rdiff-backup (or download and install the proper asset from here).

If you encounter issues, log a ticket in Bugzilla, contact us on the rdiff-backup-users mailing list and/or report an issue.

Happy backup, and remember: no backup, no pity!