Nyx

Change Log

The following is a log of all user-facing changes to Nyx, both released and unreleased. For a monthly report on work being done see my development log.

- Versioning
- Version 2.1 (January 12th, 2019)
- Version 2.0 (November 5th, 2017)
- Unreleased
- Version 1.x

Versioning

As of the 2.x release Nyx uses semantic versioning, which means that versions consist of three numbers (such as '1.2.4'). These are used to convey the kind of backward compatibility a release has...

- The first value is the major version. This changes infrequently, and indicates that backward incompatible changes have been made (such as the removal of deprecated functions).

- The second value is the minor version. This is the most common kind of release, and denotes that the improvements are backward compatible.

- The third value is the patch version. When a Nyx release has a major issue another release is made which fixes just that problem. These do not contain substantial improvements or new features. This value is sometimes left off to indicate all releases with a given major/minor version.

Prior to version 2.x nyx did not follow any particular versioning scheme.

Unreleased

The following are only available within Nyx's git repository.

Version 2.1 (January 12th, 2019)

Fixup release, correcting issues uncovered in the prior year.

- Startup
  - Connect by default to Tor Browser's default port (9151) when it's available
  - Nyxrc color_override configuration values only worked if camel case (ticket)
  - 'sqlite3.OperationalError' crash when ran with multiple users that share a home directory (ticket)
  - Process renaming could potentially crash (ticket)
  - Blank debug path caused us to crash (ticket)
  - Nyxrc password option for the controller credential (ticket)
  - Accept shorthand '--interface' arugments with a colon but no address (ticket)
  - Notification when connection information is unavailable (ticket)
  - When using python 3.x unable to run if distutils was unavailable (ticket)
- Header
  - Right column of stats missing when using python 3.x
- Graph
  - Removed confusing, unit-less 'measured' statistic
- Connections
  - Geoip information unavailable for inbound connections
  - Dialog showing exit statistics crashed when no data was available (ticket)
  - More strictly scrub sensitive connection information (ticket)
  - Client and exit port usage dialogs counted each connection rather than unique clients and destinations (ticket)
- Logging
  - Python3 crashed when dates are on year boundaries (ticket)
- Configuration Editor
  - New tor configuration options crashed nyx when shown (ticket)
  - Errors when saving the configuration could result in a stacktrace (ticket)
  - Pressing 'esc' when editing values changed their value to 'none' (ticket)
  - Reset configuration option if set to an empty value
- Interpreter
  - Line wrap content (ticket)
  - Large volume of content made the panel sluggish (ticket)
- Curses
  - Resizing could crash the interface (ticket)
  - Implemented del key in editable text fields (ticket)
- Website
  - Greatly expanded platforms available on the download page
  - Added 'How do I get started?' to the FAQ
  - Added 'Why can't I install with apt-get?' to the FAQ
  - Added 'Why can't I see Tor's connections?' to the FAQ

Version 2.0 (November 5th, 2017)

Long belated update that's nothing less than a complete rewrite! Also see Tor's blog announcement. Adds long overdue python 3.x support, test coverage, and migrate from TorCtl to Stem, and more...

- Startup
  - Startup is several seconds faster when ran for the first time
  - Halved startup time and reduced memory by caching consensus data to disk
- Graph
  - Graph prepopulation no longer requires shifting to 15 minute intervals
  - Graphing bandwidth as bytes by default, rather than bits
  - Reduced cpu usage of rendering this panel by 60%
- Connections
  - Connections now shown despite DisableDebuggerAttachment
  - Support for showing IPv6 connections
- Logging
  - Reduced log deduplication from an O(n2) operation to constant time
- Interpreter
  - Integrate Stem's richer control interpreter
  - Functional python prompt, like IDLE
- Curses
  - Interface continues to update while awaiting user input
- Website
  - Entirely new website at nyx.torproject.org
  - Added FAQ section
  - Added Configuration section
  - Added Contact section

Version 1.x

Prior to its 2.x release Nyx went under the name of arm. This series was under active development 2009 to 2012. Changelog for the series is available here.