17 ms·
Exa Is Deprecated
- goku12 3y agoI hope that the author Benjamin Sago is alright. It's always concerning when FOSS developers disappear for a while - even though it isn't uncommon.
- boxed 3y agoI wish there was a better way for the community to handle this situation without the original author doing what we see here. Sometimes the original author dies unexpectedly for example and it's very hard to salvage the work into a maintained fork. I wrote about this in 2018: https://kodare.net/2018/06/25/salvaging-abandoned-projects.html https://kodare.net/2018/06/25/salvaging-abandoned-projects.h...
- dale_glass 3y agoWe've started a non-profit to deal with such issues. It's a lot of work, but well worthwhile in the long term because part of the process is clarifying such issues, and the organization keeps on existing regardless of any individual member. Still, even this situation is much better than what we had before. It's on github and so the project doesn't randomly vanish from existence when the owner isn't there to maintain the machine in their closet anymore. Contributors see each other and can realize "Hey, maintainer isn't active anymore but there's still interest in the project, maybe we should do something about this".
- stavros 3y agoI added a sibling comment, I made https://www.codeshelter.co/ https://www.codeshelter.co/ a while back. Maybe we should partner.
- dale_glass 3y agoOh, I mean we started a non-profit to support our particular project (https://overte.org/ https://overte.org/), not that we've got a general purpose organization providing service to whoever needs it. So I'm not sure we're we're a good fit, in that we're neither something comparable to Code Shelter, nor unmaintained.
- stavros 3y agoAh, I see, thanks.
- dystroy 3y ago> "Hey, maintainer isn't active anymore but there's still interest in the project, maybe we should do something about this" When the project isn't huge (think linux sized) it looks like the best solution, with able persons forking the project and trying to revive it. And if they don't manage to revive it (it's hard to know in advance who will be strong and available enough) maybe another fork will.
- stavros 3y agoThere is, I created it years ago, but unfortunately it hasn't taken off: https://www.codeshelter.co/ https://www.codeshelter.co/ Maybe I'm bad at marketing, it seems like a pity.
- LorenDB 3y agoMan, that's amazing! I'm going to start help you with marketing, beginning with a dedicated HN post: https://news.ycombinator.com/item?id=37417410 https://news.ycombinator.com/item?id=37417410
- stavros 3y agoThank you!
- rapnie 3y agoThe idea is good. There's a couple of things I'd like to see. Is CodeShelter community-owned and driven? Or is it a company? The website codebase has no license and the Github application code is not open-source (or I overlooked). There's no privacy policy, ToS, and CoC. What is the maintainer vetting process? How is matchmaking taking place? What can I expect after giving away control? This may all be well-organized, but you can only find out in chat. So asking "Give us access to the repository" is a big step.
- stavros 3y agoThanks for the feedback! I answered this here: https://news.ycombinator.com/item?id=37417643 https://news.ycombinator.com/item?id=37417643
- boxed 3y agoI think what we need is for github to get in on it. Discoverability is 90% of the work.
- stavros 3y agoThat's very true, but that's another chicken and egg problem. GitHub won't add you if you don't have the numbers (they'd just implement this themselves, if anything).
- keepamovin 3y ago> it's very hard to salvage the work into a maintained fork. How is it hard? Just fork it.
- boxed 3y agoDo read my article. I have a very clear example of why that actually doesn't work in practice.
- prmoustache 3y agoThe fact you wrote an srticle about it doesn't mean we are all forced to agree with your conclusions and suggestions.
- boxed 3y agoNo, but it means that if you argue with me about what I say without having read it, then that makes you kinda silly. It's also a suuuuper short little blog post. I almost always write very short stuff :P
- keepamovin 3y ago> No, but it means that if you argue with me about what I say without having read it, then that makes you kinda silly. Not as silly as the person who assumes they didn't read it, when they actually did ;P ;) xx ;p haha! or you think the only way to disagree with your absolutely right ideas is to have not encountered them, because anyone encountering them can see they are unassailably right? Come on, that's not a very good view of other people, and an overly inflated view of yourself. They must understand your ideas, just disagree. That's OK, isn't it? Or, do you write expecting to be agreed with? Well, as you might say "that makes you kinda silly"--the internet is a diverse place!
- keepamovin 3y agoI ready it before commenting actually...don't assume what you don't know, right? (it's against the rules: Please don't comment on whether someone read an article. "Did you even read the article? It mentions that" can be shortened to "The article mentions that". https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html ;p ;)) I agree your example is clear, I just think it's inaccurate, as in missing some perspective. My is perspective is: fork it, do your own marketing, profit. That's what I did to get where I am? Why think you have some right to someone else's work just 'cause they don't reply to you, and you can piggyback on their marketing without doing the work? That's wrong.
- nikeee 3y agoYou can set a successor in your GitHub settings: https://docs.github.com/github/setting-up-and-managing-your-github-user-account/maintaining-ownership-continuity-of-your-user-accounts-repositories https://docs.github.com/github/setting-up-and-managing-your-... That successor will gain access to the _public_ repos of your account after presenting a death certificate. As it's only for public repositories, it's a no-brainer for me.
- deleted 3y ago[deleted]
- yencabulator 3y ago> it's very hard to salvage the work into a maintained fork. Sometimes, perhaps, but https://github.com/eza-community/eza https://github.com/eza-community/eza looked pretty easy, and they even had push access to change the exa repository to point to it.
- sillysaurusx 3y agoTheir personal site is gorgeous: https://bsago.me https://bsago.me The tech notes are particularly useful: https://bsago.me/tech-notes https://bsago.me/tech-notes There’s a ray of hope on their RSS feed: https://bsago.me/tech-notes/feed.json https://bsago.me/tech-notes/feed.json The last published date is September 2022, which is almost a year after their last GitHub activity: https://github.com/ogham?tab=overview&from=2021-12-01&to=2021-12-31 https://github.com/ogham?tab=overview&from=2021-12-01&to=202... So in absence of other information, I’d rather believe they’re ok. I’ve gone through periods of my life where I blow off all existing responsibilities and reinvent myself. A big project like exa comes with a lot of responsibilities that don’t become apparent until it explodes in popularity; it’s understandable for people to want to disassociate from those. Some might argue that open source authors have a responsibility to communicate status, but it seems like Benjamin fulfilled that by making sure exa had additional maintainers that could update the readme with a deprecation notice. One other strange phenomenon is that when you run from a responsibility, it can feel like more and more of a hurdle to come back and face it, at least for me. So it’s probably best to assume they’re fine and to put as little pressure on them as possible. Even just popping in to say “I’m still alive” can feel like pressure.
- blumomo 3y ago[flagged]
- Macha 3y agoSingular they is not a thing that was made up by trans people, but has been annoying pedants for centuries.
- dmix 3y agoYeah occasionally mixing a singular "they" that way is very common in english in certain contexts. Particularly when its short clear paragraphs talking about a single person. But that's still a distinction from being used as a pronoun everywhere, which can definitely get confusing quickly, even for non-ESL readers... which is all that really matters in writing/communication. I'm seeing it more often in journalism now where multiple people or organizations are referred to through out an article and then "they" gets thrown in liberally for social etiquette. It takes serious mental effort to keep track of who they are referring to. Might as well just always use their name at that point to avoid both conflict and confusion shrug.
- Otek 3y agoI have alias ls=exa in my config for almost two years now. It’s honestly great. I guess I’ll use eza from now
- arjvik 3y agoI've been using LSD instead of Exa, so I'm lightly relieved that I don't have to change over. Both projects are amazing little utilities that when combined with a well-customized shell, really make using the terminal a joy. I absolutely love the trend of rewriting classic Unix utilities in rust, because the new tools often have (small or large) usability and quality of life improvements that altogether make the terminal a much more powerful environment.
- scoopr 3y agoRelevant link: https://github.com/lsd-rs/lsd https://github.com/lsd-rs/lsd
- bachmeier 3y ago> I absolutely love the trend of rewriting classic Unix utilities I avoid them unless I'm capable of maintaining them myself. My primary reason for using classic Unix utilities is trusting that they'll still work in a few years. The initial stages of a rewrite can be a lot of fun, but I want to use it long after the excitement has worn off.
- sanderjd 3y agoYMMV, but many of us find it easier to maintain rust + cargo than the old C + autotools mess.
- scbrg 3y agoAnd yet, exa is deprecated :-)
- pohl 3y agoYetter still, it (eza)is being maintained.
- sanderjd 3y agoYes but people did not find it daunting to create a fork. But if what the comment I replied to meant by "capable of maintaining them myself" was about having an organizational structure where they could become an official maintainer of the official project rather than needing to fork it if the owner becomes unavailable, then yep, that's a great point about these single-owner projects. But my original interpretation was about the difficulty of maintaining the code. To me, these rust tools are a huge improvement in that way.
- ducktective 3y agoI just use good old ls with LS_COLORS generated by vivid [1] [1]: https://github.com/sharkdp/vivid https://github.com/sharkdp/vivid
- otterpro 3y agoThis is the best option for me, as I want to keep full compatibility with ls instead.
- zaptheimpaler 3y agoI love exa but that grid bug was bugging me - its fixed in the fork! See here: https://github.com/eza-community/eza https://github.com/eza-community/eza
- perihelions 3y agoThis might affect me and other Debian stable users in the year 2025. The conservative side of the FOSS world rocks. exa's great; it's a polished, feature-rich ls(1) that broadly improves on GNU ls. The --tree view is awesome; I wish more tools used that UX pattern. The only other one I can immediately remember is pstree.
- broodbucket 3y agoI have the opposite feeling about package lethargy, I don't want to remember that exa is now eza at the time that my distro finally gets around to packaging eza, I want to do it now when it's right in front of me. I'll go try lsd instead (and then I'll try the other ls rewrite, har har)
- perihelions 3y agoEhh, I guess I'm your opposite. I want to be insulated from exciting upstream developments, especially for stable, boring stuff like coreutils. I want those to be boring. I don't want "exa is now eza" or whatever push-notified to my command line on a random Tuesday.
- KptMarchewa 3y agoI want those to be boring for my scripts; I want modern replacements for my manual use.
- broodbucket 3y agoI guess so, I've been running Arch on most of my servers for the last decade. Sometimes the fragmentation of the ecosystem comes in handy!
- basedrum 3y agoYet you read hacker news, where you get pushed the latest thing every day
- post-factum 3y agoIn case you are an Arch user, eza is already there.
- blueflow 3y agoexa: 8 years, dead ls: 38 years and counting. Long live ls.
- frou_dh 3y agohttps://en.wikipedia.org/wiki/Lindy_effect https://en.wikipedia.org/wiki/Lindy_effect in action.
- torstenvl 3y agoI like vanilla `ls` but I do miss some display options from GNU ls when I'm on Mac, e.g., grouping directories first. Luckily, of course, it's open source, so I just added the options I needed. https://github.com/torstenvl/betterls https://github.com/torstenvl/betterls if anyone is interested exa seemed like overkill for my needs, and it was easier to add a couple lines of code than to learn a whole new tool.
- gray_-_wolf 3y agoYou could also just install coreutils via brew...
- torstenvl 3y agoLast I checked, GNU coreutils don't know anything about, e.g., macOS extended attributes. I specifically wanted to stay close to stock because macOS `ls` is designed for the system it runs on. Installing coreutils would be counterproductive.
- cb321 3y agoIt's also a whole other tool and in Nim to boot, but https://github.com/c-blake/lc https://github.com/c-blake/lc allows you to group "dot-directories" before "dot-files" before "non-dot directories" before non-dot files. There might be enough other new functionality such as abbreviation or multi-attribute colorization schemes to motivate learning a new tool. E.g., neither "dot-ness" nor "directory-ness" in the above is hard-coded. They could be any other convenient elements of the typology / taxonomy.
- kbd 3y agoI never used exa as a general `ls` replacement, but I did use it as a `tree` replacement. Its tree view that gives you file stats from ls alongside a `tree`-like view I haven't found replicated in any other tool. Here are the aliases I use: et() { exa -alT --git -I'.git|node_modules|.mypy_cache|.pytest_cache|.venv' --color=always "$@" | less -R; } alias et1='et -L1' alias et2='et -L2' alias et3='et -L3' exa never handled git ignores correctly so I had to manually provide common ignores with -I. But the above alias provides a scrollable tree view, with files colorized according to LS_COLORS, with file stats like `ls -l`, that I haven't found provided by any other tool. Suggestions for replacements welcome.
- dystroy 3y agoMaybe use broot ? Its tree view is its main feature and it handles gitignore and shows many stats including dir sizes. https://dystroy.org/broot/ https://dystroy.org/broot/ You can use it just like the original tree tool too: https://dystroy.org/broot/tricks/#replace-tree https://dystroy.org/broot/tricks/#replace-tree (disclaimer: broot author)
- stavros 3y agoThat seems great, thanks!
- cb321 3y agoThis kind of thing should probably be generalized so that any new parameter can be seamlessly woven into your `ls-like` reports. https://github.com/c-blake/lc/blob/master/extensions/fe1 https://github.com/c-blake/lc/blob/master/extensions/fe1 does `du` (like your example) as a f)ormat e)xtension, but you could use `ffprobe` to do the run-time in hours:minutes:seconds for media files (or maybe 0sec for non-media) or number of git commits or age of last VC commit as an extra timestamp or numerous other things.
- kbd 3y agoThanks for your comment. I have broot installed, but it never sticks in my workflow. I didn't know you could use it as a tree replacement like that, adding file stats & exiting. It almost works to replace the way I use exa tree, with these caveats: - I want to not have it elide files ("7 unlisted") at each level. I have my et1, et2, etc. aliases to customize how many levels of detail I get with exa's tree replacement, and then I scroll that with my pager. - I want it to support LS_COLORS so the files look the same as they do in `ls` - I want the git status display that exa gives (eg. it shows I if the file is ignored). - is it possible to customize the order in which the stats are shown? It'd be nice if they match ls more closely. Exa feels like `ls` with extra colors and a tree, broot feels different.
- cb321 3y agohttps://github.com/c-blake/lc https://github.com/c-blake/lc in Nim might interest someone interested in a latterday 'ls'. The screenshots should probably show underlined hard-links or italicized symlinks or other examples of "multi-file-attribute" -to- "multi-text-attribute" mapping. That kind of multi-ness seems generally neglected in this report generation space.
- theCodeStig 3y agoI use exa daily, and this is the first time that I’ve heard of eza. From a marketing standpoint, eza should be merged upstream.
- activitypea 3y ago> This repository isn’t archived because the only person with the rights to do so is unreachable
- robertlagrant 3y agoA Douglas Adams reference in the readme and British spellings in CLI options? Sign me up!
- dahfizz 3y agoYet another example of why I don't trust any software that markets itself as "modern". In another 20 years, ls will still work perfectly fine.
- michaelmior 3y agoAnd it will still lack many of the features that exa has. Although it's no longer maintained, I suspect it will also continue to work for a long time. There's also a fork that is still maintained. Personally, I tend to avoid using replacements for POSIX tools in any shell scripts where possible for this reason. But in terms of what I use day-to-day in interactive sessions, I'll take whatever improvements modern tools will give.
- blowski 3y agoa.k.a. tradeoffs. You can have more features for less stability, so you need to decide what you care more about in a given context.
- michaelmior 3y agoAbsolutely. (Although I'm not convinced that exa or a fork won't still function perfectly fine in 20 years.)
- sod 3y agoThe owner of a repository dying (assumption) is an example why you don't trust modern software? The active maintainers moved the project to a shared repository with a different name 2 years after the creator was seen anywhere.
- sbergot 3y agoYou could argue that "modern" versions of old tools with a bus factor of 1 are harder to trust.
- 3y ago
- vermaden 3y agoJust another alias ... # WAS alias ls='exa ...' # IS alias exa='eza ...' alias ls='exa ...'
- queuebert 3y agoJust another "command not found" on that remote machine you forgot you were on.
- xutopia 3y agoNot hard to fix: if command -v exa &> /dev/null; then alias ls='exa' fi
- Graziano_M 3y agoI do it differently. It supports not having to reload aliases after installing. alias vim='$(command -v nvim || echo vim)'
- JetSpiegel 3y agoChecking everytime you use the alias, instead on when you init the shell. How often do you need to install a packages?
- t43562 3y agoThis is the problem with all tools outside the most basic and you have to keep muscle memory for grep and ls to deal with it. Thus the fancy replacement tools have a cost. I can bear to pay that cost for "fd" (fdfind) and ripgrep but exa didn't really offer me enough.
- jjice 3y agoI used to subscribe to this idea too, but I've since tried to leave it behind. I ended up just not using tools that gave me a benefit the majority of the time. Ripgrep is a great example. So much better than grep IMO but not going to be on that remote machine. When I need to, I'll adapt to egrep. Same with vim plugins. I ended up just not using stuff I liked so I wouldn't get used to it. Felt backwards to me. If you spend a ton of time on remote machines you won't get control of, I can absolutely get it though. I think as long as you know the backup and you can adapt, we'll be fine most of the time. Knowing the idioms to get you part of the way there to the convenient functionality is a good enough mental polyfill.
- shapeshed 3y agoThere is something to be said for boring, reliable software. New languages seem to rewrite UNIX tools and abandon them as a rite of passage.
- noobermin 3y agoA nice metaphor when the "modern replacement" for something as basic as a directory listing is deprecated while the original means (the built-in ls) still works fine and isnt. EDIT: ls on linux is apparently an executable part of GNU and not a built-in
- unscaled 3y agoOn most Unix flavors it is not built-in. The only shell I know that has "ls" built-in is BusyBox. And besides, I said in other places: "ls" has been "deprecated by its maintainer" more times than exa, it's just that somebody has always forked it. GNU "ls" (the one in Linux) is a complete rewrite of the original shell, and it is annoyingly incompatible with the macOS fork of BSD ls.
- retrac 3y agoWorth noting that the Unix shell itself is not a "built-in". The kernel is agnostic about the user interface, which is left entirely to userspace programs to implement. (That was one of Unix's major innovations.)
- whimsicalism 3y agobuilt in to the shell, not the kernel lol
- pkulak 3y ago/bin/sh is a POSIX requirement though.
- rascul 3y agosh is, but not the location. > Applications should note that the standard PATH to the shell cannot be assumed to be either /bin/sh or /usr/bin/sh, and should be determined by interrogation of the PATH returned by getconf PATH, ensuring that the returned pathname is an absolute pathname and not a shell built-in. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html#tag_20_117_16 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/s... However, in my experience, I don't recall seeing any POSIX or POSIX like system that didn't have /bin/sh.
- devnullbrain 3y agoThere's a hint of a belief in this thread - common also in threads about alternative shells and Vim setups - that someone who uses a tool like this will irrevocably lose the knowledge of how to use ls. Am I perhaps a genius or is it just not that difficult to know two tools?
- imiric 3y agoMost people don't type `ls` directly either. Aliases like `l`, `ll` and `la` are very common, in which case it really doesn't matter which tool you're using. I've been using `exa` for years, and my aliases work regardless if it's installed or not. I just get a better UX if it is.
- meepmorp 3y ago> Most people don't type `ls` directly either. Aliases like `l`, `ll` and `la` are very common, in which case it really doesn't matter which tool you're using. Huh. I always use plain ls with flags and deliberately unset aliases like ll. I guess I'm weird.
- jjgreen 3y agoYou're not alone, is saving one character worth losing the muscle-memory?
- jjice 3y agoI like ll a lot for ls -ahlF, but I do run into its absence a lot on a remote machine. At that point, I'll just set the alias though.
- imiric 3y agoIt's hardly one character. I never need the plain output of `ls` in interactive sessions. Here are my aliases: if type exa >/dev/null 2>&1; then alias l='exa -alg --color=always --group-directories-first --git' alias ll='exa -aliSgh --color=always --group-directories-first --git' alias lt='exa -@alT --color=always --git' alias lr='exa -alg --sort=modified --color=always --group-directories-first --git' else alias l='ls -alh --group-directories-first' alias ll='ls -al --group-directories-first' alias lr='ls -ltrh --group-directories-first' fi I still retain `ls -ltrh` in my muscle memory, but after years of typing it, `lr` has saved me a lot of time and effort. Aliases are not just a way to type less. They also serve as a way to define configuration. If I ever need to tweak the output for all my usage of `ls`, I can just add it to all aliases, as I've done for `--group-directories-first`.
- lolrustasusual 3y ago[flagged]
- timeon 3y agoNot sure what your point is. It seems that you have beef with the language so you extrapolate lack of maintenance of one project to whole ecosystem? Is that right?
- ldelossa 3y agoStill in fedora repos. Not deprecated for me, haha.
- baz00 3y agoThe only ls replacement I have installed is sl. And that's really just a typing aid.
- rumdz 3y ago> https://github.com/eza-community/eza/releases/tag/v0.11.0 https://github.com/eza-community/eza/releases/tag/v0.11.0 > A new minor release, and the first minor release in the lifetime of eza. Why a minor release? Because we just landed windows support, that's why! Windows support, woohoo!
- TheDesolate0 3y ago[dead]
- PurpleRamen 3y agoeza seems not like a pretty good replacement, when the first thing I see are broken icons and colors. I guess staying with exa is ok, at least it's doing it's job.
- dvektor 3y agoHow is eza broken? Please submit an issue if this has been your experience. We have fixed quite a few bugs and put a lot of work into this fork.
- froh 3y agothe community fork "eza" is not is it? https://github.com/eza-community/eza https://github.com/eza-community/eza
- predictabl3 3y agoOh never stop HN. I should never use anything except 30 year old gnu tools because they've definitely never gone through development lulls, or changed ownership. Etc. "They'll still work in years", as if exa doesn't still work just fine. People here just say the stupidest shit without an ounce of consideration of how ignorant it is.
- pkulak 3y agoArg, there's no Nix package for eza. Maybe I need to make one...
- alwillis 3y agoExa is one of the first utilities I install when doing a new installation on macOS or FreeBSD. I don’t mind a fork was necessary; that’s pretty common with open source projects. Looking forward to eza.