Exa Versions Save

A modern replacement for ‘ls’.

v0.10.1

3 years ago

A small patch release (exa's first!) to fix a couple of issues (and to demonstrate a quicker release pace).

Additions

(No new features)

Changes

  • Change the way the "ignored" status is aggregated for directories, so directories containing ignored files no longer look like the directory itself is ignored (bd4f144)
  • Change the icon for TeX files to a "T" (e3e776a)
  • Display the classification character (such as / for directories) at the end of symlink targets (dbd11d3)
  • Display more helpful error messages when a number in a command-line option or environment variable fails to be parsed (550f2d2)

Fixes

  • Fix thousand separators not being displayed in file sizes (7a4cde7)
  • Fix $EXA_GRID_ROWS displaying the wrong size table in certain situations (c729e22)
  • Fix month name not following locale when a file's date is in the current year (3a8005c)

Contributors

Thanks again to ariasuni.

v0.10.0

3 years ago

exa release v0.10.0

Sorry about the delay, everyone. My aim is still to follow the Rust project itself, and make smaller releases more often. Gonna keep trying until I get there.

There will be four new types of archive available from now on! An armv7 Linux build, a musl Linux build, an archive containing only the compiled man page and completions, and an archive containing the complete vendored source code.

This version should be the last version without Windows support.

Additions

  • The --time flag now defaults to modified without an argument (36cf5df)
  • Add options to hide table columns (925f517)
  • Add customisation settings to change the size colour scale (3ef6195)
  • Add flag for octal permissions (16046d5)
  • Add environment variable for icon spacing (51be9f4)
  • Add --numeric flag to display UIDs and GIDs (4ea79ee)

Changes

  • Make single-digit hour times zero-padded (1bf9e39)
  • Include symlinks to directories when grouping directories first (69a7e53)
  • Do not sort command-line arguments when --sort=none (bbd6db3)
  • Warn when trying to use the Git feature when it’s disabled (a740512)
  • Sort the command-line arguments (a740512)
  • Allow absolute paths in $TZ environment variable (57cf0f1)
  • Escape the delete character in filenames (b5b7310)
  • Symlinks to directory now use the ‘directory’ icon (0a7ffcd)

Fixes

  • Fix bug where icons weren’t displayed when file grid wraps (dd9dfff)
  • Fix bug where the wrong file timestamp was being used (215b779)
  • Fix crash on broken symlink in Git repository (a7a8e99)
  • Fix bug where long grid view didn’t turn into long view when piping (6010ed5)
  • Fix handling of potentially-unsupported time metadata. (a636d08)
  • Fix .gitignore parsing by using libgit2 instead of doing it ourselves. (046af5c)
  • Fix crash on encountering a pre-Unix-epoch timestamp. (bc830b9)
  • Fix display of August in timestamps. (3fe35b5)
  • Fix inverted space colour of icons when selecting them. (79bac41)
  • Fix extra column in long grid mode. (0f414cf)
  • Fix rounding of human-readable filesizes. (74ecf6d)

Contributors

Thanks to 0rvar, 0x3333, b05902132, BrennanMcDonald, de-vri-es, emgelb, FliegendeWurst, Freaky, imsofi, j-tai, LarsHaalck, mqudsi, msehnout, PatriotRossii, VichoReyes, whonore, and many others for contributing.

Special thanks to ariasuni.

v0.9.0

4 years ago

exa release v0.9.0

I will release more than one version of exa this year, mark my words.

Additions

  • Icon support with --icons (9497b30)
  • New sort options .name and .Name which ignore a leading dot (a156d96)
  • Support TIME_STYLE environment variable (9917810)
  • New option to only display directories, --only-dirs (054cac6)
  • Support 24-bit colours (dc2009a)
  • Display if a file is ignored by Git (80b0d9d)

Changes

  • Replace the mi colour with bO overlay colour (59d9e90)
  • Pre-release versions have their build number shown (c7497f3)
  • Add --classify to man page (9c77a95)
  • Highlighting for file types .zst (5fae489), Bazel and Ant (c635031), .ts (e711dbc), .m4v (9b446c0), and .jpf (9916742)
  • Create worker threads only once for performance (8cbde76)

Fixes

  • Allow zero-padded numbers in $LS_COLORS (afc9657, ce3f05c)
  • Make non-uppercase README files immediate (d9c9dbe)
  • Highlight README~ as temporary, not immediate (57e4c08)
  • Use more accurate time to fix inconsistent sorting (649744d)
  • Prevent infinite loop with -aaR (e936d7e)
  • Fix panic in certain timezones (9f76f94 and this fix)
  • Fix sorting by created time (faed8f9)
  • Fix Git status not working for paths containing ../ (f1a5b64)

Contributors

Thanks to alexmaco, ariasuni, asoderman, benmezger, BenWhitehead, cecton, chetgurevitch, dguo, Don42, Fierthraix, golem131, ignatenkobrain, jcrd, joshleeb, joshuarli, kornelski, LlinksRechts, lovesegfault, martinlindhe, mfarrugi, mgkurtz, mgttlinger, mopp, nasyxx, ne-sted, Offpics, Paradiesstaub, polyzen, rleungx, semarie, sergeysova, spk, and teresy for contributing!

v0.8.0

6 years ago

This release provides both bug fixes and new features. I've written a post that outlines what's new, as well as some remarks on how I'd like to handle getting me to do releases more often in the future: bsago.me/blog/exa/v0.8.0

Additions

  • Use completely new, less strict, more friendly options parser (b5bcf22)
  • Add a strict mode, for when you want to check your options (97d1472)
  • Add EXA_GRID_ROWS that makes --long --grid a bit more palatable (e933fa6)
  • Add EXA_DEBUG for logging information (e0727a1)
  • Add LS_COLORS parsing and colouring (adfee28, aa2e3a5)
  • Add EXA_COLORS parsing and colouring, which overrides the above (075fe80, aa2e3a5)
  • Initial support for a --git-ignore flag (827aa8b)

Changes

  • Default to sorting case-insensitively (57c647f)
  • Hide xattr errors unless xattrs were explicitly asked for (5189d66)
  • Add orf and nef file types (40ce7ba)
  • Add bk file type (eda3e56)
  • Only check the terminal width of stdout, not stdin and stderr (4289f4d)
  • Sorting by date now has new and old convenience aliases (f55bd6d)
  • Use only verified published crates, so exa can be on crates.io (1efb8a5)

Fixes

  • Use a patched version of libgit2 to prevent that libhttp_parser error (3405db1)
  • Fix bug where --tree --all didn't work (a2cd39e)
  • Fix bug where ISO dates were long when they should be short and vice versa (fca5b6b)
  • Fix bug where month name padding made the whole table look weird (999c9d5)

v0.7.0

6 years ago

Additions

  • Display device IDs when listing block or character devices (ef5fa90660412c1d95a3237be1f4e278a38105e1)
  • Display the sticky/setuid/setgid bits in permissions (110613bf95c25c8258a35bc2217c7a956c94bbec)
  • Allow --all --all to display the . and .. directory entries (5cd7609034da592a7c96c6ef4cdf93fe5a0ebfea)
  • Allow --sort=type to sort by file type: file, directory, link, pipe, device (f750536420b6c7ca8d21f83a10c3a9fdae3cbca1)
  • Add the --time-style option to use the ISO format for timestamps (690aa21ac8bff02ca08323825822c9c663bd4cef)

Changes

  • Don’t look up things like time zones or locale information when those columns won’t be displayed (97236128ea28093aee95f6536598bbaf48a3263e)
  • Similarly, don’t buffer the entire table before printing it out when not in grid-details view (fc60838ff3021ce913b21516c8db0f8879f8644e)
  • Make the help text like 1% faster to display (763e833b6f3be5a0e4b9cf9f807a4b3874435c7e)

Fixes

  • Actually display the error when recursing into a directory fails in tree view (f4ddbf384990b3d132833e89662f1aab712da866)
  • Fix crash when given invalid UTF-8 arguments (de60b95850951ec5c71712a82a736e8518cc7bf6)
  • Fix bug where files’ accessed times (atime) were actually modified times (mtime)! (5bdf6304bb9e4bc55e510594f8bbe2c0fe96c9d2)
  • Fix bug where the presence of the COLUMNS environment variable made exa always use colours (84b01f206412d0ee005bb3542b036b0b10091b71)

Contributors

Thanks to kballard and gyscos for contributing!

v0.6.0

6 years ago

Additions

  • Add the --classify option (e81b83b4acf364ecc65206c9be9d7535e1f6c901)
  • Add .cr2 as image type (8ac68f99643bd98ca853d8f90fe454e6c6fbb1f4)
  • Non-printable characters in file names are now escaped (3ebc22580a283b7b79c8808a95caeadc976b49c3, 609bafef49a93d306bf9c210a36fda329387ec00)
  • Add completions for bash, zsh, and fish (897d6ffa563cc15e5628d391e94cafdb282253b1)

Changes

  • Don’t prepend symlink paths to link targets (f8624ed30896de91820d27091692ce3ecd4b60f3)
  • Turn off the Git networking features, meaning exa does not require OpenSSL, making it smaller and easier to compile (08bc2e3e39025b922d61405c840ae71c97d6b316)
  • Change --help and --version to return exit code 0 (510d2f7a7656aba040816bf379eebbd4e4a6c4ed)
  • Lots and lots of Makefile changes
  • The usual amount of internal restructuring

Fixes

  • Fix bugs where files with two components, and . and .., were not displayed (a28bd8fa64631bf43bd0fdf2fa0cf56a8a4ad09f, dd63774e37691badb446cb71950ba0d2d18146a3)
  • Handle locales with 4-character-wide short month names (ce8a2e7ce9a447d25f57632e77966248a1130fc4)
  • Fix bug where cell width wasn’t being calculated (08281333002079ee65af35bf3f61abf7f81f7cc2)

Contributors

Thanks to maandree, neosilky, MakeNowJust, raphink, kballard many times over, and quininer for contributing!

v0.5.0

7 years ago

Now, where was I?

Additions

  • Add --colo[u]r option to toggle colours on and off (f92459d95779eef257292234a15e6b4345511830)
  • Add case-insensitive sorting with --Name and --Ext (note the caps) (8805ce9e3bcd4b56f8811a686dd56c47202cdbab, 3e9616cffababc491b1fa587e008a0bdb385901c)
  • Recognise pipes, devices, and sockets on systems where they’re avaliable (a9bb275250e1d2eb3d3e1b2855afee6a0c560903)
  • Add ability to ignore globs (95596297a910455171647dce00781563e4a19d8a)
  • Add option to colour file sizes on a scale (0ffb331976e8563c063d12b476c0b82d76747d1f, 86065f832d5b82320022807bfb02a48f43bc1930)

Changes

  • Improved help text (edeec0f6f27304dca1fa4e6c3d2b2355a72ffbb6, b35927f24779a4d2ea9212c3c3000daf50027d63, 7e15e0dd491b60fa99f5bd61056e9876eefdaaf6)
  • Use the time zone data present on the system, rather than the perpetually-outdated versions compiled with exa (ee4c09dd30075117473baa4ad2cf108e512fe05c)
  • Print files’ paths if they had paths when passed in as arguments (9b87ef1da2231acef985bb08f7bd4a557167b652)
  • Highlight cryptographic file types (45c93b1b63f2ee17ea15448c048f16dc9a646706)
  • Error messages now go to stderr (8d25719b6bb33ad0e539fb4d7e00e2eb111320ac)
  • Stop printing a header for zero files (a7e3456b0d3b25bb8ed1708935f3ebb571f4fdba)
  • The usual amount of internal restructuring.
  • Lots and lots of upgrades to newer Rust versions.

Fixes

  • Allow Details view to be used, even if the terminal has no width (1756a0a84157b17676268d730f2faa3151d7cd4a)
  • Compilation fixes for ARM (734c5084ba90c93459eee65fa09da46d583a92b7)
  • Compilation fixes for FreeBSD (b9eb364823d0d4f9085eb220233c704a13d0f611)
  • Fix bug where files were shown to not have extended attributes (4c3266310d04d5a5047a6a740280af62afacbf4f)
  • Fix bug where files weren’t being sorted correctly in Details view (f6c5c89f55c694f04f9f0a1269f5c4945450d78b)
  • Fix bug where the directory name above a list of files was not printed (f35d28d1b8e85b37f5dbca17014f4c0f62fa5c30)

Contributors

Thanks to skade, petevine, jbeich, tomassedovic, hoodie, lindenk, gemmarx, spk, Stebalien, and neosilky for contributing!

v0.4.1

7 years ago

This is a snapshot of exa’s current code, which has been cleaned up a bit and at the very least been run through untry (which managed to pick apart all try!s but one). It’s being released to work around a bug in macOS Sierra.

Usually when I do a release I go through the commit history, pick out anything that looks like it could be a bullet point in the release notes, look at the contributors and see who’s there, then edit the website and upload — there are more features in here than just the openssl upgrade, and the work done so far is really deserving of a “proper” release, rather than just a beta.

But I don’t even want to learn how little work I’ve done on it in the past twelve months.

I think I need to be honest with everyone here. My interest in exa is still there, and the list of features I’d still like to add is as long as it’s ever been, but my motivation is completely shot. Compared to even a year ago it’s plummeted. Every day I go to work, bang out code on whatever it is I’m doing, leave, arrive home, then do my best to not do anything, on the computer or off it. My life’s going alright, I can still do things, I’m able to do things, but I just... don’t, and I wish I could give you a better reason than that. GitHub notifications were something I’d deal with later that day, then next week, then whenever I’d get around to it, and then routed into a folder in my inbox that I never actually checked, and then every day I’d see that number and hope it didn’t increase, and then I noticed that whenever it did increase I wouldn’t be able to concentrate on anything for another hour, so I just hid it, which hurt at first but at least gave me some time back. I’d still commit from time to time, but not mention any of this because I didn’t want to call attention to it, as though in time everyone would just forget. Whenever I saw a reply to the Sierra bug thread, I’d log in, read it, start to worry that if I replied now then I’d be admitting to everyone that I was still around and hadn’t died or something and was instead just ignoring their comments, and then what would people think of me? I even got as far as navigating to “Delete this repository” before I had to push the computer away.

That’s one push that went correctly. It’s obvious to say, but it’s stupid to delete code that people are using, just because you didn’t want to deal with the fact that you made a mistake.

I’m going to try something new: switching exa to a routine 6-week release schedule. The Rust has a release train that works over the same duration using multiple versions. I think exa (a hundredth its size) can do without that part, but the rest of it is good advice. Having an actual date for each one means I don’t get a choice in releasing anything or not, which is an incredible motivator for actually doing it! I still have to put 0.5.0 out properly, but with luck, the second release (0.6.0, which would come out halfway through May) would be a lot less daunting than the first, the third less than the second, and it would plateau from there.

The root advice here is “if you’re having difficulty doing something, then do it more often, because it gets easier”. I found actually releasing my software hard. I want it to be easier.

I hope you all find this acceptable, and I apologise again for the massive commit lacuna.

v0.4.0

8 years ago

So a while back I decided to add lots more info to exa's site, and unknowingly described a bunch of features that were in the development version but not the release version! So this is a kind-of emergency release to allow everybody to use those features, even those using the released versions.

The downside of this is that I did mark some features as ones I wanted to complete before the v0.4.0 milestone. All that's happened is the version that they'll show up in has been renamed, but they're all still on my radar.

Additions

  • Add --grid --long view, which splits the details into multiple columns (090cebe)
  • Allow --tree without --long, which displays a tree view without any details (e1f4ea9)

Changes

  • DragonFlyBSD support (9601884, 6317417)
  • Change symlink arrow to -> from => (ebbac61)
  • Extended attributes are now displayed as child nodes (eee49ec)
  • Individual files are now queried in parallel (fa51a87)

Fixes

  • Fix bug where Git repos were always queried, making exa very slow (d547c3f)
  • Fix bug where an extra newline was printed (6cf9274)

Contributors

Thanks to mgee, mneumann, kbknapp, lilydjwg, petevine, rhysd, hoodie, and DavidJFelix for contributing!

v0.3.0

8 years ago

It's been exactly 100 commits and just over three months since version 0.2, so it's about time I did another binary release. This one fixes a few bugs, but most of the code changes have been maintenance: upgrading to the new standard filesystem library was a big step, and having dates in the right time zone is something I'm glad to have finally landed.

By the way, I've decided to hold off on version 1.0 until exa can compile with Rust Stable. There aren't many feature flags left, and most of the ones that are pertain to the new std::fs library that we need to use. So exa will continue to require the nightly version for the foreseeable future.

Additions

None in this build.

Changes

  • Make the Git column optional, to improve performance on large repositories (7dc3a02)
  • Stat files in parallel, for a nice speed boost! (d2df70e)
  • Use the new Rust fs and io libraries (ffcc6fa)
  • ANSI codes are now not displayed when output is not to a terminal (36116a1)

Fixes

  • More options now require --long (5d152db and a4459da)
  • Timestamps are now in the user's correct time zone, rather than UTC (cc1d6aa)
  • Executable files are now highlighted in green (b452967)
  • Allow compilation without Git support (5caa6dd)

Contributors

Thanks to byteprelude, killercup, e12e, tsurai, and mgee for contributing! And thanks to everyone who's given feedback, reported bugs, and just plain used the thing.

(Please let me know if I've missed you out.)