Skip to content

Releases: HorlogeSkynet/archey4

v4.13.0

29 Aug 15:00
Compare
Choose a tag to compare

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 👋

v4.12.0

08 May 11:00
Compare
Choose a tag to compare

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 👋

v4.11.0

21 Mar 08:22
Compare
Choose a tag to compare

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 2ec11f4)

🆕 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 👋

v4.10.0

18 Dec 17:46
Compare
Choose a tag to compare

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 👋

v4.9.0

28 Nov 15:12
Compare
Choose a tag to compare

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 👋

v4.8.1

11 Oct 07:56
Compare
Choose a tag to compare

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.

v4.8.0

26 Sep 17:40
Compare
Choose a tag to compare

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.

v4.7.2

20 May 10:12
Compare
Choose a tag to compare

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 👋

v4.7.1

24 Apr 14:09
Compare
Choose a tag to compare

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 👋

v4.7.0

27 Mar 15:12
Compare
Choose a tag to compare

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 (:warning:).
🏠 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 (:warning:), as the Model entry has been fully reworked.
🎨 Output used to contain heading and trailing newlines, they have been removed as well (:warning:).
🗄️ 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.