The purpose of this document is to list all of the notable changes to this project. The format was inspired by Keep a Changelog. This project adheres to semantic versioning.
- Release 6.0 (2018-08-03)
- Release 5.3 (2018-08-03)
- Release 5.2 (2018-04-27)
- Release 5.1 (2018-04-27)
- Release 5.0 (2018-03-29)
- Release 4.4 (2017-04-13)
- Release 4.3.1 (2017-04-13)
- Release 4.3 (2016-10-31)
- Release 4.2 (2016-08-05)
- Release 4.1 (2016-08-05)
- Release 4.0 (2016-07-09)
- Release 3.5 (2016-07-09)
- Release 3.4 (2016-07-09)
- Release 3.3 (2016-07-09)
- Release 3.2 (2016-07-08)
- Release 3.1 (2016-04-13)
- Release 3.0 (2016-04-13)
- Release 2.3 (2015-08-30)
- Release 2.2 (2015-07-19)
- Release 2.1 (2015-07-19)
- Release 2.0 (2015-07-19)
- Release 1.1 (2015-07-19)
- Release 1.0 (2015-07-19)
- Release 0.1.2 (2015-07-15)
- Release 0.1.1 (2014-07-03)
- Release 0.1 (2014-07-03)
Release 6.0 (2018-08-03)
This is a bug fix release that changes the behavior of the program, and because rotate-backups involves the deletion of important files I'm considering this a significant change in behavior that deserves a major version bump...
It was reported in issue #12 that filenames that match the filename pattern
but contain digits with invalid values for the year/month/day/etc fields would
cause a ValueError
exception to be raised.
Starting from this release these filenames are ignored instead, although a warning is logged to make sure the operator understands what's going on.
Release 5.3 (2018-08-03)
- Merged pull request #11 which introduces the
--use-rmdir
option with the suggested use case of removing CephFS snapshots. - Replaced
--use-rmdir
with--removal-command=rmdir
(more general).
Release 5.2 (2018-04-27)
- Added support for filename patterns in configuration files (#10).
- Bug fix: Skip human friendly pathname formatting for remote backups.
- Improved documentation using
property_manager.sphinx
module.
Release 5.1 (2018-04-27)
- Properly document supported configuration options (#7, #8).
- Properly document backup collection strategy (#8).
- Avoid
u''
prefixes in log output of include/exclude list processing. - Added this changelog, restructured the online documentation.
- Added
license
key tosetup.py
script.
Release 5.0 (2018-03-29)
The focus of this release is improved configuration file handling:
Refactor configuration file handling (backwards incompatible). These changes are backwards incompatible because of the following change in semantics between the logic that was previously in rotate-backups and has since been moved to update-dotdee:
- Previously only the first configuration file that was found in a default location was loaded (there was a 'break' in the loop).
- Now all configuration files in default locations will be loaded.
My impression is that this won't bite any unsuspecting users, at least not in a destructive way, but I guess only time and a lack of negative feedback will tell :-p.
Added Python 3.6 to supported versions.
Include documentation in source distributions.
Change theme of Sphinx documentation.
Moved test helpers to
humanfriendly.testing
.
Release 4.4 (2017-04-13)
Moved ionice
support to executor.
Release 4.3.1 (2017-04-13)
Restore Python 2.6 compatibility by pinning simpleeval dependency.
While working on an unreleased Python project that uses rotate-backups I noticed that the tox build for Python 2.6 was broken. Whether it's worth it for me to keep supporting Python 2.6 is a valid question, but right now the readme and setup script imply compatibility with Python 2.6 so I feel half obliged to 'fix this issue' :-).
Release 4.3 (2016-10-31)
Added MacOS compatibility (#6):
- Ignore
stat --format=%m
failures. - Don't use
ionice
when not available.
Release 4.2 (2016-08-05)
Release 4.1 (2016-08-05)
- Enable choice for newest backup per time slot (#5).
- Converted
RotateBackups
attributes to properties (I ❤ documentability :-). - Renamed 'constructor' to 'initializer' where applicable.
- Simplified the
rotate_backups.cli
module a bit.
Release 4.0 (2016-07-09)
Added support for concurrent backup rotation.
Release 3.5 (2016-07-09)
- Use key properties on
Location
objects. - Bring test coverage back up to >= 90%.
Release 3.4 (2016-07-09)
Added support for expression evaluation for retention periods.
Release 3.3 (2016-07-09)
Started using verboselogs.
Release 3.2 (2016-07-08)
Added support for Python 2.6 :-P.
By switching to the
key_property
support added in property-manager 2.0 I was able to reduce code duplication and improve compatibility:6 files changed, 20 insertions(+), 23 deletions(-)
This removes the dependency on
functools.total_ordering
and to the best of my knowledge this was the only Python >= 2.7 feature that I was using so out of curiosity I changedtox.ini
to run the tests on Python 2.6 and indeed everything worked fine! :-)Refactored the makefile and
setup.py
script (checkers, docs, wheels, twine, etc).
Release 3.1 (2016-04-13)
Implement relaxed rotation mode, adding a --relaxed
option (#2, #3).
Release 3.0 (2016-04-13)
- Support for backup rotation on remote systems.
- Added Python 3.5 to supported versions.
- Added support for
-q
,--quiet
command line option. - Delegate system logging to coloredlogs.
- Improved
rotate_backups.load_config_file()
documentation. - Use
humanfriendly.sphinx
module to generate documentation. - Configured autodoc to order members based on source order.
Some backwards incompatible changes slipped in here, e.g. removing
Backup.__init__()
and renaming Backup.datetime
to Backup.timestamp
.
In fact the refactoring that I've started here isn't finished yet, because the
separation of concerns between the RotateBackups
, Location
and
Backup
classes doesn't make a lot of sense at the moment and I'd like to
improve on this. Rewriting projects takes time though :-(.
Release 2.3 (2015-08-30)
Add/restore Python 3.4 compatibility.
It was always the intention to support Python 3 but a couple of setbacks made it harder than just "flipping the switch" before now :-). This issue was reported here: xolox/python-naturalsort#2.
Release 2.2 (2015-07-19)
Added support for configuration files.
Release 2.1 (2015-07-19)
Bug fix: Guard against empty rotation schemes.
Release 2.0 (2015-07-19)
Backwards incompatible: Implement a new Python API.
The idea is that this restructuring will make it easier to re-use (parts of) the rotate-backups package in my other Python projects..
Release 1.1 (2015-07-19)
Merged pull request #1: Add include/exclude filters.
I made significant changes while merging this (e.g. the short option for the include list and the use of shell patterns using the fnmatch module) and I added tests to verify the behavior of the include/exclude logic.
Release 1.0 (2015-07-19)
- Started working on a proper test suite.
- Split the command line interface from the Python API.
- Prepare for API documentation on Read The Docs.
- Switch from
py_modules=[...]
topackages=find_packages()
insetup.py
.
Release 0.1.2 (2015-07-15)
- Bug fix for
-y
,--yearly
command line option mapping. - Fixed some typos (in the README and a comment in
setup.py
).
Release 0.1.1 (2014-07-03)
- Added missing dependency.
- Removed Sphinx-isms from README (PyPI doesn't like it, falls back to plain text).
Release 0.1 (2014-07-03)
Initial commit (not very well tested yet).