Releases: HorlogeSkynet/archey4
v4.13.0
Release Notes
🆕 Official NetBSD support
🆕 Archey official project logo (CC-BY Brume)
🆕 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
Bye, happy upgrade 👋
v4.12.0
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 previousarchey-osx
project logo !
📦 distro
& netifaces
Python dependencies are now "frozen" to allow upstream breakages
API (breaking) changes
🆕 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
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 requiresiStats
orOSX 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
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
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
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
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
Release Notes
🆕 Multiple GPU
s 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
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.
📦 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
fixedupdated - The
os-release
'sANSI_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 ofcolors_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
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 :
Please wait for the next release, packages will be regenerated and fixed then.