readme update

This commit is contained in:
Harald Hope 2018-01-28 22:14:48 -08:00
parent f6f077526e
commit ef7d88e359

View file

@ -1,5 +1,11 @@
README for inxi - a command line system information tool README for inxi - a command line system information tool
NOTE: there is a feature freeze on inxi 2.3.xx development, except
for bug fixes. All current development is on the 2.9.00-xxx-p branch
which is in alpha or beta states depending on the module being
worked on. Once I view 2.9.00-xxx-p as feature complete or better
vs inxi 2.3.xx, it will become the current master branch of inxi.
===================================================================== =====================================================================
If you do not want to get the full master with gz history data, which If you do not want to get the full master with gz history data, which
gets bigger every year, you can clone inxi current using the: gets bigger every year, you can clone inxi current using the:
@ -7,8 +13,8 @@ master-plain branch.
git clone https://github.com/smxi/inxi --branch master-plain --single-branch git clone https://github.com/smxi/inxi --branch master-plain --single-branch
This branch does not have inxi.1.gz or inxi.tar.gz, and so does not The master-plain branch does not have inxi.1.gz or inxi.tar.gz, and
suffer from the size inflation that master has. so does not suffer from the size inflation that master has.
===================================================================== =====================================================================
SUPPORT INFO: SUPPORT INFO:
@ -38,28 +44,27 @@ DEVELOPER FORUMS: http://techpatterns.com/forums/forum-32.html
SOURCE VERSION CONTROL: https://github.com/smxi/inxi SOURCE VERSION CONTROL: https://github.com/smxi/inxi
MAIN BRANCH: master MAIN BRANCH: master
DEVELOPMENT BRANCHES: one, two, three, android, bsd DEVELOPMENT BRANCHES: inxi-perl, one, two, three, android, bsd
Dev branches are rarely used, but that's where the really hard new features etc Dev branches are rarely used, but that's where the really hard new features etc
are debugged and worked out. inxi itself has the built in feature to be able are debugged and worked out. inxi itself has the built in feature to be able
to update itself from anywhere, including these branches, which is very useful to update itself from anywhere, including these branches, which is very useful
for development and debugging on many user systems. for development and debugging on many user systems.
inxi was happily on googlecode until they decided to shut it down, which forced
me to pick an inferior option, github in this case. Since all the options were
bad, I picked the most popular of the bad options. I miss googlecode already...
PULL REQUESTS: inxi is VERY complicated and VERY hard to work on, so unless PULL REQUESTS: inxi is VERY complicated and VERY hard to work on, so unless
you have already talked to me about contributing, and, more important, shown you have already talked to me about contributing, and, more important, shown
that you can actually work with this type of arcane code, please do not that you can actually work with this type of logic, please do not spend time
spend time trying to work on inxi, unless it's a trivial patch, to the trying to work on inxi, unless it's a trivial patch, to the current branch,
current branch, current version. Please: NEVER even think about looking at or current version. Please: NEVER even think about looking at or using previous
using previous inxi commits, previous to the current one, as a base for a patch. inxi commits, previous to the current one, as a base for a patch. If you do,
If you do, your patch / pull request will be rejected immediately, without your patch / pull request will be rejected immediately, without any discussion.
any discussion.
inxi has one and only one release, and that is the current one. All Note further: no core changes will be accepted until inxi 3.0.0 goes live,
previous releases are immediately obsolete on the commit of every new release. since that's just more stuff I have to port over.
There is no exception to this, and never will be.
inxi has one and only one release, and that is the current one (plus dev releases,
of course, but those should never be packaged). All previous releases are
immediately obsolete on the commit of every new release. There is no exception to
this, and never will be.
Man page updates, doc page updates, etc, of course, are easy and will probably Man page updates, doc page updates, etc, of course, are easy and will probably
be accepted, as long as they are done according to the requirements. be accepted, as long as they are done according to the requirements.
@ -106,40 +111,20 @@ correctly, which doesn't often happen, so in those cases, you want to
confirm things like ram capacity with a reputable hardware source, like confirm things like ram capacity with a reputable hardware source, like
crucial.com, which has the best ram hardware tool I know of. crucial.com, which has the best ram hardware tool I know of.
Some might, correctly, note the insanity of writing a huge gawk program Tthe absolute core mission of inxi is to always work on all systems all the
wrapped in thousands of lines of bash, but this ignores the absolute core time. Well, all linux systems with the core tools inxi requires to operate
mission of inxi: to always work on all systems all the time. Well, all installed. Ie, not android, yet. What this means is this: you can have a 10
linux systems with the core tools inxi requires to operate installed. Ie, year old box, or probably 15, not sure, and you can install today's inxi on
not android, yet. What this means is this: you can have a 10 year old box, it, and it will run. It won't run fast, but it will run. I test inxi on a
or probably 15, not sure, and you can install today's inxi on it, and it 200 MHz laptop from about 1998 to keep it honest. That's also what was
will run. It won't run fast, but it will run. I test inxi on a 200 MHz used to optimize the code at some points, since differences appear as seconds,
laptop from about 1998 to keep it honest. That's also what was used to not 10ths of seconds.
optimize the code.
In other words, inxi will not fail on a bash/gawk update, and you can Once inxi has moved to Perl 5.x, from Bash / Gawk, the commitment to always
generally count on Bash and Gawk being installed on any real GNU/Linux work on all hardware no matter how old the OS, with reason, is not changed.
system. Well, they should be, although for some perverse reason Ubuntu inxi is being written, and tested, on Perl as old as 5.08, and will work on
refuses to include gawk, which is gnu awk, in their base install. Why gawk? any system that runs Perl 5.08 or later. Pre 3.0.0 inxi will also run on
because that's the most commonly available language for parsing data and any system no matter how old, within reason, so there should be no difference.
creating reports. Arcane, yes, obsolete? yes, works? yes. Bash is interactive,
and is available on almost all GNU/Linux systems. Do I like Bash or Gawk?
No, I don't. But nothing comes close to the long term reliability and
stability of gawk/bash/sed/grep, nothing is even remotely close. I keep
looking, but language after language prove themselves to not be valid
candidates for this core stability requirement as they change or break their
APIs with new releases, along with not being parts of a generic core GNU/Linux
install.
This is why, for example, some Bash 4 things that would be nice to have in
inxi are not used, to not break backward compatibility. It is a show stopper
bug if an inxi update breaks something that was working in an old system.
But why gawk instead of awk? That is an issue that has plagued inxi for a
long time, the bottom line is this: both bash and awk are such inferior
languages overall that the only way to really get them to work in a complex
scenario like inxi is to use the most advanced version of awk possible, which
is gnu awk, aka, gawk. Gawk has: case insensitive switches (critical for
parsing garbage random system data), gensub (search and replace like sed).
===================================================================== =====================================================================
BSD SUPPORT BSD SUPPORT