dfc 3.0.0 released
bringing lots of improvements, new features and bug fixes
It's been only two months since last version of
dfc was released. However, a new major version is already available!
dfc 3.0.0 brings a LOT of changes over the 2.x.x series and this explains the version bump.
Some statistics would probably give a better idea of what I mean (output of
git diff v2.5.0 v3.0.0 --shortstat):
38 files changed, 5232 insertions(+), 978 deletions(-)
- Internalization support:
dfccan now be easily translated into other languages. Being a french native speaker, I already translated
dfcinto French. Of course, if you would like to contribute and translate
dfcinto a language you speak fluently, you are more that welcomed.
- An optional configuration file has appeared. It allows you to change
dfccolors, symbol used to draw the graphs, values from which usage is considered medium and high and colors used in HTML export. So yes, if Mac OSX user want to change the default '=' sign for a '$' sign, they can definitely do it. :P
- Auto-adjust feature has been improved. Now, instead of arbitrary disabling options when it estimated that the width was too small, it computes the required width and disables options in a smart way until the output fits the terminal width. Of course, this behavior can still be disabled using the
Better platform support¶
- Mac OSX users may now enjoy the
- DragonFly BSD support
- NetBSD support
- OpenBSD support
-doption allows you to see... used size (true: it did not exist in previous releases of
-eoption allows you to export data to other formats. What does this mean? Instead of simply displaying information on your console, the data generated by
dfccan now be exported CSV, TeX and HTML format. In my opinion, the most useful one probably is the HTML export. See an example of what it looks like with color and without color . It's now easy to imagine a cron job output results to HTML format and send it via e-mail or something of the kind.
-loption allows you to only show information about locally mounted file system (just like the old good
-pallows you to perform filtering based on file system name.
-qsorts the output based on file system name, file system type or mount point. For those interested, the algorithm used is a merge sort because I think it probably is one of the most efficient and easy to implement considering that the data is stored in a linked list structure (memory problem does not exist here as all it does is changing pointers (but the data to sort is very small anyway)).
Of course, all those new options are fairly well documented in the manpage.
Codebase has been entirely reviewed and modified. So, with all those changes, some bugs may have been introduced even though I thoroughly tested
dfc during the development process and spent the last 10 days hunting bugs. However, this release includes some bug fixes over 2.5.0.
The one worth to mention is a bug that was affecting FreeBSD users and was causing
dfc to be really wrong (130% usage was possible...). This has of course been fixed in this release. Inodes count was also wrong on FreeBSD and is has also been fixed.
Thanks to the all of the contributors¶
This release has been marked by contributions from external users and I especially want to thank them for their contributions:
- Sylvain Laperche who came up with a brilliant idea that makes
dfccodebase easily maintainable even if new export options are added in the future. He also reviewed the source code and proposed patches.
- Cyril Roelandt for various patches which brought initial support for html and tex export, support
-ooption for OSX, NetBSD port, etc.
- Landry Breuil who provided a patch that brought initial support for OpenBSD and another one that fixed the bug causing wrong values to be displayed on *BSD platforms.
- Baptiste Daroussin for maintaining
dfcinto FreeBSD ports and bringing advice and patches.
- Khalid El Fathi for packaging
dfcfor Debian and reporting bugs.
- Kevin Gillieron for reviewing the code and providing advice.
I think I also need to mention that due to the support of more platforms and the use of internalization support, I have switched from using a simple
Makefile to using
cmake. Therefore, compilation process has changed a little but all of this is explained in the README.
I had fun developing this version and I really hope that you will enjoy it! However, this will probably be the last major one as to my point of view,
dfc is pretty much feature complete now. A 3.1.0 is planned but it will only bring small changes and improvements and no massive ones like those found in this release.