Releases: networkupstools/nut
NUT, bolt, spring... equinox? Eh, NUT v2.8.5 ultimately released after the Easter Bug hunt is over
For MANY more details please see release notes in NEWS.adoc or rendered as https://networkupstools.org/docs/release-notes.chunked/NUT_Release_Notes.html#_release_notes_for_nut_2_8_5_what_8217_s_new_since_2_8_4 and UPGRADING.adoc or rendered as https://networkupstools.org/docs/release-notes.chunked/NUT_Upgrading_Notes.html#_changes_from_2_8_4_to_2_8_5
Some highlights follow:
Further troubleshooting improvements, to help make sense of logs.
This release brings a number of improvements in NUT STARTTLS handling, complete with NIT testing scenarios for OpenSSL and NSS builds. Python and C++ client libraries also learned new tricks about this. There is still a feature disparity between the two SSL backends, to be addressed in a later release with #3331.
Several new drivers were added, and older ones improved. Added support for driver name aliasing (in several places this is checked for consistency), to open certain paths in future development.
Added an experimental (currently read-only) libwinhid backend to usbhid-ups builds on Windows, for direct access to the UPS via OS facilities -- without additional WinUSB or Zadig installations.
Also that driver (in debug mode) should now summarize which data points from the mapping it never saw in the device reports, and which reports it has no mapping for. Similar changes happened in snmp-ups too. This should help with future improvements of semi-supported devices.
Multiple mishaps fixed about service startup, especially on Windows, were addressed. Numerous changes and new features in upsdrvctl and upssched.
Systemd units for some daemons were revised to honour the MODE setting from nut.conf, if available, to gracefully not-start when explicitly not-requested (e.g. do not start upsd in MODE=netclient), even though the unit is nominally enabled; this should make packaging and providing service pre-sets more simple. [issue #837, PR #3233]
NUT CGI and upsc clients can now optionally output JSON. Modern-looking HTML/CSS/JS templates for upsstats CGI are now an option. MS IIS works as a CGI web server, example setup was documented.
In upsd, extended processing of MAXCONN setting to allow larger values than the operating system allows to handle, by only waiting for that amount of Unix sockets or Windows HANDLE's at a time, and moving on to another chunk.
The system-provided value can be further limited by NUT_SYSMAXCONN_LIMIT environment variable (e.g. in tests). [#3302]
- This is separate from
ulimiton the amount of open file descriptors.
Work proceeded on data type usage strictness and codebase unification, and portability across 25 years worth of operating systems. Optimized (parallel) build recipes some more.
Introduced a configure --enable-shared-private-libs build-time option to provide internal common NUT code as a set of shared libraries, to reduce installation footprint (otherwise a copy of used objects is linked into each binary).
A family of configure --with-confdir* options was introduced to fine-tune production and example config file installation, and to move away from abusing --with-sysconfdir (which should really be /etc not /etc/nut), in a backwards-compatible manner (existing detailed build recipes should not break).
Default settings were changed to prefer python3 if available, else python2, else python -- e.g. some one generation of the interpreter. It is still possible to explicitly request a build targeting both. [#1792]
Added a --with-systemdsysusersdir=PATH option to have systemd pre-create the user and group accounts for NUT, before packaging or manually executed commands do (this is particularly important for immutable-image operating environments). [PR #3262]
The new tools/semver-compare.sh helper script (split off from tools/gitlog2version.sh) can be used directly to expand and strip version strings, sort and compare multiple versions as one simple operation (handling the different amount of digits in version components gracefully). [issue #3055, PRs #3213, #3217]
Added a GitHub Actions CI job to generate, upload and recycle make dist and make dist-docs tarballs, so they are easier to obtain for people and other CI systems (which might not want to follow a Git repository). Links to these artifacts can be seen in workflow page (or its logs), and added as a line in GitHub Checks list associated with a commit. Note that the GitHub Action storage keeps artifacts for at most 90 days. [#1400, #2829]
Upstreamed reference packaging recipes (DEB, RPM) from the 42ITy project which can be used with OBS (Open Build Service by SUSE), both to eventually support end-user testing of NUT development, and to have a yet another NUT CI farm player with a distinct opinion on code quality. Many of the changes listed above happened thanks to this effort, and due to concerns raised by OBS build agents with various Linux distributions. [#1209, #1316, #3144]
Great thanks to all contributors, old and new!
New Contributors
- @colindean made their first contribution in #3059
- @atanas-vladimirov made their first contribution in #3135
- @NohanV made their first contribution in #3154
- @xxxajk made their first contribution in #3176
- @rewsssiestedbo made their first contribution in #3192
- @jhite1234 made their first contribution in #3206
- @DarkMike-ru made their first contribution in #3228
- @Marzal made their first contribution in #3233
- @bluca made their first contribution in #3262
- @com6056 made their first contribution in #3259
- @rtm516 made their first contribution in #3254
- @DeadEnded made their first contribution in #3265
- @systemcrash made their first contribution in #3257
- @sginestrini made their first contribution in #3269
- @air5551 made their first contribution in #3285
- @timn made their first contribution in #3279
- @Vladdrako made their first contribution in #3288
- @TomZanna made their first contribution in #3273
- @jawz101 made their first contribution in #3299
- @MysteryDove made their first contribution in #3327
- @lvl47 made their first contribution in #3323
- @dlangille made their first contribution in #3391
Full Changelog: v2.8.4...v2.8.5
NUT v2.8.4, child of the Vacation Season
Before the maintainers head off for vacations (risks of travel and all that), there is a release fixing some errata from the previous one at https://github.com/networkupstools/nut/releases/tag/v2.8.3 (so packagers have easier time having those fixes applied right in the tarball they use), and delivering a number of updates to NUT drivers - both brand-new and old. More streamlining of ECO mode terminology and workflow.
A number of code hardening fixes planned for this release have landed (and did cause exposure and fix of certain coding issues), but many were deferred to later releases so as to minimize the potential-breakage scope in this one that aimed to be a quick small increment after 2.8.3.
For more details, please see https://github.com/networkupstools/nut/blob/v2.8.4/UPGRADING.adoc and https://github.com/networkupstools/nut/blob/v2.8.4/NEWS.adoc
New Contributors
- @ke6jjj made their first contribution in #2915
- @pkubanek made their first contribution in #440
- @invario made their first contribution in #2944
- @3v1n0 made their first contribution in #2940
- @penghong123 made their first contribution in #2952
- @gksmsk made their first contribution in #2980
- @BillEll made their first contribution in #2988
- @haulfi made their first contribution in #2986
- @minfrin made their first contribution in #1407
Full Changelog: v2.8.3...v2.8.4
NUT v2.8.3, the Easter Egg Edition
For MANY more details please see release notes in NEWS.adoc or rendered as https://networkupstools.org/docs/release-notes.chunked/NUT_Release_Notes.html#_release_notes_for_nut_2_8_3_what_8217_s_new_since_2_8_2 and UPGRADING.adoc or rendered as https://networkupstools.org/docs/release-notes.chunked/NUT_Upgrading_Notes.html#_changes_from_2_8_2_to_2_8_3
Some errata already applies:
- #2921 (or for hot-fixes, commit 2b7e1e5) : Used a wrong variable name in script, so did not detect that the document types we want are not in fact buildable; the resulting builds did succeed (but without the requested documentation), misleading the builders on half-capable build environments.
- #2916 : portability problems with the helpful warning from
upsdabout "further (ignored) addresses resolved for this name", and a potential (not practically reachable) buffer overflow, both actually introduced in release v2.8.2 but only found and fixed after v2.8.3. - #2955 : it seems the changes started in #2860 for NUT v2.8.3 were incomplete, and precluded
usbhid-upsfrom running any commands without an additional argument, e.g.shutdown.return(also called internally by default) now fails butshutdown.return 0is expected to still work, so the simpleupsdrvctl shutdownorupshid-ups -a upsname -kgot broken.
A binary build of NUT for Windows, fetched and renamed from NUT-for-Windows-x86_64-SNAPSHOT-2.8.3.3028-master.7z at AppVeyor CI, is attached (in lieu of a real installer so far).
Highlights of this release:
-
New documentation book on NUT Quality Assurance and Build Automation, assimilated a few chapters from Developer Guide and User Manual and introduced a lot of new text.
-
API changes:
- Methods to handle strings with unique tokens like
ups.statuswere refactored and exposed inlibupsclientlibrary (so stock and third-party NUT clients can parse status with identical approach):upscli_str_add_unique_token()andupscli_str_contains_token() - For ages,
upscli_connect()was a blocking request which waited until interrupted by the system. Now there is a built-in timeout (defaults to0 for legacy-compatible blocking behavior) which can be modified byupscli_set_default_connect_timeout(), retrieved byupscli_get_default_connect_timeout(), and initialized from various sources by priority, including: libupsclient or program built-in defaults, config-file settings, aNUT_DEFAULT_CONNECT_TIMEOUT` envvar, or CLI options, - Symbols exported from libupsclient now include nut_debug_level* so that NUT clients can be usefully debugged (e.g. using NUT_DEBUG_LEVEL environment variable).
- "Libs" linker options exposed by
pkg-configfiles for public NUT libraries may now contain RUNPATH settings, when NUT libraries are installed into uncommon locations (not the system-default search path for libraries). - A NUT SEMVER format was defined, complete with documentation and scripting. It builds upon the common three-number SEMVER, adding a few components with certain meanings, which can be populated for non-release iterations. In same bundle of changes, the variables for
NUT_WEBSITE_BASEcan be set for rolling-development or historic release snapshot URLs. - Some work was done in documentation and code to streamline handling of "ECO" concept (or Green, or High Efficiency, or Smart, or...) which every vendor defines differently - and some of their models/firmwares might have varying opinions about as well - balancing such vague buzzwords with general vendor-neutrality of NUT reported data points or commands. This work is likely to continue in future releases, but some practical results may be tried on certain series of MGE/Eaton USB devices already.
- More symblols exposed by
libnutscan - Newly optionally delivering
libnutconf, just in case someone would want to use it rather than command-linenutconftool (arguably the tool's API may be more stable, as that project is slowly getting assimilated into NUT code base). Note: if build of the sharedlibnutconfis enabled, it would be required packaged along with the tool (otherwise it is statically built into the tool program). - The PyNUTClient no longer relies on telnetlib (was part of Python "batteries included" core since forever until 3.13)
- Added many man pages
- Methods to handle strings with unique tokens like
-
Various NUT program changes:
- The new ability to modify default connection timeout is used by a number of stock NUT clients, including upsc, upscmd, upsrw, upslog, upsmon, upsimage, upsset and upsstats (so they only try 10 seconds by default). Some have added a command-line option
-W NUMto modify this timeout, all can rely on envvar handling. - The
NUT_WEBSITE_BASEis used to provide links to rendered documentation from tools' help/usage messages, systemd/SMF service definitions, etc. - The NUT-Monitor Python GUI localization and About dialog message (with links to NUT Website) were revised.
- The
pynutclienttarball for PyPI repository was renamed (lower-cased) per their updated requirements. Python class naming remains camel-cased asPyNUTClient. - Man page section numbers/names are not same on all operating systems, so some packaging recipes had to patch their build areas to fix generated files; now NUT recipes and
configurefile support such rewrites to be done as part of vanilla build. - SystemD "presets" are now delivered to automatically enable/disable an opinionated selection of NUT service units (there are many variants for different use-cases, as documented in that file and elsewhere, but here one size fits most cases - others can customize theirs).
- The
upslogclient got some feature revision, and became an optionalnut-loggerservice (systemd/SMF). - For some platforms,
upsmonshould better handle system sleep/hibernation; more on this may be done in later releases for other platforms. - The
upsmonclient now reports the UPSes entering/exiting a lot more states, including OVER(load), TRIM, BOOST and ALARM, as well as logging of unsupported (non-standard) tokens. TheALARMCRITICALsetting controls whether presence of alarms can impact decisions about shutting down the system. Similarly it can now manage overload notifications and criticality withOVERDURATIONsetting. - Improved search for dynamically loaded shared libraries, notably by
nut-scanner- it previously looked for short symlinks likelibname.soorlibname.so.1on most platforms - and these are only delivered by additional (development) packages on some; now it should also check the exact library file name it was built against (e.g.libname.so.1.2.3) among the options it tries. - Programs which can signal their earlier instances (e.g. to reload configs or to kill off a stale driver) now should try to check the file name associated with the PID, in order to not signal unrelated programs (e.g. system rebooted, PID file remained on a persistent file system).
- A
NUT_DEBUG_SYSLOGenvironment variable was introduced to tweak activation of syslog message emission (and related detachment of stderr when daemons are backgrounding), which can be useful for systemd service units. It can be set via nut.conf file for all standard consumers, or patched/dropped-in to systemd unit definitions specifically (less recommended, but may be easier to package). The positive effect would be avoiding duplicate logging as both syslog and stderr ending up in the same journal. - Extended upsdrvctl with a list operation (or -l option) to report manageable device configuration names (possible arguments to start, stop etc. operations), or to confirm a single name that it is known, and a status operation for more information.
- The upsdrvctl should now warn if executed on systems where NUT was built with support for service management frameworks like systemd or SMF, so nut-driver service units prepared by nut-driver-enumerator would conflict with manually-executed driver programs.
- Demon messages about failing to notify an absent service subsystem should now be less cryptic (report names not numbers of respective data points)
- Reduce "scary noise" about failure to fopen() the PID file
upsdfailure to LISTEN on an invalid host name (e.g. localhost:3493 or 1.2.3.4/24) is now logged in a more actionable manner.- Many (envvar-driven) options added to reduce noise when starting NUT programs (banner, SSL, notification subsystem...); legacy behaviors mostly left in place by default
- Drivers would now report the socket they are listening on, and server would report full path to the driver socket it tries to connect to.
- Revised nut.exe (the NUT for Windows wrapper for all-in-one service) to be more helpful with command-line use
- Introduced a simple experiment to expose NUT client readings as filesystem objects via FUSE, in
scripts/fuse/execfuse-nutnow. Not production-ready nor efficient, rather a PoC of possible future work. - Revise some messages from CLI tools
- The new ability to modify default connection timeout is used by a number of stock NUT clients, including upsc, upscmd, upsrw, upslog, upsmon, upsimage, upsset and upsstats (so they only try 10 seconds by default). Some have added a command-line option
-
Driver changes:
- WARNING:
apc_modbus- known issues remain with RTU USB support, does not work reliably - Report libmodbus linking type in drivers with it;
- Troubleshooting of USB drivers with
LIBUSB_DEBUG=INTEGERsetting in ups.conf (as well as an environment variable) - All drivers should now support the optional sdcommands setting with a site-local list of instant commands to handle upsdrv_shutdown(), which may be useful in cases when the driver’s built-in commands (or their order) do not meet the goals of par...
- WARNING:
NUT v2.8.2, is it here, is it not?
While trying to set up some semblance of a proper release cadence, as well as hoping to tag a new NUT release at this or that "pretty date" time and again, something urgent kept popping up to delay the release. Still, looking month-to-month, this release is 2 years after v2.8.0, so we're on track to yearlies. Maybe quarterlies would not be impossible - just gotta manage expectations and the number of planned milestones :)
As a fun fact, some development work for this release was done directly on an Android phone (Termux app sufficiently delivers a native-architectured Debian/Linux environment), and the release is being cut from a storm in the Northern (Icy) Ocean, enchanted by the ethereal shine of the Polar lights... Interesting times, indeed...
The NUT v2.8.2 release ties up more loose ends from earlier development branches and forks, complete with warnings clean-up and Windows portability where possible/easy, bringing in nutconf (a C++ library to interact with NUT configs and more, and the frontend tool for it), an interactive CLI installer contributed from a vendor's bundling of NUT, more features for the nut-driver-enumerator (NDE), several improvements for the nut-scanner, as well as refinement, enhancements and bug-fixing for features (and odd regressions) added in the recent releases.
Some user-reported issues between their devices and such drivers as riello_usb and usbhid-ups subdriver for Belkin/Liebert support, were also added. It is always pleasant to note the collaborations which happen online, with NUT community members addressing many issues by themselves.
Much non-functional activity revolved around CI-related improvements, including migration of the NUT CI farm from Fosshost (RIP) to Digital Ocean, and revised build recipes with improved portability (especially for documentation builds).
As usual, for more details, see the NEWS.adoc and UPGRADING.adoc files, or even peruse the ChangeLog document.
The next treat on the menu in a future release can be the remainder of the 42ity fork, such as DMF technology support - it finally passed the new strict quality gates of NUT CI that appeared for v2.8.0 release and have evolved ever since. This work informed many pointed fixes for the upstream project, which are included in this release.
NOTE: The initially posted tarball signature file did not pass checks on some systems and was replaced by one made on a different maintainer workstation after a week.
New Contributors
- @kellybyrd made their first contribution in #2148
- @GreyWolfBW made their first contribution in #2169
- @delphij made their first contribution in #2198
- @moenoel made their first contribution in #2264
- @vytautassurvila made their first contribution in #2154
- @duncanwebb made their first contribution in #2274
- @dennypage made their first contribution in #2324
- @jrjparks made their first contribution in #2369
- @amikot made their first contribution in #1692
Full Changelog: v2.8.1...v2.8.2
NUT v2.8.1, now with Windows support (again) 🎃
NUT v2.8.1 release: TLDR version
Generally you can preview the live list of notable changes since 2.8.0 release at https://networkupstools.org/historic/v2.8.1/docs/release-notes.chunked/NUT_Release_Notes.html#_release_notes_for_nut_2_8_1_what_8217_s_new_since_2_8_0 and for things that are expected to impact packaging and upgrades (whether by some possibly breaking disruption, or by adding new ways to automate things more efficiently that the audience could benefit from) - at https://networkupstools.org/historic/v2.8.1/docs/release-notes.chunked/NUT_Upgrading_Notes.html#_changes_from_2_8_0_to_2_8_1 - with such release notes publication also being a recent addition.
NUT for Windows is back!
Older development of NUT for Windows was modernized over the past 15 months or so, and was merged as part of main codebase (in 2022, post-v2.8.0). Still, caveat emptor!
Better read up in comments to #5 and #1611 and #1050 to an extent. The short of it is that syntactically NUT builds pass without warnings, and survive integration tests (upsd data server and some dummy-ups driver setups). The binaries can be executed on the platform, drivers can see physical UPS devices and upsd represents them on the network; deeper integration was not tested much yet.
Builds are doable in linux+mingw (using an older build script to arrange configure options) and in Windows+MSYS2 with plain configure or same ci_build.sh as CI builds on other platforms use to arrange it. Prerequisites are listed in scripts/Windows/README and docs/config-prereqs.txt respectively (or now also actionably wrapped by appveyor.yml). Parts of serial driver codebases are ifdef-ed away.
In particular, "purely native" builds (e.g. with Visual Studio) were not attempted yet, not that I know of. The goal was to have something usable first, so first winners were even two - GCC builds with mingw (on linux and in MSYS2), with ccache recommended for faster iterations, with x86_64 and i686 targets. Probably clang is doable, but was not tried yet. Passing in custom CFLAGS into MSYS2 builds (as pre-set envvars or configure argument) caused issues for that build of gcc itself (somehow became part of path it is trying to build in). There are more variants of standard library to juggle too (UCRT etc.) for portability across Windows releases vs. modernity.
Due to availability/easy-buildability of third-party dependencies, these build scenarios currently have some non-overlapping results (notably libgd/cgi, snmp and neon/xml are known inconsistencies).
USB HID may need more work, possibly installing a low-level driver in OS, to see devices in detail. See one practical success story at #1690 (comment)
Maybe that was solved by predecessors in MSI packaging, not re-investigated yet with recent effort. The need for that research is tracked as #1485
These and other known caveats can be seen in NUT for Windows project as open tickets in https://github.com/orgs/networkupstools/projects/2/views/1 project.
Happy Halloween!
New Contributors
- @tdy91 made their first contribution in #1422
- @federicomenaquintero made their first contribution in #1431
- @oxagast made their first contribution in #1451
- @mvhirsch made their first contribution in #1445
- @45413 made their first contribution in #1497
- @maniek335 made their first contribution in #1595
- @cschuber made their first contribution in #1637
- @zakx made their first contribution in #1678
- @fweimer-rh made their first contribution in #1720
- @Tiph made their first contribution in #1722
- @neilromig made their first contribution in #1828
- @JonGilmore made their first contribution in #1848
- @modrisb made their first contribution in #1855
- @dmmop made their first contribution in #1898
- @deajan made their first contribution in #1887
- @xdelaruelle made their first contribution in #1945
- @blazzakrajsek made their first contribution in #1968
- @cholyoak made their first contribution in #1982
- @blaa made their first contribution in #2005
- @moonbuggy made their first contribution in #2089
- @alexwbaule made their first contribution in #2090
Full Changelog: v2.8.0-signed...v2.8.1
NUT v2.8.0+, now with Windows support
Older development of NUT for Windows was modernized over past months, and now merged as part of main codebase (post-v2.8.0). Caveat emptor!
Better read up in comments to #5 and #1611 and #1050 to an extent. The short of it is that syntactically NUT builds pass without warnings, and survive integration tests (upsd and some dummy-ups setups).
Doable in linux+mingw (using an older build script to arrange configure options) and in Windows+MSYS2 with plain configure or same ci_build.sh as CI builds on other platforms use to arrange it. Prerequisites are listed in scripts/Windows/README and docs/config-prereqs.txt respectively (or now also actionably wrapped by appveyor.yml). Known caveats are in NUT for Windows project as open tickets in https://github.com/orgs/networkupstools/projects/2/views/1 project.
In particular, "purely native" builds (e.g. with Visual Studio) were not attempted yet, not that I know of. The goal was to have something usable first, so first winners were even two - GCC builds with mingw (on linux and in MSYS2), with ccache recommended for faster iterations, with x86_64 and i686 targets. Probably clang is doable, but was not tried yet. Passing in custom CFLAGS into MSYS2 builds (as pre-set envvars or configure argument) caused issues for that build of gcc itself (somehow became part of path it is trying to build in). There are more variants of standard library to juggle too (UCRT etc.) for portability across Windows releases vs. modernity.
Due to availability/easy-buildability of third-party dependencies, these build scenarios currently have some non-overlapping results (notably libgd/cgi, snmp and neon/xml are known inconsistencies).
USB HID may need more work, possibly installing a low-level driver in OS, to see devices in detail. Maybe that was solved by predecessors in MSI packaging, not re-investigated yet with recent effort.
Parts of serial driver codebases are ifdef-ed away.
v2.6.5-8-Windows
Old(!!!) NUT-for-Windows effort recently attempted with (partially) modern dependencies, cross-built on Ubuntu per instructions in code, published more as a proof of concept for progressing on issue #5 than for production use.
NUT v2.8.0 (un-signed)
This is a re-post of the release artifacts to keep download URLs based on original vX.Y.Z git tag pattern, as used by distro recipes, intact. Such URLs got broken after addressing issue #1410, as reported later in issue #1971.
For release details, please see https://github.com/networkupstools/nut/releases/tag/v2.8.0-signed
New Contributors
- @vyskocilm made their first contribution in #285
- @madscientist159 made their first contribution in #294
- @The-Compiler made their first contribution in #346
- @Geraden07 made their first contribution in #373
- @nkaminski made their first contribution in #412
- @emilienkia-eaton made their first contribution in #423
- @cpaelzer made their first contribution in #464
- @michal42 made their first contribution in #496
- @georgefx made their first contribution in #539
- @bmwiedemann made their first contribution in #528
- @CashAMatic made their first contribution in #632
- @boricj made their first contribution in #650
- @rpvelloso made their first contribution in #511
- @arjendekorte made their first contribution in #504
- @Freet128 made their first contribution in #692
- @sshimko made their first contribution in #717
- @mtenberge made their first contribution in #545
- @flobernd made their first contribution in #796
- @aander07 made their first contribution in #730
- @melenki made their first contribution in #806
- @kleinpa made their first contribution in #792
- @seanm made their first contribution in #810
- @gprints made their first contribution in #775
- @hadess made their first contribution in #913
- @Bi11 made their first contribution in #933
- @smagoun made their first contribution in #950
- @andrewmccartney made their first contribution in #733
- @orbea made their first contribution in #1001
- @dev-aaront-org made their first contribution in #1005
- @marianojan made their first contribution in #638
- @jungeonkim made their first contribution in #987
- @tjmc made their first contribution in #963
- @lukakovacica made their first contribution in #807
- @denisyurin made their first contribution in #1033
- @ygorre made their first contribution in #994
- @nbriggs made their first contribution in #1024
- @ericzinnikas made their first contribution in #793
- @ikus060 made their first contribution in #538
- @fifieldt made their first contribution in #1051
- @Doridian made their first contribution in #1113
- @cottsay made their first contribution in #1048
- @dogtopus made their first contribution in #1061
- @noiseonwires made their first contribution in #276
- @abratchik made their first contribution in #1044
- @dogsbody made their first contribution in #1182
- @FrancoisRegisDegott-eaton made their first contribution in #1173
- @xbgmsharp made their first contribution in #1199
- @scolby33 made their first contribution in #1228
- @hunter86bg made their first contribution in #1224
- @blecher-at made their first contribution in #1075
- @flashydave made their first contribution in #1245
- @rouben made their first contribution in #1256
- @Ablerexsoftware made their first contribution in #1135
- @geoghegan made their first contribution in #1280
- @EVER-PowerSystems made their first contribution in #431
- @kvaster made their first contribution in #1305
- @WereCatf made their first contribution in #1318
- @tchatzi made their first contribution in #1313
Full Changelog: v2.7.4...v2.8.0
NUT v2.8.0-rc3
A third and hopefully final rehearsal for a pending NUT release, initially focused on updating sources for the documentation published on the nut-website and API to match the large changes, and also fixing a few bugs noted with the intensified testing after v2.8.0-rc1 and v2.8.0-rc2 - especially some found while integrating the new NIT (NUT Integration Testing) suite.
Welcome NUT-EEE (the Easter Egg Edition, because why not - it sounds cute?) ;)
NUT v2.8.0-rc2
A second rehearsal for a pending NUT release, fixing a few bugs noted with the intensified testing after v2.8.0-rc1, and landing some more old pull requests.
Again, production-like testing on as many platforms as possible (including proposed service management integration for systemd and SMF) would be very welcome!
UPDATE: Attached tarball was re-published due to corruption of initially uploaded one.