xmtop/CHANGELOG.md

16 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

Types of changes:

  • Added: for new features.
  • Changed: for changes in existing functionality.
  • Deprecated: for soon-to-be removed features.
  • Removed: for now removed features.
  • Fixed: for any bug fixes.
  • Security: in case of vulnerabilities.

[4.2.0] 2022-09-29

This release has entirely been made possible by contributors! A huge thank-you to:

  • Solène Rapenne (@rapenne-s), who added gotop to Nix
  • Anatol Pomozov (@anatol) for:
    • simplifying and improving the *nix getTemps() logic.
      • LOC: 9075 -> 9056
      • ABC: 4367 -> 4359
    • Fixing the nvme temps for Kelvins to Celsius
  • Stanisław Pitucha (@viraptor), for noticing that a gopsutil introduced a build
    issue on OSX and needed another bump.
  • sitiom, for noticing that gotop is available via scoop, on Windows
  • Heimen Stoffels (@vistaus) for the Dutch (nl) translation
  • Clayton Townsend II (@ctII) for the page-up/page-down process scrolling patch
  • @kqzz, for adding sort-by-command, and especially for being so patient for the
    merge.

Because of the UI control changes, it gets a minor version bump.

Added

  • Packages for gotop are available in Nix and scoop ()
  • Dutch (nl) translation
  • page-up/page-down for process scrolling
  • sort-by-command in the processes (hotkey: n)

Changes

  • Code improvements to getTemps()

Fixes

  • A gopsutil bump had affected Darwin builds
  • nvme temps were (incorrectly) displayed
  • Sorting of labels had been broken at some point; in the process of fixing
    this, I re-wrote the Less() logic, which is now a solid 10% faster.

[4.1.4] 2022-07-15

Lots of push requests (relatively, for gotop) in this release! The contributions are appreciated.

