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.
- Show available translations in help text (#157)
- Add more badges in README
- Replaces a dependency with a fork, because
go get
-- unlikego build
-- ignoresreplace
directives ingo.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
- 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
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.
- Adds multilingual support. German, Chinese (zh_CN), Esperanto (#120)
- 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
- 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)
Darwin-only release
- The change to remove GPL dependencies did not remove all dependencies. This corrects that (#131)
Command line options have changed.
- 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
- 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)
- 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.
- 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)
The FreeBSD bugfix release. While there are non-FreeBSD fixes in here, the focus was getting gotop to work properly on FreeBSD.
- 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) thantop
, and (b) that the metricgotop
is using (hw.physmem
) is probably correct -- or that there's no obviously superior metric. So no change.
- Fixes (an embarrasing) null map bug on FreeBSD (#94)
This is a bug fix release.
- 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)
- Improved documentation about installing layouts and colorschemes
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.
- 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.
- Keys not controlling process widget, #59
- The one-column bug, #62
Bugfix release.
- #15, crash caused by battery widget when some accessories have batteries
- #57, colors with dashes in the name not found.
- Also, cjbassi#127 and cjbassi#130 were released back in v3.1.0.
- 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.
- 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.
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)
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
- Add vice colorscheme #115
- Change
-v
cli option to-V
for version - Revert back to using the XDG spec on macOS