Add a contributing doc + ncdu 1.16

This commit is contained in:
Yorhel 2021-07-02 13:44:45 +02:00
parent 2f07d8e8e0
commit ecb76f9797
27 changed files with 186 additions and 20 deletions

44
dat/contributing.md Normal file
View file

@ -0,0 +1,44 @@
% Want to contribute?
Every free/open source software project is run in a different way. To set the
right expectations and prevent disappointment and/or wasted effort, here's a
few notes on how I deal with contributions.
**Feedback** of any kind is always welcome, but I make no promise that I will
act on it. Feel free to open an issue on [my Gitea
instance](https://code.blicky.net/yorhel) or mail me at
[projects@yorhel.nl](mailto:projects@yorhel.nl).
I love **bug reports**, so don't hesitate to report anything that doesn't work
or doesn't work as you had expected. Whether I will actually fix it depends on
the nature of the bug, of course, but I do very much value stable and reliable
software.
**Feature requests** are welcome, but I tend to not act on most of them and may
sometimes outright reject a feature if it seems out of scope. It's still good
to have a list of potential features to work on if I feel like making myself
useful, so new ideas are nonetheless appreciated.
Feel free to send **patches** and **pull requests** for trivial fixes for
simple bugs, documentation issues, typos, etc. If the change is trivial to
review and improves the software in a noticeable way, I'm happy to apply it.
Don't bother submitting patches for things that don't noticeably improve the
software. I don't give a damn about compiler warnings when they don't affect
the correctness of the code. Slight inconsistencies in code style or typos in
variable names or comments (i.e. non-user visible parts) don't really need
fixing, either.
When it comes to patches or pull requests for larger fixes or new features, I
strongly advise you to get in touch first to discuss your planned changes.
After all, there's a good chance I already have opinions about it. Generally
speaking, I have no intention to merge code that I haven't thoroughly reviewed,
and I enjoy programming much more than I enjoy reviewing other people's code,
so just throwing patches over the fence and expecting me to merge anything is a
recipe for disappointment.
If you use my software in combination with **proprietary software** or a
proprietary OS (MacOS, Windows), then you're mostly on your own. I write free
software because I care about user freedom, so I'm not inclined to spend time
and effort improving my code to better work with software that I don't plan to
ever use. I may accept the occasional fix if it's simple enough, but I've no
intention to bend over backwards.

View file

@ -20,6 +20,12 @@ the incidental article on this site. Enjoy your stay!
<!-- These announcements are parsed by mkfeed.pl, see that file for formatting -->
## Announcements <a href="/feed.atom"><img src="/img/feed_icon.png" alt="Atom feed"></a>
`2021-07-02` - ncdu 1.16 released <!-- tags: ncdu, link: /ncdu -->
: A minor feature & bugfix release. This adds dynamic sizing of the file size
bar, an `$NCDU_LEVEL` environment variable when spawning a subshell, more
file mode flags and allows for a few future extensions to the JSON dump
format. [Ncdu homepage](/ncdu) - [Changelog](/ncdu/changes).
`2020-10-22` - nginx-confgen 2.0 released <!-- link: /nginx-confgen -->
: Completely rewritten in C for easier, more portable and more lightweight
builds. Variables are now globally scoped, `pre_if` supports braces,

View file

@ -9,13 +9,13 @@ POSIX-like environment with ncurses installed.
## Download
Latest version
: 1.15.1 ([ncdu-1.15.1.tar.gz](/download/ncdu-1.15.1.tar.gz) - [changes](/ncdu/changes))
: 1.16 ([ncdu-1.16.tar.gz](/download/ncdu-1.16.tar.gz) - [changes](/ncdu/changes))
I also have convenient static binaries for Linux
[i486](/download/ncdu-linux-i486-1.15.1.tar.gz),
[x86_64](/download/ncdu-linux-x86_64-1.15.1.tar.gz),
[ARM](/download/ncdu-linux-arm-1.15.1.tar.gz) and
[AArch64](/download/ncdu-linux-aarch64-1.15.1.tar.gz). Download, extract
[i486](/download/ncdu-linux-i486-1.16.tar.gz),
[x86_64](/download/ncdu-linux-x86_64-1.16.tar.gz),
[ARM](/download/ncdu-linux-arm-1.16.tar.gz) and
[AArch64](/download/ncdu-linux-aarch64-1.16.tar.gz). Download, extract
and run; no compilation or installation necessary (uses
[musl](http://www.musl-libc.org/)).
@ -72,6 +72,9 @@ A port to z/OS is available [here](https://dovetail.com/community/ncdu.html).
- [Duc](http://duc.zevv.nl/) - Multiple user interfaces.
- [gt5](http://gt5.sourceforge.net/) - Quite similar to ncdu, but a different approach.
- [gdu](https://github.com/dundee/gdu) - Go disk usage analyzer inspired by ncdu.
- [dua](https://github.com/Byron/dua-cli) - Rust disk usage analyzer.
- [godu](https://github.com/viktomas/godu) - Another Go disk usage analyzer, with a slightly different browser UI.
- [tdu](http://webonastick.com/tdu/) - Another small ncurses-based disk usage visualization utility.
- [tdu](https://bitbucket.org/josephpaul0/tdu) - Go command-line tool with ncdu JSON export.
- [TreeSize](http://treesize.sourceforge.net/) - GTK, using a treeview.
@ -83,3 +86,4 @@ A port to z/OS is available [here](https://dovetail.com/community/ncdu.html).
- [xdiskusage](http://xdiskusage.sourceforge.net/) - FLTK, with a treemap display.
- [fsv](http://fsv.sourceforge.net/) - 3D visualization.
- [Philesight](http://zevv.nl/play/code/philesight/) - Web-based clone of Filelight.
- [psHFO](https://github.com/FrankieDevOp/psdu) - Human-friendly du for PowerShell.

View file

@ -19,17 +19,18 @@ object is an array:
## Versioning
The `<majorver>` and `<minorver>` elements indicate the version of
the file format. These are numbers with accepted values in the range of `0
<= version <= 10000`. Major version must be `1`. Minor version is `0` for
ncdu 1.9 till 1.12, and `1` since ncdu 1.13 for the addition of the extended
mode. The major version should increase if backwards-incompatible changes are
made (preferably never), the minor version can be increased to indicate
additions to the existing format.
the file format. These are numbers with accepted values in the range of
`0 <= version <= 10000`. Major version must be `1`. Minor version is `0` for
ncdu 1.9 till 1.12, `1` for ncdu 1.13 till 1.15.2 for the addition of the
extended mode and `2` since ncdu 1.16 for the addition of the `nlink` field.
The major version should increase if backwards-incompatible changes are made
(preferably never), the minor version can be increased to indicate additions to
the existing format.
## Metadata
The `<metadata>` element is a JSON object holding whatever (short) metadata
you'd want. This block is currently (1.9-1.14.2) ignored by ncdu when
you'd want. This block is currently (1.9-1.16) ignored by ncdu when
importing, but it writes out the following keys when exporting:
progname
@ -94,15 +95,18 @@ dev
ino
: Number. Inode number as reported by `lstat().st_ino`. Together with the Device
ID this uniquely identifies a file in this dump. In the case of hard links, two
objects may appear with the same (`dev`,`ino`) combination. A value of 0 is
assumed if this field is absent. This is currently (ncdu 1.9-1.14.2) not a
problem as long as the `hlnkc` field is false, otherwise it will consider
everything with the same `dev` and empty `ino` values as a single hardlinked
file. Accepted values are in the range of `0 <= ino < 2^64`.
objects may appear with the same (`dev`,`ino`) combination. As of ncdu
1.16, this field is only exported if `st_nlink > 1`. A value of 0 is
assumed if this field is absent, which is fine as long as the `hlnkc` field
is false and `nlink` is 1, otherwise everything with the same `dev` and
empty `ino` values will be considered as a single hardlinked file.
Accepted values are in the range of `0 <= ino < 2^64`.
hlnkc
: Boolean. `true` if this is a file with `lstat().st_nlink > 1`. If absent,
`false` is assumed.
: Boolean. `true` if this is a file with `lstat().st_nlink > 1`. This field
redundant if the `nlink` field is also set, but is still included in new
dumps for backwards compatibility with ncdu versions prior to 1.16. If both
this and the `nlink` fields are absent, `false` is assumed.
read\_error
: Boolean. `true` if something went wrong while reading this entry. I.e. the
@ -139,6 +143,12 @@ excluded
interpreted to be equivalent to "pattern". This field should be absent if the
item has not been excluded from the calculation.
nlink
: (since ncdu 1.16) Number, the value of `lstat().st_nlink`. If this field is
present and has a value larger than 1, this file is considered for hardlink
counting. Accepted values are in the range `1 <= nlink < 2^32`. If absent,
`1` is assumed.
notreg
: Boolean. This is `true` if neither S\_ISREG() nor S\_ISDIR() evaluates to true.
I.e. this is a symlink, character device, block device, FIFO, socket, or
@ -166,7 +176,9 @@ mode
mtime
: Number, last modification time as a UNIX timestamp. Accepted range:
`0 <= mtime < 2^64`.
`0 <= mtime < 2^64`. As of ncdu 1.16, this number may also include an
(infinite precision) decimal part for fractional seconds, though the
decimal part is (currently) discarded during import.
## Miscellaneous notes