Introduction
After thirty-three months since the last release v2.0.7722.30975, with work by @gawindx, myself and several other contributors to the WinNUT project, I'm proud to offer the latest stable release of WinNUT. This marks the first stable release since @gawindx kicked off the effort to modularize WinNUT and improve maintainability and stability. Unfortunately we've lost contact with them, but I decided to take over and relocate the project in an effort to leave WinNUT in a stable and efficient state. I hope you find this release meeting your expectations and needs for UPS monitoring.
Functional/event handling improvements
Many functional changes under the hood have been made to WinNUT, starting with the code modularization kicked off by @gawindx. Further work was done to improve & fix handling power event changes, connection changes and other events from the UPS. Windows 10+ notifications should now be working, as well as the stop action system and Full Shut Down commands from the UPS. The Error Reporting system is more stable, and the automatic reconnection system is fully working. UPS Load calculation has also been reworked.
- Windows 10 Hibernate & Clear Shutdown Timer (redo) in #7
- Improve Connection handling & Logging, Power State handling in #11
- Better disconnection handling in main form in #20
- Large changes to Socket/UPS, DATA-STALE error handling in #25
- Battery-related changes in #33
- Re-activate stop actions system and status updates overhaul in #36
- Correct Interval/Delay value in #37
- Fix incorrect windows version detection in #51
- Fix List_Var_Gui error in #52
- Upgrade unhandled exception handling, cryptography in #49
- Respect Follow FSD setting in #57
- Improve connection loss handling in #64
- Define UPS_States values as pow of 2 to fix state change detection by @supersmile2009 in #71
- Improvements to Login subroutine in #88
- Error Reporting & Exception Catching Refactor in #86
- Fix FormatException in Update_Gui in #98
- Fix unable to exit with tray closing functionality in #108
- Re-enable retry connection on first start in #107
- Correct UPS Load display in #112
Setup and deployment
Work was done to change how WinNUT was deployed, from simple changes to the Setup project builder to the deployment of a debug Continuous Integration system for making debug builds automatically for pull requests. WinNUT was also upgraded to use the .NET Framework version 4.8. This is the latest version that still has Windows 7 SP1 as the minimum system requirement.
- Creating Continuous Integration workflow in #28
- Installer dependency cleanup in #48
- Upgrade to .Net Framework 4.8 in #53
- Fix release build by @supersmile2009 in #72
- Update README.md by @pvanderp in #87
Logging improvements
How and where WinNUT stores log files has been standardized against the .NET Framework so they can be predictably found in (user folder)\AppData\Roaming\NUTDotNet\WinNUT Client\(version)\Logs
.
- Logging Improvements in #10
- Additional logging improvements and cleanup in #19
- Logging fixes in #50
- Attempting to finally solve data directory oddities in #62
- Fix logs going to App directory again in #111
Translation improvements
Our international audience has been busy improving translations for WinNUT. A bug causing errors when strings were too long was fixed. If you see translations that need additional work, please consider contributing.
- Improve de-DE (German) Translation in #8
- Add Translation/zh-TW/zh-TW.csv for Chinese (Traditional) by @yrctw in #23
- Small updates to german Translation by @MartinKurtz in #30
- Applying translations in #39
- Update translation for Traditional Chinese by @yrctw in #119
New Contributors
- @yrctw made their first contribution in #23
- @MartinKurtz made their first contribution in #30
- @andriibratanin made their first contribution in #54
- @supersmile2009 made their first contribution in #71
- @pvanderp made their first contribution in #87
Full Changelog: v2.0.7722.30975...v2.2.8719
Addendum/Closing words
From the onset, I thought my efforts would be simply to fix bugs in WinNUT and leave it otherwise unchanged. Afterwards, I would begin work on WinNUT's replacement. As time goes on, I'm realizing that there's more work I'd like to do on WinNUT to leave it in the best possible state, as well as attempt to integrate the NUT.Net library I've been working on in preparation for the next version of WinNUT. Thus, I'm now planning on several more stable releases of WinNUT before I officially consider the project complete and deprecated. Please continue providing your feedback and bug reports so we can make this iteration of WinNUT the most complete and bug-free iteration yet.