Releases: atc0005/go-lockss
v0.1.6
Overview
- Dependency updates
- built using Go 1.16.7
- Statically linked
- Windows (x86, x64)
- Linux (x86, x64)
Changed
- Dependencies
Go
1.16.6
to1.16.7
actions/setup-node
- updated from
v2.2.0
tov2.4.0
- updated from
References
- See the
v0.1.6
milestone for the issues associated with this release. - See our CHANGELOG for more information.
v0.1.5
Overview
- Dependency updates
- built using Go 1.16.6
- Statically linked
- Linux (x86, x64)
Changed
- Dependency updates
Go
1.16.5
to1.16.6
actions/setup-node
- update
node-version
value to always use latest LTS version instead of
hard-coded version
- update
References
- See the
v0.1.5
milestone for the issues associated with this release. - See our CHANGELOG for more information.
v0.1.4
Overview
- Dependency updates
- built using Go 1.16.5
- Statically linked
- Linux (x86, x64)
Added
- Create "canary" Dockerfile to track stable Go releases, serve as a reminder
to generate fresh binaries
Changed
- Swap out GoDoc badge for pkg.go.dev badge
- Dependencies
Go
1.15.2
to1.16.5
antchfx/xmlquery
v1.3.3
tov1.3.6
actions/setup-node
v1.3.3
tov1.3.4
actions/checkout
v2.3.3
tov2.3.4
actions/setup-node
v2.1.2
tov2.2.0
References
- See the
v0.1.4
milestone for the issues associated with this release. - See our CHANGELOG for more information.
Release v0.1.3
Added
- Statically linked binary release
- Built using Go 1.15.2
- Native Go binaries (no cgo)
- Windows
- x86
- x64
- Linux
- x86
- x64
Changed
-
Dependencies
antchfx/xmlquery
v1.2.4
tov1.3.3
actions/checkout
v2.3.2
tov2.3.3
actions/setup-node
v2.1.1
tov2.1.2
-
Build options updated
- Add
-trimpath
build flag - Explicitly disable cgo
- Apply
osusergo
andnetgo
build tags- help ensure static builds that are not dependent on glibc
- Add
Fixed
- YYYY-MM-DD format of changelog entries
- previous release
- gocritic commentFormatting linting errors
- Add missing shorthand suffix in flags help text
- Makefile generates checksums with qualified path
- Makefile build options do not generate static binaries
- (Some) getter methods do not appear to return intended default values
References
- See the
v0.1.3
milestone for the issues associated with this release. - See our CHANGELOG for more information.
Release v0.1.2
Summary
Preservation Group membership may determine peer nodes
Worth noting up front: I'm new to the internals of LOCKSS and am figuring this out as I go.
Based on testing, I found that our LOCKSS nodes are each members of a preservation group. LOCKSS networks may use these groups to control which peers a specific node communicates with; I've personally seen two networks where this doesn't apply and one where it does (a much larger network).
The preservation group a node uses for locating its peers is configured via the LOCKSS_TEST_GROUP
setting found within
/etc/lockss/config.dat
.
In order to properly determine what peers should be reachable, this application MUST take the preservation group into account when parsing the configuration/properties settings provided by the applicable LOCKSS network configuration server. If not, more "failed nodes" will be reported by this application than is truly the case.
Added
-
Use a set of XPath expressions vs a single, hard-coded expression
- first check to see if the preservation group defined for the node is
in-use within the LOCKSS network configuration/properties file - if it is, use a XPath template that searches for peer nodes restricted to
the set preservation group - if it is not, use a fixed XPath template that assumes a flat peer list is
used- using a fixed XPath query is intended to help prevent false-positive
matches for peers restricted to a specific host which might occur if the
XPath query were more liberal
- using a fixed XPath query is intended to help prevent false-positive
- if all query attempts fail, bail out with an error
- first check to see if the preservation group defined for the node is
-
Add sample file for use in future tests
docs/lockss-group-based-peers-sample.xml
-
Add additional logging at points where the application can experience delays
in operation
Changed
-
Dependencies
- upgrade
apex/log
v1.8.0
tov1.9.0
- upgrade
-
Default port connection timeout adjusted
10s
inpre-v0.1.0
release1s
inv0.1.0
release2s
now inv0.1.2
release- the intent is to better balance between slower networks and waiting too
long for a response
- the intent is to better balance between slower networks and waiting too
-
Refactored parsing of the local LOCKSS daemon configuration file
(/etc/lockss/config.dat
)- instead of cherry-picking one or two values, we now parse the entire file
for later use, skipping any blank lines or comments - we also implement an internal method to wrap the process of retrieving
needed settings in an effort to provide a more stable/reliable result
- instead of cherry-picking one or two values, we now parse the entire file
-
Collapsed/simplified some debugging output
-
internal/lockss
package logging enabled ifdebug
log level enabled for
application
Fixed
- Typo in Stringer implementation for
config.Config
- Skip blank lines (as intended) when parsing the local LOCKSS daemon
configuration file (/etc/lockss/config.dat
)
References
- See the
v0.1.2
milestone for the issues associated with this release. - See our CHANGELOG for more information.
Release v0.1.1
Fixed
- Makefile
- Remove stray parenthesis (a typo) preventing version embedding from working properly
References
- See the
v0.1.1
milestone for the issues associated with this release. - See our CHANGELOG for more information.
Release v0.1.0
Added
Initial release!
Features of the initial prototype:
hayoh
binary- User configurable logging levels
- User configurable logging format
- User configurable timeouts (config file retrieval, port connection tests)
- User configurable location of LOCKSS configuration/property settings
(custom file or URL) - User configurable additional TCP ports to check
- the default is to scan the LCAP port provided in the LOCKSS
configuration/property XML file
- the default is to scan the LCAP port provided in the LOCKSS
Worth noting (in no particular order):
- Command-line flags support via
flag
standard library package - Go modules (vs classic
GOPATH
setup) - GitHub Actions Workflows which apply linting and build checks
- Makefile for general use cases (including local linting)
- Note: See README for available options if building on Windows
- Dependabot updates monitoring
- Vendored dependencies
- README
- Link badges to applicable GitHub Actions workflows results
Planned
n2n
binary (or of another name) to serve as a Nagios plugin for regular
monitoring of node-to-node communication (voting, polling, repairs)
References
- See the
v0.1.0
milestone for the issues associated with this release. - See our CHANGELOG for more information.