Skip to content

Releases: atc0005/go-lockss

v0.1.6

08 Aug 13:40
bad09fe
Compare
Choose a tag to compare

Overview

  • Dependency updates
  • built using Go 1.16.7
    • Statically linked
    • Windows (x86, x64)
    • Linux (x86, x64)

Changed

  • Dependencies
    • Go
      • 1.16.6 to 1.16.7
    • actions/setup-node
      • updated from v2.2.0 to v2.4.0

References

v0.1.5

16 Jul 11:32
e8ccaef
Compare
Choose a tag to compare

Overview

  • Dependency updates
  • built using Go 1.16.6
    • Statically linked
    • Linux (x86, x64)

Changed

  • Dependency updates
    • Go
      • 1.16.5 to 1.16.6
    • actions/setup-node
      • update node-version value to always use latest LTS version instead of
        hard-coded version

References

v0.1.4

04 Jul 10:39
bd88735
Compare
Choose a tag to compare

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 to 1.16.5
    • antchfx/xmlquery
      • v1.3.3 to v1.3.6
    • actions/setup-node
      • v1.3.3 to v1.3.4
    • actions/checkout
      • v2.3.3 to v2.3.4
    • actions/setup-node
      • v2.1.2 to v2.2.0

References

Release v0.1.3

09 Oct 22:48
edb7d1d
Compare
Choose a tag to compare

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 to v1.3.3
    • actions/checkout
      • v2.3.2 to v2.3.3
    • actions/setup-node
      • v2.1.1 to v2.1.2
  • Build options updated

    • Add -trimpath build flag
    • Explicitly disable cgo
    • Apply osusergo and netgo build tags
      • help ensure static builds that are not dependent on glibc

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

Release v0.1.2

20 Aug 15:27
537a403
Compare
Choose a tag to compare

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
    • if all query attempts fail, bail out with an error
  • 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 to v1.9.0
  • Default port connection timeout adjusted

    • 10s in pre-v0.1.0 release
    • 1s in v0.1.0 release
    • 2s now in v0.1.2 release
      • the intent is to better balance between slower networks and waiting too
        long for a response
  • 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
  • Collapsed/simplified some debugging output

  • internal/lockss package logging enabled if debug 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

Release v0.1.1

16 Aug 20:43
faac98e
Compare
Choose a tag to compare

Fixed

  • Makefile
    • Remove stray parenthesis (a typo) preventing version embedding from working properly

References

Release v0.1.0

16 Aug 13:57
f235b24
Compare
Choose a tag to compare

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

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