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 0.5 (2017-06-24)
- Added
linux_utils.atomic
module (atomic filesystem operations). - Expose parsed NFS information in
FileSystemEntry
objects. - Test coverage improvements and minor code changes.
- Consistently define
__all__
for modules.
Release 0.4.1 (2017-06-23)
A "vanity release" to add missing links in the README because the missing links caused PyPI to render the readme on the project page as plain text instead of reStructuredText converted to HTML :-).
Release 0.4 (2017-06-22)
Added the command line programs cryptdisks-start-fallback
and
cryptdisks-stop-fallback
. My reason for adding these was so that I could
refer to them in the documentation of my rsync-system-backup package:
How to set up unattended backups to an encrypted USB disk.
Release 0.3 (2017-06-21)
Improved /etc/crypttab
compatibility:
- Support for
LABEL="..."
device identifiers. - Respect the
/etc/crypttab
optionsdiscard
,readonly
andtries
. - Ignore encrypted filesystems that aren't LUKS.
Release 0.2 (2017-06-21)
Added a Python API for cryptsetup
(to control LUKS full disk encryption)
including Python emulation of cryptdisks_start
and cryptdisks_stop
.
This functionality is making it easier for me to write test suites for Python projects that involve disk encryption, for example crypto-drive-manager and rsync-system-backup.
Release 0.1 (2017-06-21)
The initial release of linux-utils
supports parsing of the /etc/fstab
(/proc/mounts
) and /etc/crypttab
configuration file formats based on a
"generic tabfile" parser. The "history" section of the readme explains why this
project came to be:
Back in 2015 I wrote some Python code to parse the Linux configuration files
/etc/fstab
and /etc/crypttab
for use in crypto-drive-manager. Fast
forward to 2017 and I found myself wanting to use the same functionality
in rsync-system-backup. Three options presented themselves to me:
- Copy/paste the relevant code. Having to maintain the same code in multiple places causes lower quality code because having to duplicate the effort of writing documentation, developing tests and fixing bugs is a very demotivating endeavor. In fact sometime in 2016 I did copy/paste parts of this code into a project at work, because I needed similar functionality there. Of course since then the two implementations diverged :-p.
- Make crypto-drive-manager a dependency of rsync-system-backup. Although this approach is less ugly than copy/pasting the code, it still isn't exactly elegant because the two projects have nothing to do with each other apart from working with LUKS encrypted disks on Linux.
- Extract the functionality into a new package. In my opinion this was clearly the most elegant approach, unfortunately it also required the most work from me :-). On the plus side I've published linux-utils with a test suite which means less untested code remains in crypto-drive-manager (which doesn't have a test suite at the time of writing).
While extracting the code I shortly considered integrating the functionality
into debuntu-tools, however the /etc/fstab
and /etc/crypttab
parsing
isn't specific to Debian or Ubuntu at all and debuntu-tools has several
dependencies that aren't relevant to Linux configuration file parsing.
Tangentially related: The reason I went with the extremely generic name linux-utils is because I will be adding more "specific to Linux but not Debian" functionality to this package in the very near future :-).