Skip to content

Commit 0eb2045

Browse files
authored
Merge pull request #2973 from jimklimov/ci-build-quicker-matrix
Propose a `ci_build.sh` quicker matrix for `BUILD_TYPE=default-all-errors` scenarios
2 parents 310c096 + f98dd01 commit 0eb2045

9 files changed

Lines changed: 388 additions & 398 deletions

File tree

Makefile.am

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1426,7 +1426,11 @@ git-realclean-check:
14261426
# quickly handled by external tools, to group (in life and log) various checks
14271427
# separately from the probably slower/louder stages for test programs like
14281428
# check-NIT:
1429-
check-files-quick: spellcheck-quick check-man
1429+
CHECK_FILES_QUICK_TARGETS = check-man
1430+
if WITH_SPELLCHECK
1431+
CHECK_FILES_QUICK_TARGETS += spellcheck-quick
1432+
endif WITH_SPELLCHECK
1433+
check-files-quick: $(CHECK_FILES_QUICK_TARGETS)
14301434

14311435
# Autotools hook: run the quick checks before recursing for defaults:
14321436
check-recursive: check-files-quick

NEWS.adoc

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ https://github.com/networkupstools/nut/milestone/9
5555
v2.8.2), where `configure --with-docs=all` no longer failed a run
5656
of the `configure` script when some of the required rendering tools
5757
were not in fact available. [#2842, fixed by #2921]
58+
* Some recipe improvements in earlier releases led to `make check` always
59+
running a spelling check (if tools are available), even if the explicit
60+
`configure --disable-spellcheck` option was used. Now it would not run
61+
if disabled (e.g. to speed up CI builds in scenarios that focus on other
62+
aspects of the code base), although developers can still use the explicit
63+
`make spellcheck*` goals, when tools are in fact available. [#2973]
5864
* A change in `Makefile.am` recipes to evaluate some driver names in the
5965
`DRIVERLIST` variables inspected by `configure` script, rather than
6066
having all their names hard-coded like before, led to inability to
@@ -107,7 +113,7 @@ https://github.com/networkupstools/nut/milestone/9
107113

108114
- common driver code:
109115
* Update reports of failed socket file creation, to help troubleshooting
110-
some error cases in the field.
116+
some error cases in the field. [#2959]
111117
* Removed workarounds trying to migrate legacy driver raised `ALARM`
112118
status tokens into modern `alarm_*` function logic. Rather, we keep
113119
supporting them as separate from the modern logic, seeing as `upsmon`
@@ -120,6 +126,9 @@ https://github.com/networkupstools/nut/milestone/9
120126
change, operations that intend to turn off or restart the load, or can
121127
do that by side effect (e.g. calibration if batteries are old or dead),
122128
would explicitly `upslogx(LOG_CRIT,...)` by default before commencing.
129+
[#2957]
130+
* Fixed a couple of ancient memory leaks: one "shared" during driver
131+
program initialization, and one specific to `dummy-ups` wind-down. [#2972]
123132

124133
- `dummy-ups` driver updates:
125134
* A new instruction `ALARM` was added for the `Dummy Mode` operation
@@ -175,6 +184,14 @@ https://github.com/networkupstools/nut/milestone/9
175184
name (`man1m`), as different OS distributions have different preferences
176185
in this regard. [#2950]
177186

187+
- The `BUILD_TYPE=default-all-errors ci_build.sh` script handling was
188+
revised to simplify code, and to default in CI builds to a quicker
189+
mode which randomly mixes the selected SSL, USB and UNMAPPED variants
190+
(and relies on the dozens of NUT CI farm runs per iteration to likely
191+
cover all possible combinations), which should roughly halve the CI
192+
build times. Default activity for developer builds should remain as
193+
it was -- to try each such "axis" sequentially. [#2973]
194+
178195

179196
Release notes for NUT 2.8.3 - what's new since 2.8.2
180197
----------------------------------------------------

ci_build.sh

Lines changed: 340 additions & 390 deletions
Large diffs are not rendered by default.

conf/upsmon.conf.sample.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@ SHUTDOWNCMD "/sbin/shutdown -h +0"
232232
#
233233
# Adjust this to keep upsmon from flooding your network, but don't make
234234
# it too high or it may miss certain short-lived power events.
235+
#
236+
# NOTE: This setting is different from a `pollfreq` supported by some of
237+
# the NUT driver programs, such as usbhid-ups (about how often the driver
238+
# polls a particular device).
235239

236240
POLLFREQ 5
237241

configure.ac

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3581,6 +3581,8 @@ AM_CONDITIONAL(WITH_CHECK_NIT, test "${nut_enable_check_NIT}" = "yes")
35813581

35823582
dnl ----------------------------------------------------------------------
35833583
dnl checks related to --enable-spellcheck
3584+
dnl NOTE: If the tools are present, you can "make spellcheck" explicitly;
3585+
dnl this setting is about trying or not to run it as part of "make check".
35843586

35853587
NUT_CHECK_ASPELL
35863588
NUT_ARG_ENABLE([spellcheck], [Run spellcheck among default checks], [auto])
@@ -3602,7 +3604,8 @@ case "${nut_enable_spellcheck}" in
36023604
esac
36033605
AC_MSG_RESULT([${WITH_SPELLCHECK}])
36043606

3605-
AM_CONDITIONAL(WITH_SPELLCHECK, test "${WITH_SPELLCHECK}" = "yes")
3607+
NUT_REPORT_FEATURE([requested to spell-check the documentation], [${WITH_SPELLCHECK}], [],
3608+
[WITH_SPELLCHECK], [Define to enable documentation spell checking as part of default checks], [-])
36063609

36073610
dnl ----------------------------------------------------------------------
36083611
dnl checks related to --with-doc

docs/man/index.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ endif::website[]
77
User manual pages
88
-----------------
99

10+
ifndef::in-nut-manpage[]
1011
NUT overview
1112
~~~~~~~~~~~~
1213

1314
- linkman:nut[7]
15+
endif::in-nut-manpage[]
1416

1517
Configuration files
1618
~~~~~~~~~~~~~~~~~~~

docs/man/nut.txt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ The "primary" system is usually also responsible for commanding the managed
147147
systems would otherwise remain shut down indefinitely (until someone comes
148148
and reboots them) just because external power returned when the shut down
149149
spree had already started.
150+
150151
* linkman:upsc[1] is a command-line client for anonymous read-only access,
151152
used to list devices served by a NUT data server, or to query data points
152153
reported by a particular device.
@@ -250,15 +251,16 @@ NUT Drivers as Service instances
250251

251252
Starting with NUT v2.8.0, on systems with service management frameworks
252253
(like Linux systemd or Solaris/illumos SMF) you may be even inadvertently
253-
using the linkman:nut-driver-enumerator[8]. This is a script, which may
254-
also called automatically (via packaging on impacted platforms) at start-up
255-
or as a service, to process the linkman:ups.conf[5] file and maintain the
256-
service units (with their dependencies) for each driver section separately.
254+
using the linkman:nut-driver-enumerator[8] (also known as "NDE") facility.
255+
This is a script, which may be also called automatically (via packaging on
256+
supported platforms) at start-up or may be running continuously as a service,
257+
to process the linkman:ups.conf[5] file and maintain the service units
258+
(with their dependencies) for each driver section separately.
257259

258260
This sometimes raises eyebrows when end-users try to manually start a NUT
259261
driver program (either directly or using linkman:upsdrvctl[8] tool), and
260262
this either fails (because the device is already busy) or gets to conflict
261-
with the copy of the driver running as a service instance and they begin
263+
with the copy of the driver running as a service instance, and they begin
262264
to terminate each other.
263265

264266
Configuring NUT Drivers
@@ -321,6 +323,7 @@ to secure access to those files and their copies as well.
321323
:leveloffset: 1
322324
///////////////
323325

326+
:in-nut-manpage: true
324327
include::index.txt[]
325328

326329
///////////////

docs/man/upsmon.conf.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,10 @@ Second, there is a point of diminishing returns if you set it too low.
361361
While upsd normally has all of the data available to it instantly, most
362362
drivers only refresh the UPS status once every 2 seconds. Polling any
363363
more than that usually doesn't get you the information any faster.
364+
+
365+
NOTE: This setting is different from a `pollfreq` supported by some of
366+
the NUT driver programs, such as linkman:usbhid-ups[8] (about how often
367+
the driver polls a particular device).
364368

365369
*POLLFREQALERT* 'seconds'::
366370

docs/man/usbhid-ups.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ Set polling frequency for full updates, in seconds. Compared to the quick
120120
updates performed every "pollinterval" (the latter option is described in
121121
linkman:ups.conf[5]), the "pollfreq" interval is for polling the less-critical
122122
variables. The default value is 30 (in seconds), or 12 sec for CPS devices.
123+
+
124+
NOTE: This setting is different from a `POLLFREQ` supported by linkman:upsmon[8]
125+
(for details see its linkman:upsmon.conf[5]).
123126

124127
*pollonly*::
125128
If this flag is set, the driver will not use Interrupt In transfers during the

0 commit comments

Comments
 (0)