I love the download and install section's lack of assumptions that someone looking to install this specific package doesn't already have gcc/git/make avaialbe. "Hi, I'm a brand new *nix user on a fresh install of my distro, and I want to install a command to recreate the Sneakers decryption effect" says no one, ever. =)
So many packages make these kinds of assumptions. I tend to find that in those situations, the likelihood of some other salient bit of information gets left out as well. Also bonus for not being an npm install type of something.
I hate this in documentation. Snippets of code or config that don't work on their own, and it may not even be clear where they're supposed to go or what they're nested in. May use imports the name of which cannot be found on the page. That kind of crap.
Please, at the very least, put a full-fat example or a link to it at the bottom of the page. Something.
The amount of “put this in your config file” for things they are part of build chains for JS without specifying where that file lives. Oh, the word “config” is a link to the configuration docs page but…that just lists the possible config options and not where they live.
C/++ programs are atrocious for this. On any other language you just run "___ install" and it grabs everything you need to make it run. While C devs expect you to first spend an hour searching for the packages they are too lazy to list. Which all have different names on each distro, and probably at least one of them doesn't have the version needed.
Needlessly wasted, because each person doing that could publish it as a spec and save everyone else the effort.
They are relatively easily converted between formats (ie: deb/rpm)... once any is made. Personally, I appreciate that this is generally available in distributions.
This is the entire purpose behind Linux distributions. Package up and distribute the software.
I don't begrudge anyone plugging away at development, but using the source as the distribution model drives me mad.
Seems like the author simply assume those who want to build his code already have ncurses installed. Thus, only a Makekefile provided. No configure, scons script etc etc.
It would be nice if the author states explicitely what the dependencies are so you don't have to spend hours installing the libraries. Yep I get it
I get that it's possible, as a developer, to have so many packages installed on your local that are used all of the time so that they are overlooked as an external package. However, it seems like a dependency tree should be able to be created by all of the import statements. From there, just list everything even if it is part of the stdlib. I'm not a C/C++ dev, so maybe that is possible and people just don't do it?
I'm not a C/C++ dev, and not familiar with how well C/C++ toolings improved.
But I frequently deal with C/C++ codebases as an undergraduate student many years ago. Some of them only provides a Makefile, which assume you already have the necessary libraries installed (or know how to install them and adjust the include paths). How to build the code? The usual cycle: make -> compile error - install lib A -> make -> another compile error -> install lib B -> .... repeat this until you got the thing built.
Usins build tool like SCons makes your life easier. If it cannot the detect the installation of required libraries, it may throw errors before even compiling your code.
Of course modern programming languages like Go, Rust, Nim etc typically have default package managers...
> This project provides a ncurses implementation for such cases. You will need the ncurses library installed. Install this library from your package manager.
THIS! I was a little disheartened when I saw I had to build it, but the repo is tiny, and the build is a second. This should be the norm, not a pleasant surprise!
I 100% agree with the frustration. Anything that involves make as described by a repo such is this is not something I want in any of our processes. It's going to fail.
But this is really a toy and not meant to be taken seriously.
But also, on the other hand, I'd like software to be easy to install, so it being included in package distributions is convenient. That said, being able to run from source without dependencies would be cool as well; that's probably why some tools are still built in pure shell code.
While I too wish for complete build instructions as a packager, I feel this is overstated.
The very first part of the 'Download and Install' section says to check the distribution package manager so that building isn't necessary
These users are better served not even knowing about builds. In this spirit, the bit saying 'if you aren't absolute latest, adopt the build from source pain' should be removed.
Toys like this don't demand the latest and greatest. Save the [complete] build instructions, including the libraries (ideally their package names), for developers/contributors
So many packages make these kinds of assumptions. I tend to find that in those situations, the likelihood of some other salient bit of information gets left out as well. Also bonus for not being an npm install type of something.