Added

  • Metrics from SMART subsystems have been added for Linux and Darwin; it's temperatures right now, but the opportunity to report other metrics is now more easily added. Note that there may be issues with this, as it's a new source of metrics, and there may be bugs in (e.g.) the temperature scale, or some devices not being identified. Thanks a bunch to @rare-magma and @anatol for working on the contribution.
  • The network widget now shows different colors for the upload and download lines (#174, thanks @quantonganh!)
  • A PACKAGERS.md document has been added that explains how to simulate the github cross-compiling build process locally -- without having to push changes upstream. This helps with finding compile-time cross-compile issues.

Changed

  • @droundy accepted a patch for the parseargs library, so removed the dependency on my fork
  • Some gopsutils warnings that provided no value were being reported; they've been silenced (thanks @ars.xda!)

Fixed

  • zh-CN updated (#205, thanks @tigerfyj!)
  • Put the manpage in a more appropriate place
  • When the RPM and DEB builds were re-enabled, the version format was giving the packages indigestion; in particular, the dpkgs would not install. This resulted in several tickets -- all of which should be fixed. (#212, #206, #209)
  • I misspelled "Celsius" yet again. It really upsets people when I do this. (#207)
  • Unit tests were not running on Darwin
  • Trying to use the @latest keyword was causing problems in github actions
  • ru_RU text fixes (thanks @ivanignatenko28!)
  • The nvidia and nvidiarefresh parameters were not being loaded from the config file (#217)

[4.1.3] 2022-02-14

Several issues pushed back to 4.1.4 to allow this one to go out.

Added

  • htop layout
  • no-X options to disable flags (thanks @mjshariati98)
  • #158, adds a man page. This can be generated with gotop --create-manpage; it's installed in Arch, RPM, and DEB packages.

Changed

  • Replaced opflag (a fork of ogier/pflag) library with droundy/goopt. This should be backwards compatible, but it's possible there may be some differences. goopt has built-in support for generating man pages, and supports anti-flags -- both items that were in the todo list.

Fixed

  • More doc typo fixes (thanks @vabshere)
  • #200, colorschemes in config file were causing a crash

[4.1.2] 2021-07-20

Added

  • Several folks contributed to building on new Apple silicon (@clandmeter,
    @areese, and @nickcorin). This took a distressingly long time for me to merge;
    it required updating and testing a newer cross-compiling CGO, and I'm timid
    when it comes to releasing stuff I can't test.
  • French and Russion translations (thank you @lourkeur and @talentlessguy!)
  • nvidia support merged in from extension
  • remote support merged in from extension
  • Spanish translation (thanks to @donPatino & @lourkeur)
  • There's a link to the github project in the help text now

Changed

  • Upgrade to Go 1.16. This eliminates go:generate for the language files, which
    means gotop no longer builds with Go < 1.16. It does make things easier for
    translators and merging.
  • The remote monitoring documentation is a little better.

Fixed

  • Extra spaces in help text (#167)
  • Crash with German translation (#166)
  • Bad error message for missing layouts (#164)
  • @JonathanReeve, @joinemm, and @plgruener contributed typo and mis-translation fixes
  • The remote extension was ignoring config-file settings (no ticket #)

[4.1.1] 2021-02-03

Added

  • Show available translations in help text (#157)

Changed

  • Add more badges in README
  • Replaces a dependency with a fork, because go get -- unlike go build -- ignores replace directives in go.mod
  • Adds links to the extension projects in the README (#159)
  • Missing thermal sensors on FreeBSD were being reported as errors, when they aren't. (#152)
  • Small performance optimization
  • github workflow changes to improve failure modes
  • Bumped gopsutils to v3.20.12
  • Bumped battery to v0.10.0
  • Debug logging was left on (again) causing chatter in logs

Fixed

  • No temperatures on Raspberry Pi (#6)
  • CPU name sorting in load widget (#161)
  • The status bar got lost at some point; it's back
  • Errors from any battery prevented display of all battery information

[4.1.0] 2021-01-25

The minor version bump reflects the addition of I18N. If you are using one of the languages that has a translation, and your environment is set to that language, the UI will be different. Translations are very welcome!

Thanks to the people who submitted PRs and translations to this release.

Added

  • Adds multilingual support. German, Chinese (zh_CN), Esperanto (#120)

Changed

  • The uploaded license was a 2-clause BSD, which is functionally equivalent; however, since the contributor agreement was for MIT, to make it clean the uploaded license file was changed to the Festival variant of MIT. (#147)
  • Per-process CPU use was averaged over the entire process lifetime. While more of a semantic difference than a bug, it was a unintuitive and not particularly useful. CPU averages are now weighted moving averages over time, with more recent use having more weight.
  • iSMC was still in the code; iSMC violates the MIT license, and this has been cleaned out.
  • Versions are now embedded during the package build, rather than being hard-coded. More info in #140

Fixed

  • No temperatures displayed (#130), a recurring issue.
  • Cannot show the CPU usages of the processes (#135)
  • power widget consumes all RAM (#134)
  • Disk usage not showing up at all (#27)
  • Missing CPU: Lists 7 of 8 expected (#19)

[4.0.1] 2020-06-08

Darwin-only release

Changed

  • The change to remove GPL dependencies did not remove all dependencies. This corrects that (#131)

[4.0.0] 2020-06-07

Command line options have changed.

Added

  • Adds support for system-wide configurations. This improves support for package maintainers.
  • Help function to print key bindings, widgets, layouts, colorschemes, and paths
  • Help prints locations of config files (color schemes & layouts).
  • Help prints location of logs.
  • CLI option to scale out (#84).
  • Ability to report network traffic rates as mbps (#46).
  • Ignore lines matching /^#.*/ in layout files.
  • Instructions for Gentoo (thanks @tormath1!)
  • Graph labels that don't fit (vertically) in the window are now drawn in additional columns (#40)
  • Adds ability to filter reported temperatures (#92)
  • Command line option to list layouts, paths, colorschemes, hotkeys, and filterable devices
  • Adds ability to write out a configuration file
  • Adds a command for specifying the configuration file to use
  • Merged cmatsuoka's console font contribution
  • Added contribution from @wcdawn for building on machines w/ no Go/root access

Changed

  • Log files stored in $XDG_CACHE_HOME; DATA, CONFIG, CACHE, and RUNTIME are the only directories specified by the FreeDesktop spec.
  • Extensions are now built with a build tool; this is an interim solution until issues with the Go plugin API are resolved.
  • Command line help text is cleaned up.
  • Version bump of gopsutil
  • Prometheus client replaced by VictoriaMetrics/metrics. This eliminated 6 indirect package dependencies and saved 3.5MB (25%) of the compiled binary size.
  • Relicensed to MIT-3 (see #36)

Removed

  • configdir, logdir, and logfile options in the config file are no longer used. gotop looks for a configuration file, layouts, and colorschemes in the following order: command-line; pwd; user-home, and finally a system-wide path. The paths depend on the OS and whether XDG is in use.
  • Removes the deprecated --minimal and --battery options. Use -l minimal and -l battery instead.

Fixed

  • Help & statusbar don't obey theme (#47).
  • Fix help text layout.
  • Merged fix from @markuspeloquin for custom color scheme loading crash
  • Memory line colors were inconsistently assigned (#91)
  • The disk code was truncating values instead of rounding (#90)
  • Temperatures on Darwin were all over the place, and wrong (#48)
  • Config file loading from ~/.config/gotop wasn't working
  • There were a number of minor issues with the config file that have been cleaned up.
  • Compile errors on FreeBSD due to golang.org/x/sys API breakages
  • Key bindings now work in FreeBSD (#95)
  • Only report battery sensor errors once (reduce noise in the log, #117)
  • Fixes a very small memory leak from the spark and histograph widgets (#128)

[3.5.3] - 2020-05-30

The FreeBSD bugfix release. While there are non-FreeBSD fixes in here, the focus was getting gotop to work properly on FreeBSD.

Fixed

  • Address FreeBSD compile errors resulting to golang.org/x/sys API breakages
  • Key bindings now work in FreeBSD (#95)
  • Eliminate repeated logging about missing sensor data on FreeBSD VMs (#97)
  • Investigated #14, a report about gotop's memory not matching top's numbers, and came to the conclusions that (a) gotop is more correct in some cases (swap) than top, and (b) that the metric gotop is using (hw.physmem) is probably correct -- or that there's no obviously superior metric. So no change.

[3.5.2] - 2020-04-28

Fixed

  • Fixes (an embarrasing) null map bug on FreeBSD (#94)

[3.5.1] - 2020-04-09

This is a bug fix release.

Fixed

  • Removes verbose debugging unintentionally left in the code (#85)
  • kitchensink referenced by, but not included in binary is now included (#72)
  • Safety check prevents uninitialized colorscheme registry use
  • Updates instructions on where to put colorschemes and layouts (#75)
  • Trying to use a non-installed plugin should fail, not silently continue (#77)

Changed

  • Improved documentation about installing layouts and colorschemes

[3.5.0] - 2020-03-06

The version jump from 3.3.x is due to some work in the build automation that necessitated a number of bumps to test the build/release, and testing compiling plugins from github repositories.

Added

  • Device data export via HTTP. If run with the --export :2112 flag (:2112
    is a port), metrics are exposed as Prometheus metrics on that port.
  • A battery gauge as a power widget; battery as a bar rather than
    a histogram.
  • Temp widget displays degree symbol (merged from BartWillems, thanks
    also fleaz)
  • Support for (device) plugins, and abstracting devices from widgets. This
    allows adding functionality without adding bulk. See the plugins decision wiki section for more information.

Fixed

  • Keys not controlling process widget, #59
  • The one-column bug, #62

[3.3.2] - 2020-02-26

Bugfix release.

Fixed

  • #15, crash caused by battery widget when some accessories have batteries
  • #57, colors with dashes in the name not found.
  • Also, cjbassi/gotop#127 and cjbassi/gotop#130 were released back in v3.1.0.

[3.3.1] - 2020-02-18

  • Fixed: Fixes a layout bug where, if columns filled up early, widgets would be
    consumed but not displayed.
  • Fixed: Rolled back dependency update on github.com/shirou/gopsutil; the new version
    has a bug that causes cores to not be seen.

[3.3.0] - 2020-02-17

  • Added: Logs are now rotated. Settings are currently hard-coded at 4 files of 5MB
    each, so logs shouldn't take up more than 20MB. I'm going to see how many
    complain about wanting to configure these settings before I add code to do
    that.
  • Added: Config file support. $XDG_CONFIG_HOME/gotop/gotop.conf can now
    contain any field in Config. Syntax is simply KEY=VALUE. Values in config
    file are overridden by command-line arguments (although, there's a weakness
    in that there's no way to disable boolean fields enabled in the config).
  • Changed: Colorscheme registration is changed to be less hard-coded.
    Colorschemes can now be created and added to the repo, without having to also
    add hard-coded references elsewhere.
  • Changed: Minor code refactoring to support Config file changes has resulted
    in better isolation.

[3.2.0] - 2020-02-14

Bug fixes & pull requests

  • Fixed: Rowspan in a column loses widgets in later columns
  • Fixed: Merged pull request for README clean-ups (theverything:add-missing-option-to-readme)
  • Added: Merge Nord color scheme (jrswab:nordColorScheme)
  • Added: Merge support for multiple (and filtering) network interfaces (mattLLVW:feature/network_interface_list)
  • Added: Merge filtering subprocesses by substring (rephorm:filter)

[3.1.0] - 2020-02-13

Re-homed the project after the original fork (trunk?) was marked as
unmaintained by cjbassi.

  • Changed: Merges @HowJMay spelling fixes
  • Added: Merges @markuspeloquin solarized themes
  • Added: Merges @jrswab additional kill terms
  • Added: Adds the ability to lay out the UI using a text file
  • Changed: the project filesystem layout to be more idiomatic

3.0.0 - 2019-02-22

Added

  • Add vice colorscheme #115

Changed

  • Change -v cli option to -V for version
  • Revert back to using the XDG spec on macOS

Fixed

2.0.2 - 2019-02-16

Fixed

  • Fix processes on macOS not showing when there's a space in the command name #107 #109