<div dir="ltr"><div>Hello, fellow NUTs!</div><div></div><div>
<div class="gmail-markdown-body gmail-my-3"><p>After
 a long and windy trip since the last official release v2.7.4 half a 
dozen years ago, we the community, contributors and maintainers are 
proud to announce at last the general availability of NUT v2.8.0!</p>
<p>As always, the new release includes numerous new drivers, 
sub-drivers, protocols and bug-fixes, with many companies and 
individuals chipping in with contributions of code.Thanks to everyone 
involved in making this happen, inspiring the changes, and providing the
 open-source friendly infrastructure.</p>
<p>This release also culminates a significant effort in improvements of 
NUT QA and CI, and as a result -- in codebase quality and portability 
across a decade or two of recent platforms, third-party tools and other 
dependencies. As a side effect, public API (in headers and libraries) 
has changed a bit, hence a new semantic "minor" number is claimed for 
this major body of work.</p>
<p>During this time, the <a href="https://networkupstools.org/" rel="nofollow">https://networkupstools.org/</a>
 web site has changed to a rolling-release model to serve current 
information to match the evolving codebase. There are now special <a href="https://networkupstools.org/historic/index.html" rel="nofollow">Sub-sites for historic releases</a> to keep documentation snapshots relevant for users of packages which are typically based on official NUT releases.</p>
<p>We recognize that NUT is an important piece of infrastructure which 
gets built into all sorts of devices, projects and operating systems -- 
some of which the team never heard of until they pop up in a question, 
and others we haven't heard of for years -- so we take a seriously 
omnivorous stance towards covering many versions and implementations of 
compiler suites, C/C++ revisions, make programs, shell and other 
scripted language interpreters, OSes and CPUs, and other similar 
variables tamed with our new NUT CI farm <a href="https://github.com/networkupstools/jenkins-dynamatrix">test matrix dynamically driven</a> by currently registered build agents and their declared capabilities.</p>
<p>Sections in the <code>NEWS</code> and <code>UPGRADING</code> files 
about changes since last release are several pages long, so would not 
all be repeated here. A few important highlights for distribution 
packagers and custom builders follow, however:</p>
<ul><li>NUT now supports more i2c and modbus devices, as well as libusb-1.0 
support as an alternative to earlier libusb-0.1 (so new dependency-based
 categories of packages for drivers may be due);</li><li>NUT Python modules and scripts (e.g. NUT-Monitor variants) should 
work with python-2.7 and with python-3.x, so covering historic distro 
releases as well as new ones (and so <em>your</em> distro can deliver one or both, probably in several packages with different dependencies in the latter case);</li><li>NUT provides revised reference systemd and SMF service unit 
definitions, including support of drivers wrapped into individual 
service instances with varying dependencies based on different media 
required (networked stack, USB stack, etc.), and many daemons include <code>-F</code>
 option for running "in foreground" to avoid extra forking after one 
already done by a service framework - you may want to use those in your 
packaged deliverables;</li><li>NUT newly provides the "nut-driver-enumerator" script and service, which allows it to follow edition of <code>ups.conf</code>
 and dynamically define+(re)start and stop+undefine service instances 
for drivers - there are several ways it can be integrated for different 
use-cases;</li><li>there are several new configuration keywords and CLI options - so 
while new NUT builds should work with old configs and scripts, the 
opposite is not necessarily true (old binaries may reject configurations
 taking advantage of new features);</li><li>there are several new protocol keywords - but old and new NUT 
daemons (data server and clients) should be able to communicate both 
ways;</li><li>it is assumed that API/ABI changes may require third-party NUT 
clients (library consumers of libnutclient, libupsclient, libnutscan... 
-- their version info was bumped accordingly) to get rebuilt, in order 
to work with the new NUT release in a stable fashion;</li><li>the <code>dummy-ups</code> driver used in automated testing now processes <code>*.dev</code> filename patterns once and does not loop, like it still does for <code>*.seq</code> and other files (by default);</li><li>USB code is now more strict about logical minimum/maximum ranges for
 data reported from devices, and some devices were already found to make
 mistakes - so there is also a mechanism for turning a blind eye to 
known issues and fix-up such report descriptors to produce intended sane
 values;</li><li>new documentation page <code>docs/config-prereqs.txt</code> 
highlights packaged dependencies installable on a large range of 
platforms to build as much of NUT as possible (incidentally, ones NUT CI
 farm uses to test every iteration);</li><li>finally, we hope that NUT codebase might be able to cater for 
everyone "out of the box" (it also simplifies local builds from GitHub 
sources on any systems, for troubleshooting and checking pre-release 
enhancements): if you as a packager have to apply patches for your 
distribution, give it a thought -- whether they address a common issue 
best solved upstream once and behave similarly for everyone (and 
conversely, if your platform can do with existing solutions already 
tracked in the NUT version du-jour). PRs welcome! Or at least <a href="https://github.com/networkupstools/nut/wiki/Links-to-distribution-packaging-recipes-and-repository-sections">Wiki entries</a> to list all the distro efforts for cross-pollination :)</li></ul>
<p>A lot of effort and several rounds of community testing have gone 
into making sure that all these new features and bug-fixes and addressed
 warnings did not break anything severely, but... things might happen.</p>
<p>Still, there is always room for improvement and many known efforts 
that did not make it into this release got queued into the next. 
Likewise, there are some open issues about 
device/model/firmware-specific behaviors that are known but were not 
even addressed - we would always welcome help and PRs from community 
members with devices, debugging/coding skills, and time to spare.</p>
<p>In any case, we hope the next NUT releases will happen in a more manageable cadence ;)</p>
<p>Managing power can be fun, but mis-managing power can be dangerous. 
While we hope that new NUT release would not have fallout as spectacular
 and dramatic as from a certain other power monitoring and management 
system that <a href="https://world-nuclear.org/information-library/safety-and-security/safety-of-plants/chernobyl-accident.aspx" rel="nofollow">failed 36 years ago today</a>, please do take care with your electric experiments, and do secure your installations!</p></div>

</div><div>On behalf of the Network UPS Tools team,</div><div>Jim Klimov</div><div><br></div></div>