All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Please open an issue for any deviations that you spot; I'm still learning!.
The following types of changes will be recorded in this file:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.
- placeholder
v0.19.0 - 2024-11-27
- (GH-330) Add plugin output size metric
- (GH-323) Go Dependency: Bump github.com/stretchr/testify from 1.9.0 to 1.10.0
v0.18.1 - 2024-11-23
- (GH-317) Extend logging for error collection handling
- (GH-313) Update connectionResetByPeerAdvice doc comments
- (GH-315) Fix log message for skipping thresholds section
v0.18.0 - 2024-11-16
- (GH-309) Add support for transparent payload compression
- (GH-300) Update
logPluginOutputSize
calls for consistency - (GH-310) Update README to note payload behavior changes
v0.17.1 - 2024-11-08
- (GH-296) Unescape encoded Ascii85 payload before decoding
v0.17.0 - 2024-11-06
- (GH-288) Add support for embedded/encoded payloads
- (GH-289) Add support for (internal) debug logging output
- (GH-291) Clarify handling of empty payload input
- (GH-292) Enable LongServiceOutput header/label for payloads
- (GH-268) Fix
Plugin.SetOutputTarget
method - (GH-273) Fix test case validity check
- (GH-290) Minor refactoring of Range and Thresholds support
v0.16.2 - 2024-10-10
- (GH-240) Update Dependabot PR prefixes
- (GH-241) Update Dependabot PR prefixes (redux)
- (GH-242) Go Dependency: Bump github.com/stretchr/testify from 1.8.4 to 1.9.0
- (GH-245) Add check_cert plugin perfdata success test case
- (GH-254) Update README reference links
- (GH-247) Remove inactive maligned linter
- (GH-248) Fix errcheck linting errors
- (GH-252) Fix
TestEmptyServiceOutputProducesNoOutput
test - (GH-257) Fix
predeclared
linter warnings
v0.16.1 - 2024-01-25
- (GH-220) Add initial automated release notes config
- (GH-221) Add initial automated release build workflow
- (GH-222) Update Dependabot config to monitor both branches
- (GH-225) ghaw: bump actions/checkout from 3 to 4
- (GH-227) go.mod: bump github.com/google/go-cmp from 0.5.9 to 0.6.0
- (GH-232) ghaw: bump github/codeql-action from 2 to 3
- (GH-219) Disable unsupported build opts in monthly workflow
- (GH-230) Hotfix goconst linting errors for test cases
- (GH-236) Fix panic if ParseRangeCheck returns nil
- credit: @Tommi2Day
- (GH-237) Update Range Check regexp
- credit: @Tommi2Day
v0.16.0 - 2023-06-23
- (GH-209) Add support for error annotations
- (GH-214) Add method for growing errors collection with deduplication behavior
- (GH-210) Update vuln analysis GHAW to remove on.push hook
- (GH-207) Disable depguard linter
- (GH-211) Restore local CodeQL workflow
- (GH-212) Explicitly document that
(nagios.Plugin).AddError
does not perform deduplication of errors
v0.15.0 - 2023-05-31
- (GH-192) Add another perfdata success parsing test case
- (GH-203) Add state lookup helper functions
- (GH-204) Add "quick" Makefile recipe
- Dependencies
stretchr/testify
v1.8.1
tov1.8.4
- (GH-194) Drop
Push Validation
workflow - (GH-195) Rework workflow scheduling
- (GH-197) Remove
Push Validation
workflow status badge
- (GH-199) Update vuln analysis GHAW to use on.push hook
- (GH-201) Fix revive linting errors
v0.14.0 - 2023-01-27
- (GH-175) Add support for parsing performance data
- (GH-186) Expand Performance Data validation
- (GH-184) Fix TestPerformanceDataIsNotDuplicated test
- (GH-187) Update gitignore vscode exclusions
v0.13.0 - 2023-01-26
- (GH-176) Warning and Critical Threshold Handling
- credit: @infraweavers
- (GH-179) Add Go Module Validation, Dependency Updates jobs
- (GH-174) Fix section header for v0.12.1 release
- (GH-181) Refactor newly added Range support
- primarily small linting related updates
v0.12.1 - 2022-12-15
- (GH-172) Replace further ExitState references
v0.12.0 - 2022-12-15
- (GH-169) Rename primary
ExitState
type toPlugin
,New
constructor toNewPlugin
v0.11.0 - 2022-12-14
- (GH-102) Add constructor to initialize plugin start time, provide
time
Performance Data metric "automatically"
v0.10.2 - 2022-10-19
- (GH-164) Sort performance data metrics for consistent output
v0.10.1 - 2022-10-09
- Dependencies
google/go-cmp
v0.5.8
tov0.5.9
- (GH-103) Emit Performance Data on same line as
ServiceOutput
ifLongServiceOutput
is empty - (GH-146) Move examples from README to Example tests
- (GH-154) Refactor GitHub Actions workflows to import logic
- (GH-156) Update README to include go.mod badge
- (GH-157) Prevent duplication of Performance Data metrics
v0.10.0 - 2022-09-18
- (GH-144) Add test to prevent further Service Output interpolation regressions
- (GH-145) Add support for setting preferred output target
- (GH-147) Add option to skip os.Exit call at end of plugin execution
- (GH-149) Add initial plugin output test
- Dependencies
github/codeql-action
v2.1.22
tov2.1.23
v0.9.2 - 2022-09-15
- (GH-137) Update project to Go 1.19
- (GH-138) Update Makefile and GitHub Actions Workflows
- (GH-139)
ExitState.ServiceOutput
is (incorrectly) interpreted as containing format specifier
v0.9.1 - 2022-06-20
- (GH-132)
LongServiceOutput
header is emitted whenExitState.LongServiceOutput
field is empty - (GH-134) Update lintinstall Makefile recipe
- (GH-135) Fix Go 1.19beta1 gofmt linter warning
v0.9.0 - 2022-06-16
- (GH-107) Add support for overriding section headers/labels
- (GH-117) Add options to explicitly "hide" or omit Thresholds and Errors section, automatically hide Detailed Info section if those sections are unused
- (GH-120) Allow collecting multiple errors
-
Dependencies
actions/checkout
v2.4.0
tov3
actions/setup-node
v2.5.1
tov3
-
(GH-118) Automatically omit Thresholds and Errors sections if unused
-
(GH-112) Expand linting GitHub Actions Workflow to include
oldstable
,unstable
container images -
(GH-113) Switch Docker image source from Docker Hub to GitHub Container Registry (GHCR)
-
(GH-130) Refresh README, go.doc files for v0.9.0 release
- (GH-121)
err113
linting issues:do not define dynamic errors, use wrapped static errors instead
- (GH-127) cognitive complexity 32 of func
(*ExitState).ReturnCheckResults
is high (> 10) (gocognit)
v0.8.2 - 2022-01-01
- Dependencies
actions/checkout
v2.3.5
tov2.4.0
actions/setup-node
v2.4.1
tov2.5.1
- (GH-104) Swap nil PerformanceData check for length check
- (GH-109) Nagios XI interprets current
nagios.CheckOutputEOL
value as two newlines
v0.8.1 - 2021-11-02
- Dependencies
actions/checkout
v2.3.4
tov2.3.5
- (GH-98) Performance Data emitted when
ServiceOutput
andLongServiceOutput
empty - (GH-96) CHANGELOG | Fix typo and clarify perfdata support
v0.8.0 - 2021-09-30
- Add initial support for collecting, formatting & emitting performance data
- Dependencies
actions/setup-node
v2.4.0
tov2.4.1
- Fix typo in CHANGELOG release tags list
- Remove duplicate package doc comments
v0.7.0 - 2021-09-07
- (GH-80) Add
ServiceState
type
- Dependencies
actions/setup-node
- (
v2.2.0
tov2.4.0
- (
- (GH-76) Fix typo in doc comment for
ExitStatusCode
field - (GH-82) Typo in
UNKNOWN
state label text
v0.6.1 - 2021-07-15
- Panic error message
- (GH-69) stack trace wrapped with Markdown code fences instead of
pre
tags - (GH-68) provide complete stack trace instead of snippet
- (GH-69) stack trace wrapped with Markdown code fences instead of
- Documentation
- Replace GoDoc badge with pkg.go.dev badge
- Dependencies
actions/setup-node
- (
v2.1.4
tov2.2.0
- update
node-version
value to always use latest LTS version instead of hard-coded version
- (
v0.6.0 - 2021-01-14
- Expose panic error message
- emit as first line item in pre block above stack trace
- emit as part of error entry
v0.5.3 - 2021-01-05
- dependencies
actions/setup-node
v2.1.2
tov2.1.4
- Preformatted
ServiceOutput
string subjected to another (failed) formatting operation - Breadcrumb URL formatting
v0.5.2 - 2020-11-08
- dependencies
actions/setup-node
v2.1.1
tov2.1.2
actions/checkout
v2.3.2
tov2.3.4
- (*nagios.ExitState).ReturnCheckResults() unintentionally masks or "swallows" panics
v0.5.1 - 2020-09-22
ExitState
receiver type is now a pointer forReturnCheckResults()
method
- Documentation
- Update doc comments and README examples to (hopefully) better explain method usage
v0.5.0 - 2020-09-20
- Add explicit state labels to threshold list items
CRITICAL:
and a single spaceWARNING:
and a single space- BREAKING: this will require updates to client code to accommodate this change
- Update whitespace/EOL handling within
Long Service Output
orDETAILED INFO
section- BREAKING: this will require updates to client code to accommodate this change
- Don't assume that state thresholds will be provided
YYYY-MM-DD
changelog version entries
v0.4.0 - 2020-08-31
- Add initial "framework workflow"
ExitState
type withReturnCheckResults
method- used to process and return all applicable check results to Nagios for further processing/display
- supports "branding" callback function to display application name,
version, or other information as a "trailer" for check results provided
to Nagios
- this could be useful for identifying what version of a plugin determined the service or host state to be an issue
- README
- extend examples to reflect new type/method
- GoDoc coverage
- simple example retained, reader referred to README for further examples
- GitHub Actions Workflow shallow build depth
YYYY-MM-DD
changelog version entries
v0.3.1 - 2020-08-23
-
Docker-based GitHub Actions Workflows
-
Replace native GitHub Actions with containers created and managed through the
atc0005/go-ci
project. -
New, primary workflow
- with parallel linting, testing and building tasks
- with three Go environments
- "old stable"
- "stable"
- "unstable"
- Makefile is not used in this workflow
- staticcheck linting using latest stable version provided by the
atc0005/go-ci
containers
-
Separate Makefile-based linting and building workflow
- intended to help ensure that local Makefile-based builds that are referenced in project README files continue to work as advertised until a better local tool can be discovered/explored further
- use
golang:latest
container to allow for Makefile-based linting tooling installation testing since theatc0005/go-ci
project provides containers with those tools already pre-installed- linting tasks use container-provided
golangci-lint
config file except for the Makefile-driven linting task which continues to use the repo-provided copy of thegolangci-lint
configuration file
- linting tasks use container-provided
-
Add Quick Validation workflow
- run on every push, everything else on pull request updates
- linting via
golangci-lint
only - testing
- no builds
-
-
Add new README badges for additional CI workflows
- each badge also links to the associated workflow results
-
Disable
golangci-lint
default exclusions -
dependencies
go.mod
Go version- updated from
1.13
to1.14
- updated from
actions/setup-go
- updated from
v2.1.0
tov2.1.2
- since replaced with Docker containers
- updated from
actions/setup-node
- updated from
v2.1.0
tov2.1.1
- updated from
actions/checkout
- updated from
v2.3.1
tov2.3.2
- updated from
-
README
- Link badges to applicable GitHub Actions workflows results
- Add Table of contents
-
Linting
- Local
Makefile
- install latest stable
golangci-lint
binary instead of using a fixed version
- install latest stable
- CI
- remove repo-provided copy of
golangci-lint
config file at start of linting task in order to force use of Docker container-provided config file
- remove repo-provided copy of
- Local
v0.3.0 - 2020-07-05
-
Add State "labels" to provide an alternative to using literal state strings
-
Add GitHub Actions Workflow, Makefile for builds
- Lint codebase
- Build codebase
-
Enable Dependabot updates
- GitHub Actions
- Go Modules
-
BREAKING: Rename existing exit code constants to explicitly note that they are exit codes
- the thinking was that since we have text "labels" for state, it would be good to help clarify the difference between the new constants and the existing exit code constants
-
Minor tweaks to README to reference changes, wording
-
Update dependencies
actions/checkout
v1
tov2.3.1
actions/setup-go
v2.0.3
tov2.1.0
actions/setup-node
v1
tov2.1.0
v0.2.0 - 2020-02-02
- Add Nagios
State
constants
- Nagios
State
map
v0.1.0 - 2020-01-20
Initial package state
- Nagios state map