archey4

Maintained fork of the original Archey (Linux) system tool

GPL-3.0 License

Stars
267
Committers
33
archey4 - v4.14.3.0 Latest Release

Published by HorlogeSkynet 7 months ago

Added

  • Official Armbian distribution support (see 0a970c010f57c9bccb268ccb1ef2ac57680824da, will require next version of python3-distro [see python-distro/distro#366])
  • Official EndeavourOS distribution support (see #140)
  • (Nerd Fonts) icons for entries support (see #144)
  • Display server protocol to WindowManager (see #145)
  • New Red Hat logo "The Hat" (see #148)

Changed

  • Allow df output to contain Unicode characters (see #139)
  • Extend logos consistency test case to all logo styles
  • WindowManager API value format: now an object with name and display_server_protocol attributes (see #145)
  • Old Red Hat logo is available as alternate logo shadowman (see #148)
archey4 - v4.14.2.0

Published by HorlogeSkynet about 1 year ago

Added

  • Official Nobara distribution support (see #131)
  • Standalone build procedure using Nuitka (see #136)
  • Darwin "WWDC 2020" (wwdc20) alternate logo (see #122)
  • Darwin "retro" low intensity (retro_low) alternate logo (see #135)
  • New show_link_local option to allow link-local IP addresses hiding for LAN_IP (see #137 and #138)

Fixed

  • Log uptime errors at warning level (see #132 and #133)
  • Honor PATH when looking for vcgencmd in Temperature
  • Fallback to HTTP properly on DNS connection errors for WAN_IP (see #134)
archey4 - v4.14.1.0

Published by HorlogeSkynet almost 2 years ago

Added

  • Python 3.12 official support
  • Official Enso OS distribution support (see #123)
  • Official Univalent and Moevalent distributions support (see #125)
  • New logo_style config option for preferred logo style (see #124)

Changed

  • Prefer Ubuntu 20.04 to run Python 3.6 CI job
  • Fix CPU detection on aarch64 platforms lacking of ACPI PPTT (see #127)
archey4 - v4.14.0.1

Published by HorlogeSkynet about 2 years ago

Changed

  • Fix warning related to "broken" Custom entry (see #120 & #121)
  • Fix PermissionError when opening restricted configuration files
  • Prefer macOS-latest for unit tests in integration jobs matrix (see actions/runner-images#5583)

Bye, happy upgrade πŸ‘‹

archey4 - v4.14.0.0

Published by HorlogeSkynet about 2 years ago

⚠️ Diff readers are kindly invited to skip f613fef4c96d2fdddd25cdc4ae240dfcfb2c508c, which reformatted Archey code base using Black and isort.

Breaking

  • Project internal versioning update (v4.Y.Z -> 4.X.Y.Z)
  • Distributions logo preference (over Windows' one) in WSL environments (see #118)

Removed

  • dmidecode usage in Model for virtual environments info gathering

Added

  • Custom entry (see #111)
  • Load Average entry
  • KWin Wayland WM detection
  • Windows Terminal detection
  • Missing method static types
  • CPU, RAM and Model FreeBSD support (see #114)
  • Official Guix System distribution support
  • Official Siduction Linux distribution support

Changed

  • Improve Rocky Linux logo (see #112)
  • Fix macOS APFS volumes duplication (see #115 and #116)
  • CPU and Model entries initialization
  • Prevent vendor name duplication in Model
  • Fix WSL virtual environment detection (without systemd) in Model
  • Project code base formatted using Black and isort

Bye, happy upgrade πŸ‘‹

archey4 - v4.13.4

Published by HorlogeSkynet over 2 years ago

Added

  • Support for pacstall package manager
  • Official Buildroot distribution support
  • New entries_color config option to tune entries color (see #109 and #110)
  • New sensors_excluded_subfeatures temperature config option to exclude specific sub-features (see #107 and #108)

Changed

  • Update fpm to v1.14.1 for .DEB and .RPM packages building
  • Improve sensors_chipsets temperature config option documentation (see #106)

Bye, happy upgrade πŸ‘‹

archey4 - v4.13.3

Published by HorlogeSkynet almost 3 years ago

Release Notes

Added

πŸ†• Official Rocky Linux distribution support
πŸ†• Official upcoming support for Python 3.11
πŸ†• Support for pkgin (NetBSD) package manager (see dylanaraps/neofetch#1906)
πŸ†• Support for hardware "product" DMI vendor name in Model
πŸ†• Support for motherboard DMI information in Model too (see dylanaraps/neofetch#1943)
πŸ“ Document terminal monospaced font recommendation for ASCII art

Changed

πŸ› Fix possible Uptime discrepancies on macOS 10.12+ (see #105)
πŸ› Prevent system_profiler STDERR logs output on macOS (see #104)
πŸ’„ Remove square brackets around architecture from Distro entry output
πŸ” virt-what and/or dmidecode probing for Model, even for unprivileged users


Bye, happy upgrade πŸ‘‹

archey4 - v4.13.2

Published by HorlogeSkynet about 3 years ago

Release Notes

πŸ†• Support for maim ("Make image") screenshot back-end

πŸ› Fix df output parsing when file-systems column contain white-spaces in Disk (see #103 & #102)

πŸ› Prevent program crash when calling external programs raise PermissionError exception (see #101)

πŸ› Prevent program crash when reading from /sys file-system is not allowed


Bye, happy upgrade πŸ‘‹

archey4 - v4.13.1

Published by HorlogeSkynet about 3 years ago

Release Notes

πŸ› Fix text width overlap regression introduced in v4.13.0

πŸ› Only run pkg on *BSD systems

πŸ› Fix brew Packages count on Apple Silicon and GNU/Linux

πŸ› πŸ“¦ Fix dawidd6/action-homebrew-bump-formula usage for automatic Homebrew update

πŸ’„ Improve Darwin (Apple) logo design

🧠 Prevent entries disabled special field from being propagated in options


Bye, happy upgrade πŸ‘‹

archey4 - v4.13.0

Published by HorlogeSkynet about 3 years ago

Release Notes

πŸ†• Official NetBSD support

πŸ†• Archey official project logo (CC-BY Brume)

archey4

πŸ†• Protected _logger attribute for Entry objects

πŸ†• PEP-561 compliance (Distributing and Packaging Type Information)

πŸ†• Extend Android system auto-detection (as CPython standard library does)

πŸš€ Logos are now right-padding "unaware"

πŸ› Fix Pop!_OS logo (reverted) coloration

πŸ› Fix Temperature sensors_chipsets option (when containing multiple values)

πŸ› Fix potential configuration file encoding issues on Windows platforms

πŸ’„ Improve logging style of multiple lines sensors error messages for Temperature

Python API notes

Now that Archey entries use dedicated logging.Logger objects, it is possible to silence only a subset of them.

import logging

from archey.entries.temperature import Temperature

# ...

# Silences any warning messages from the `Temperature` entry module.
logging.getLogger(Temperature.__module__).setLevel(logging.ERROR)

# ...

temperature = Temperature(options={'sensors_chipsets': ['an-unknown-chipset']})
print(temperature.value['temperature'])

Known bugs

  • A text width overlap regression has been introduced in 9d337e8 (already fixed in db22230 on master)

Bye, happy upgrade πŸ‘‹

archey4 - v4.12.0

Published by HorlogeSkynet over 3 years ago

Release Notes

πŸ†• πŸ“¦ Now available as a proper Homebrew formula (in the default tap !) πŸŽ‰

πŸ’„ πŸ’₯ "Pretty names" for multiple-words entries by default (WanIP -> WAN IP)

πŸ› πŸ’₯ Prevent text truncation when writing output to a pipe

πŸ› πŸ’₯ Prevent colored output by default when writing to a pipe (see next item related to colors)

πŸ†• CLICOLOR[_FORCE] environment variables support

πŸ†• Kernel name

πŸ†• Proper CHANGELOG.md file

πŸ†• one_line option for LAN_IP & WAN_IP entries configuration objects

πŸ†• TERM_PROGRAM_VERSION environment variable support for Terminal

πŸ†• USER, LOGNAME & LNAME environment variables support for User entry

πŸ†• πŸ’„ Alternative logo styles support (see #98, and thanks to @GentleHoneyLover)

Darwin users, you might already wanna pass -l retro at runtime so as to enjoy previous archey-osx project logo !

πŸ“¦ distro & netifaces Python dependencies are now "frozen" to allow upstream breakages

API (breaking) changes

See v4.12.0 migration guide.

πŸ†• Kernel name attribute

πŸ’„ πŸ’₯ As described above, you may expect changes in JSON keys corresponding to multi-words named entries (i.e. DesktopEnvironment --> Desktop Environment).

{
  "data": {
    /* ... */
    "Kernel": {
        "name": "Linux",
        /* ... */
    },
    /* ... */
    "Desktop Environment": "Cinnamon",
    /* ... */
  },
  "meta": {
    "version": [4, 12, 0],
    /* ... */
  }
}

Bye, happy upgrade πŸ‘‹

archey4 - v4.11.0

Published by HorlogeSkynet over 3 years ago

Release Notes

πŸ’₯ Support for Python 3.5 has been dropped (EOL)

πŸ†• Official BSD (and its derivatives) support (see #69), thanks to @ingrinder for his previous work

πŸ†• Official Darwin (macOS) support, thanks to @mdubinko for his time (see #95)

Note : On this platform, Temperature entry requires iStats or OSX CPU Temp third-party programs.

πŸ†• Official Parabola GNU/Linux-libre support

πŸ†• disabled entries won't be internally executed anymore (see 2ec11f4f)

πŸ†• Internal logging has been rewritten, you may now expect [lm-]sensors warnings messages to appear

πŸ†• Now (very degradedly) run even without procps[-ng] package installed

πŸ› Fixes Disk detection for mount points containing space characters

API (breaking) changes

πŸ’₯ πŸ’„ Two Distributions public static methods have been renamed

πŸ’₯ πŸ†• sys.exit usages have been replaced by proper ArcheyException raising. This way, consuming Archey Python API will be a lot easier :

from archey.exceptions import ArcheyException
from archey.entries.uptime import Uptime

try:
    uptime = Uptime()
except ArcheyException as e:
    # ...
    pass
else:
    print(uptime.value)

πŸ†• Thanks to Python 3.6, dict ordering can now be guaranteed

πŸ†• meta object will now contain a distro key storing the internally detected distribution identifier.

{
  "data": {
    /* ... */
  },
  "meta": {
    "version": [4, 11, 0],
    /* ... */
    "distro": "debian"
  }
}

Bye, happy upgrade πŸ‘‹

archey4 - v4.10.0

Published by HorlogeSkynet almost 4 years ago

Release Notes

πŸ’₯ Support for Python 3.4 has been dropped (see #93)

πŸ†• Code base has been type-annotated (thanks to Python 3.5 and Mypy)

πŸ†• Python 3.10 is now (officially) supported (see #85)

πŸ†• πŸ’₯ LAN_IP now excludes global (public) IP addresses from entry by default (see new show_global option to keep old behavior)

πŸš€ πŸ’₯ Logo will now be lazy-loaded (standalone building against Stickytape and PyInstaller may break, see README & Wiki)

πŸš€ uname subprocess calls have been replaced by proper platform module (standard library) usages

πŸ†• Support for Devuan distribution

πŸ†• Support for DO_NOT_TRACK environment variable

πŸ†• On GNU/Linux, Kernel now supports optional version comparison against https://www.kernel.org/ (useful for rolling-distributions), see new check_version option (#94)

πŸ› Uptime won't crash anymore in environments implying parsing of the uptime command (as Android)

πŸ“¦ Artifact for Arch-based distributions will now be available as .tar.zst (see announcement)

API breaking changes

πŸ’₯ Kernel is now a dict containing release, latest and is_outdated keys

{
  "data": {
    /* ... */
    "Kernel": {
      "release": "4.19.0-14-amd64",
      "latest": "5.10.1",
      "is_outdated": true
    },
    /* ... */
  },
  "meta": {
    "version": [4, 10, 0],
    /* ... */
  }
}

Bye, happy upgrade πŸ‘‹

archey4 - v4.9.0

Published by HorlogeSkynet almost 4 years ago

Release Notes

πŸ’₯ πŸ’₯ πŸ’₯ Configuration layout has changed, please check documentation before updating ! (see #80)

πŸ†• Entries may now be reordered as you wish (see #57)

πŸ†• πŸ’₯ Now ./config.json path will automatically be looked up and loaded if it exists

πŸ†• πŸ’₯ CPU now supports multiple CPUs and show number of cores (if > 1), API breaking though (see #90 and below)

πŸ†• πŸ’₯ So as to improve consistency with new CPU behavior, GPU will now be displayed on multiple lines by default (see #90 too)

πŸ†• WAN_IP now supports very accurate configuration for resolvers and timeouts, including specific method disabling (see #81 & #89)

πŸš€ LAN_IP is now generator-based, includes a minor optimization and improves compatibility against IPv6 addresses

πŸ› Model now ignores fuzzy data (as "To Be Filled By O.E.M.")

πŸ› Disk won't soft-fail anymore due to df crashing for some reasons (see #92)

πŸ› πŸ“¦ Distribution packages shouldn't include some unit tests anymore

πŸ†• πŸ“¦ (official) PEX building support

πŸ—οΈ πŸš€ CI now runs on GitHub Actions for performance purposes

API breaking changes

πŸ†• πŸ’₯ CPU will now be available as a list of dict containing CPUs model names and core counts

πŸ’₯ LAN_IP internal class has been renamed to LanIP

πŸ’₯ WAN_IP internal class has been renamed to WanIP

{
  "data": {
    /* ... */
    "CPU": [
      {
        "Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz": 8
      }
    ],
    /* ... */
  },
  "meta": {
    "version": [4, 9, 0],
    /* ... */
  }
}

Bye, happy upgrade πŸ‘‹

archey4 - v4.8.1

Published by HorlogeSkynet about 4 years ago

Release Notes

πŸ› Fix screenshot module crashing anyhow

πŸ› πŸ†• Properly set exit code on error in various situations

πŸ†• Proper support for Elementary OS and Pop!_OS distributions (thanks to @SomethingGeneric and @airvue)

πŸ†• Add hardware "product version" if available on some GNU/Linux systems


Bye, happy upgrade πŸ‘‹


Additional note to users :

πŸ’₯ The NEXT VERSION of Archey will likely bring a rework of the configuration file.
It will be a breaking new version regarding to the current configuration layout.
Please see v4.9.0.

archey4 - v4.8.0

Published by HorlogeSkynet about 4 years ago

Release Notes

πŸ†• Entries are now loaded in parallel (huge performance boost, lower execution time). See #68 & #74

πŸ†• Official support for Python 3.9

πŸ†• πŸ’₯ Disk has been reworked, multiple entries are now supported (see #55 & #67). You should refer to new configuration options to properly format the entry according to your setup

πŸ†• Screenshot taking is now supported (based on available back-ends on your system). See new -s option (see #75) πŸ“Έ

πŸ†• You will now be able to load a specific configuration file. See new -c option

πŸ†• You will now be able to manually choose the distribution logo to display. See new -d option

πŸ†• (finally) full support for BusyBox-based systems (if not, please open an issue) [see #62]

πŸ†• New (partial) support for *BSD systems (please watch #69 for final full support)

πŸ†• New (basic) support for Android systems

πŸ†• New (basic) support for NixOS

πŸ†• New Processes entry showing the number of detected running processes

πŸ†• Now support NO_COLOR feature (see #82 & jcs/no_color#93) 🎨

πŸ› Fix support for CrunchBang distribution (likely broken in v4.6.0)

πŸ’₯ Unicode will now be enabled by default (please refer to colors_palette.use_unicode configuration option to disable it)

πŸ’₯ Some logos have been reworked


Bye, happy upgrade πŸ‘‹


Additional note to users :

πŸ’₯ The NEXT VERSION of Archey will likely bring a rework of the configuration file.
It will be a breaking new version regarding to the current configuration layout.
Please see v4.9.0.

archey4 - v4.7.2

Published by HorlogeSkynet over 4 years ago

Release Notes

πŸ†• Multiple GPUs will now be displayed (see #61 & #71). Please refer to gpus.{one_line,max_count} new configuration options in README.

πŸ†• Terminal should now properly display your terminal emulator (see #65 & #72). If not, please open an issue.

πŸ†• Archey is now able to output entries data to JSON (see #70) ! Please see archey -j.

πŸ› Fixes line overlapping on small terminals (see #63 & #64).

πŸš€ Performances improvements (as always).

πŸ“¦ Arch Linux packages won't be built from FPM anymore. The asset for this platform proposed below will be directly built from the official package source on AUR.

πŸ“¦ GNU/Linux packages should now ship a proper UNIX manual page. Please run man archey and report any bug.

πŸ”Œ Don't crash anymore on systems not providing python3-netifaces.


Bye, happy upgrade πŸ‘‹

archey4 - v4.7.1

Published by HorlogeSkynet over 4 years ago

Hello everyone πŸ‘‹

Let's reuse the previous release notes format :

Main (important) changes

πŸ†• This version brings support for two "new" distributions :

  • CentOS
  • Alpine Linux

πŸ› Since #56, and thanks to @ingrinder, the Disk entry now properly supports the BTRFS file-system type.

πŸ“¦ As noticed in #59, .RPM and ARCH LINUX packages generated by FPM (and proposed as assets for v4.7.0) were actually broken (Arch users : the AUR one was not concerned). This has been fixed, and packages below should work as expected.
πŸ“¦ ⚠️ RPM-based users : You will HAVE TO choose the package that fits the Python 3 version running on your system. If you don't know what to choose, please run python3 --version ⚠️

🎨 The way Archey handles ANSI colors has been completely reworked, and some tweaks have been brought :

  • Colors for Arch Linux, Manjaro & Ubuntu logos have been fixed updated
  • The os-release's ANSI_COLOR option set in (some) distributions will be honored (see here for more information
  • ⚠️ You may want to disable the latter behavior with the help of colors_palette.honor_ansi_color configuration option ⚠️

πŸ–₯️ A -v CLI flag has been added to show the current version of Archey you are running.

♨️ You may now specify a list of chipsets to prompt with LM-SENSORS when computing the average temperature (instead of all by default). Please refer to the temperature.sensors_chipsets option documentation in README.

Other (minor) changes

+ Implements distribution matching "fall-back" (see `os-release`'s `ID_LIKE` option)
+ Fixes some entries not working in specific environments (as Docker containers)
+ Performances improvements in distribution matching
+ Fixes timeout exceptions that _may_ occur when relying on `urllib` (`WAN_IP`)
+ Fixes `Temperature` average value computation if (a) fan control chipset(s) are present on the system
+ Fixes `systemd-detect-virt` execution output not being honored in `Model`
+ Fixes configuration file not being marked as one in .DEB & .RPM packages
+ Improves testing in many modules

Bye πŸ‘‹

archey4 - v4.7.0

Published by HorlogeSkynet over 4 years ago

Hello everyone, I'll try to make it short & concise !

Main (important) changes

πŸ—οΈ Since #41, and thanks to @lannuttia, the whole software architecture has been reworked.
πŸ—ΊοΈ python3-netifaces will be used to retrieve IP addresses in a more portable way. See #41 too. It's a new dependency (⚠️).
🏠 Your (local) IPv6 addresses will now be displayed by default. A new ip_settings.lan_ip_v6_support flag has been added to disable this behavior.
🚦 Since #50, and thanks to @czr137, you may now configure thresholds for Disk and RAM entries warning/danger colors with new limits.{disk,ram}.{danger,warning} configuration options.
πŸ’» Due to #51, default_strings.bare_metal_environment configuration option has been removed (⚠️), as the Model entry has been fully reworked.
🎨 Output used to contain heading and trailing newlines, they have been removed as well (⚠️).
πŸ—„οΈ Due to #42 and since #43, the Disk entry should now support BTRFS and TEMPFS file-systems.
πŸ”’ Correct units (MiB & GiB) will now be displayed for Disk and RAM entries.
πŸ“¦ Since #54, distribution packaging has been reworked, using FPM. It's time to test it using the assets below πŸ’―

Note to Arch Linux users : You really should install this package from AUR.
Note to Debian users : .DEB packages will now be signed with my GPG key (as PyPI wheels were).

Other (minor) changes

+ GitHub templates for issues and pull requests have been improved
+ Many PyLint warnings have been fixed, its usage is now cleaner
+ Some new runtime execution (and module freezing tests) have been added to CI
+ End-user documentation has been improved
+ Performance has been slightly improved
+ Temperature output format has been improved
+ For virtualization (`Model`), now relies on `systemd-detect-virt` (if available) instead of `virt-what` (it _should_ be backward-compatible with v4.6.0)
+ Relies on internal `urllib` instead of third `wget` calls when `dnsutils` (or `bind-tools` on Arch Linux) is not available)
+ Basic support for Deepin window manager and desktop environment has been added
+ (manual) `RAM` computations have been fixed (see 90975d4e)
+ Unit tests have been improved

EDIT 2020-04-19 : ⚠️ Packages for Arch Linux and RPM-based distributions are actually broken (see #59 & #60) ⚠️
Please wait for the next release, packages will be regenerated and fixed then.

archey4 - v4.6.0

Published by HorlogeSkynet about 6 years ago

Hey everyone !

So this is an exhaustive recap of what has happened between July and August, and what you should read before upgrading in any way.

A project, A.K.A. "A story of dependencies"

So, if it's not already the case, you will understand sooner or later that a main dependency of Archey 4 has changed with v4.6.0.
As extensively discussed during #36, we will now drop the direct usage of lsb_release and instead ask the distro Python module.
The idea is to propose (in a backward-compatibility way) a better support of distribution detection, by using a known maintained module that will do the job.
In the future, we may expect a lighter integration process for new distributions (like *-BSD and much more), as their id would be predictable.
It also should be faster, as it uses /etc/os-release file under the hood (if available), instead of calling an external program.

This was also the occasion to improve some distribution matching pattern (fe8ec9).

⚠️ Unless your are using Debian Jessie (and thus you should opt for an installation from PIP now), you basically only have to install python[3]-distro package from your repositories, which will provide the distro Python module.
Don't forget that, if you don't want to install it as a package for instance, it is also available from PyPI : pip3 install distro.

Once it's done, you may consider removing the no longer used lsb-release dependency, if your packages manager allows you to do it 😌

TL;DR

-lsb-release
+python3-distro

One new feature

  • A basic SlackWare support has been implemented : Feedbacks are welcome (3334624)

Some bug fixes

  • The truncation of GPU information was not handling some special characters (794083e)
  • The test cases were throwing (and still throw some) warnings (see #35)

As always, some minor improvements

  • dig & wget calls will now be forced to use respective IP versions while detecting your public address (45fd5de)
  • Little performance gain during GPU detection (fb7c79a)
  • Little performance gain during distribution detection (additionally to the usage of distro)
  • Documentation and README consistencies have been improved
  • The contributors list has been updated with latest "makers" (Thanks guys ❀️)
  • Code styles are now compliant with PyLint bad-indentation warning

Surprise (!)

Finally, I'm very happy to announce that @Xysto will kindly (try to do its best to) provide .rpm packages for Archey πŸŽ‰
As always, feedbacks will be appreciated πŸ™‡

The COPYRIGHT.md will now list "official" Archey 4 packagers.


Bye, thanks for your time and happy upgrading πŸ‘‹


EDIT : I forgot to sign this release... I've set you a signed Wheel as asset here.

EDIT 2 : Due to a bug with PyPI, I've re-submitted Wheel afterwards.
The corresponding version will hence be archey4-4.6.0.post1 due to setuptools versioning normalization.