Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
515c3ac
chore: markdown consistency changes
synesissoftware Aug 2, 2026
feb2d94
chore: LICENSE update
synesissoftware Aug 2, 2026
9ffd5eb
.gitattributes
synesissoftware Aug 2, 2026
e8ca414
.gitignore
synesissoftware Aug 2, 2026
165e7db
.sis identities
synesissoftware Aug 3, 2026
5e09957
CI
synesissoftware Aug 3, 2026
76c8cfd
chore: helper scripts
synesissoftware Aug 3, 2026
de04eb5
chore: **README.md**: badges and tag line
synesissoftware Aug 3, 2026
a720e3e
chore: boilerplate
synesissoftware Aug 3, 2026
0d84c95
CI
synesissoftware Aug 3, 2026
ac9b49b
fix
synesissoftware Aug 3, 2026
8f49811
chore: standardising .vscode/settings.json
synesissoftware Aug 3, 2026
1b2f803
Reorder README.md so Table of Contents precedes Introduction
synesissoftware Aug 19, 2026
ca33e4b
Set go.mod minimum to Go 1.21.
synesissoftware Aug 19, 2026
3653b92
fix: go version
synesissoftware Aug 19, 2026
0e744d5
docs: add AUTHORS.md
synesissoftware Aug 19, 2026
f385bf1
docs: flesh out NEWS.md
synesissoftware Aug 19, 2026
0233fab
docs: canonicalise TODO.md
synesissoftware Aug 19, 2026
d7afe32
docs: canonicalise EXAMPLES.md and companion example docs
synesissoftware Aug 19, 2026
43b197e
ci: align Go workflow push branches to Synesis order
synesissoftware Aug 19, 2026
4e13be5
ci: add golangci-lint and tier-aware Go matrix to go.yml
synesissoftware Aug 19, 2026
b986e12
docs: note pre-release go.mod tidy order in TODO.md
synesissoftware Aug 19, 2026
955df4f
docs: normalise CHANGES.md version headings to SemVer form
synesissoftware Aug 19, 2026
3ca91ec
dependencies
synesissoftware Aug 19, 2026
408f7a2
version
synesissoftware Aug 19, 2026
c1f9453
CI fixes
synesissoftware Aug 19, 2026
1ba4fa4
Remove retired Go Report Card badge from README.
synesissoftware Aug 19, 2026
5f22f2f
release
synesissoftware Aug 19, 2026
c554b40
Merge branch 'master' into 'idiomatic'
synesissoftware Aug 19, 2026
e4f2a9c
fix
synesissoftware Aug 19, 2026
0426dbd
fix
synesissoftware Aug 19, 2026
79a89ca
fix
synesissoftware Aug 19, 2026
111e6bd
fix
synesissoftware Aug 19, 2026
8aea93f
fix
synesissoftware Aug 19, 2026
b01d99e
fix
synesissoftware Aug 19, 2026
637517d
fix: lint suppressions
synesissoftware Aug 19, 2026
11e5e90
fix
synesissoftware Aug 19, 2026
a160b89
fix
synesissoftware Aug 19, 2026
f5a8a80
fix
synesissoftware Aug 19, 2026
804b2ee
fix
synesissoftware Aug 19, 2026
2c5e363
fix
synesissoftware Aug 19, 2026
9f5214d
fix
synesissoftware Aug 19, 2026
e7089f0
Enforce Synesis Go import order via gci and reformat existing files.
synesissoftware Aug 20, 2026
2e182df
Enforce Synesis Go import order via gci and reformat existing files.
synesissoftware Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@

#
# Created: 18th August 2025
# Updated: 3rd August 2026
# Updated: 20th August 2026
#

name: Go

env:
GO_MIN_VERSION: '1.25'
VERBOSITY: 1

on:
push:
branches:
- boilerplate
- master
- dev
- boilerplate
- idiomatic
- master
- rc1
- rc2
- rc3
Expand All @@ -38,10 +39,6 @@ jobs:
go-version:
- '1.26'
- '1.25'
- '1.24'
- '1.23'
- '1.22'
- '1.21'
os:
- macos-latest
- ubuntu-latest
Expand All @@ -65,3 +62,20 @@ jobs:

- name: "Run all unit-tests"
run: ./run_all_unit_tests.sh --verbosity ${{ env.VERBOSITY }}

lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: "Set up Go ${{ env.GO_MIN_VERSION }}"
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_MIN_VERSION }}'

- name: "Run golangci-lint"
uses: golangci/golangci-lint-action@v7
with:
verify: false
version: v2.4.0
70 changes: 70 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
formatters:
enable:
- gci
exclusions:
paths:
- examples/
settings:
gci:
custom-order: true
no-inline-comments: false
no-prefix-comments: false
sections:
- prefix(github.com/synesissoftware/Diagnosticism.Go)
- default
- standard

linters:
default: fast
disable:
- whitespace
- wsl
exclusions:
rules:
- linters:
- dupl
- funlen
- testpackage
path: _test\.go
- linters:
- cyclop
- funcorder
- funlen
- gocognit
- mnd
- nestif
path: doomgram\.go
- linters:
- lll
- mnd
path: examples/
- linters:
- mnd
path: itoa_thousands\.go
- linters:
- gochecknoinits
path: severity/severity\.go
- linters:
- lll
- mnd
path: version\.go
settings:
cyclop:
max-complexity: 10
depguard:
rules:
main:
allow:
- $gostd
- github.com/stretchr/testify
- github.com/synesissoftware/Diagnosticism.Go
- github.com/synesissoftware/STEGoL
- github.com/synesissoftware/ver2go
- go.yaml.in/yaml/v3
- golang.org/x/
list-mode: lax

run:
timeout: 5m

version: "2"
22 changes: 22 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Diagnosticism.Go - Authors <!-- omit in toc -->


## Major Contributors

| Name | Email | GitHub |
| ------------ | ------------------------------------ | --------------------------------- |
| Matt Wilson | matthew.wilson.synesis@gmail.com | [mwsis](https://github.com/mwsis) |
| Harry Wilson | harold.wilson.synesis@gmail.com | [Hazzoz](https://github.com/Hazzoz) |


## Defect reports, fixes and suggestions (for which we are very grateful)

| Name | GitHub |
| ------- | ------ |
| \<none> | |


Contributions are welcomed.


<!-- ########################### end of file ########################### -->
12 changes: 10 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Diagnosticism.Go - CHANGES <!-- omit in toc -->
# Diagnosticism.Go - Changes <!-- omit in toc -->

## 0.13.5 - 20th August 2026

* CI modernisation (matrix + lint);
* CI reliability fixes (macOS test linking; golangci-lint config verification disabled in CI);
* **`go.mod`** floor raised to **1.25** (dependency-driven; `golang.org/x/term` / `golang.org/x/sys`);
* boilerplate additions (scripts, markdown docs, project identity);
* removed retired Go Report Card badge from README;
* version string updated for the 0.13.5 release;

## 0.13.4 - 29th March 2026

Expand Down Expand Up @@ -151,7 +159,7 @@
* ~ wholesale rename of ``diagnosticism`` => ``Diagnosticism``


## 0.4.0 (unchanged) - 8th July 2019
## 0.4.0 - 8th July 2019

* + added several examples

Expand Down
21 changes: 12 additions & 9 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# Diagnosticism.Go - Examples <!-- omit in toc -->

|Name|Source & Description|Summary|
|---|---|---|
|**conrep**|[examples/conrep/main.go](/examples/conrep/main.go)<br/>[examples/conrep.md](/examples/conrep.md)|Example illustrating use of **Contingent Report API**|
|**conrep_with_log_mirroring**|[examples/conrep_with_log_mirroring/main.go](/examples/conrep_with_log_mirroring/main.go)<br/>[examples/conrep_with_log_mirroring.md](/examples/conrep_with_log_mirroring.md)|Example illustrating use of **Contingent Report API** with log mirroring|
|**debugging**|[examples/debugging/main.go](/examples/debugging/main.go)<br/>[examples/debugging.md](/examples/debugging.md)|Example illustrating use of **Debugging API**.|
|**doomgram**|[examples/doomgram/main.go](/examples/doomgram/main.go)<br/>[examples/doomgram.md](/examples/doomgram.md)|Example illustrating use of `DOOMGram` structure and its timing strips|
|**logf_fail**|[examples/logf_fail/main.go](/examples/logf_fail/main.go)<br/>[examples/logf_fail.md](/examples/logf_fail.md)|Example illustrating use of **Log API** with ``Logf()`` errors (in arguments)|
|**tracing**|[examples/tracing/main.go](/examples/tracing/main.go)<br/>[examples/tracing.md](/examples/tracing.md)|Example illustrating use of **Trace API**|

| Name | Source & Description | Summary |
| ----------------------------- | ---------------------------------------- | --------------------------------------------------------------------------- |
| **conrep** | [examples/conrep/main.go](./examples/conrep/main.go)<br/>[examples/conrep.md](./examples/conrep.md) | Example illustrating use of **Contingent Report API** |
| **conrep_with_log_mirroring** | [examples/conrep_with_log_mirroring/main.go](./examples/conrep_with_log_mirroring/main.go)<br/>[examples/conrep_with_log_mirroring.md](./examples/conrep_with_log_mirroring.md) | Example illustrating use of **Contingent Report API** with log mirroring |
| **debugging** | [examples/debugging/main.go](./examples/debugging/main.go)<br/>[examples/debugging.md](./examples/debugging.md) | Example illustrating use of **Debugging API** |
| **doomgram** | [examples/doomgram/main.go](./examples/doomgram/main.go)<br/>[examples/doomgram.md](./examples/doomgram.md) | Example illustrating use of `DOOMGram` structure and its timing strips |
| **libver** | [examples/libver/main.go](./examples/libver/main.go)<br/>[examples/libver.md](./examples/libver.md) | Displays the **Diagnosticism.Go** library version and terminates |
| **log_with_custom_backend** | [examples/log_with_custom_backend/main.go](./examples/log_with_custom_backend/main.go)<br/>[examples/log_with_custom_backend.md](./examples/log_with_custom_backend.md) | Example illustrating use of **Log API** with a custom back-end |
| **logf_fail** | [examples/logf_fail/main.go](./examples/logf_fail/main.go)<br/>[examples/logf_fail.md](./examples/logf_fail.md) | Example illustrating use of **Log API** with `Logf()` errors (in arguments) |
| **tracing** | [examples/tracing/main.go](./examples/tracing/main.go)<br/>[examples/tracing.md](./examples/tracing.md) | Example illustrating use of **Trace API** |
| **version** | [examples/version/main.go](./examples/version/main.go)<br/>[examples/version.md](./examples/version.md) | Example illustrating how to obtain the library version string |

<!-- ########################### end of file ########################### -->

<!-- ########################### end of file ########################### -->
41 changes: 41 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Diagnosticism.Go - News <!-- omit in toc -->


| Date | News Item |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| 20th August 2026 | Release of [**Diagnosticism.Go** 0.13.5](https://github.com/synesissoftware/Diagnosticism.Go/releases/tag/0.13.5) |
| 29th March 2026 | Release of [**Diagnosticism.Go** 0.13.4](https://github.com/synesissoftware/Diagnosticism.Go/releases/tag/0.13.4) |
| 18th March 2026 | Release of **Diagnosticism.Go** 0.13.3 |
| 18th March 2026 | Release of **Diagnosticism.Go** 0.13.2 |
| 18th March 2026 | Release of **Diagnosticism.Go** 0.13.1 |
| 1st March 2026 | Release of **Diagnosticism.Go** 0.13.0 |
| 1st March 2026 | Release of **Diagnosticism.Go** 0.12.1 |
| 20th December 2025 | Release of **Diagnosticism.Go** 0.12.0 |
| 20th December 2025 | Release of **Diagnosticism.Go** 0.12.0-alpha2 |
| 11th October 2025 | Release of **Diagnosticism.Go** 0.12.0-alpha1 |
| 28th September 2025 | Release of **Diagnosticism.Go** 0.11.0 |
| 3rd September 2025 | Release of **Diagnosticism.Go** 0.10.0 |
| 27th August 2025 | Release of **Diagnosticism.Go** 0.10.0-beta1 |
| 27th August 2025 | Release of **Diagnosticism.Go** 0.9.1-beta4 |
| 26th August 2025 | Release of **Diagnosticism.Go** 0.9.1-beta3 |
| 18th August 2025 | Release of **Diagnosticism.Go** 0.9.1-beta2 |
| 18th August 2025 | Release of **Diagnosticism.Go** 0.9.1-beta1 |
| 15th August 2025 | Release of **Diagnosticism.Go** 0.9.0 |
| 27th March 2025 | Release of **Diagnosticism.Go** 0.8.0 |
| 26th March 2025 | Release of **Diagnosticism.Go** 0.8.0-alpha1 |
| 25th March 2025 | Release of **Diagnosticism.Go** 0.7.0 |
| 22nd February 2025 | Release of **Diagnosticism.Go** 0.7.0-alpha1 |
| 22nd February 2025 | Release of **Diagnosticism.Go** 0.6.1 |
| 23rd July 2020 | Release of **Diagnosticism.Go** 0.6.0 |
| 22nd July 2020 | Release of **Diagnosticism.Go** 0.5.0.1 |
| 20th July 2020 | Release of **Diagnosticism.Go** 0.5.0 |
| 8th July 2019 | Release of **Diagnosticism.Go** 0.4.0 |
| 8th July 2019 | Release of **Diagnosticism.Go** 0.4.0 |
| 4th June 2019 | Release of **Diagnosticism.Go** 0.3.2 |
| 1st June 2019 | Release of **Diagnosticism.Go** 0.3.1 |
| 1st June 2019 | Release of **Diagnosticism.Go** 0.3.0 |
| 30th May 2019 | Release of **Diagnosticism.Go** 0.2.0 |
| 28th March 2019 | Release of **Diagnosticism.Go** 0.1.0 |


<!-- ########################### end of file ########################### -->
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ Basic diagnostic facilities, for Go
[![GitHub release](https://img.shields.io/github/v/release/synesissoftware/Diagnosticism.Go.svg)](https://github.com/synesissoftware/Diagnosticism.Go/releases/latest)
[![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/Diagnosticism.Go)](https://github.com/synesissoftware/Diagnosticism.Go/commits/master)
[![Go](https://github.com/synesissoftware/Diagnosticism.Go/actions/workflows/go.yml/badge.svg)](https://github.com/synesissoftware/Diagnosticism.Go/actions/workflows/go.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/synesissoftware/Diagnosticism.Go)](https://goreportcard.com/report/github.com/synesissoftware/Diagnosticism.Go)
[![Go Reference](https://pkg.go.dev/badge/github.com/synesissoftware/Diagnosticism.Go.svg)](https://pkg.go.dev/github.com/synesissoftware/Diagnosticism.Go)


Expand Down
24 changes: 22 additions & 2 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
# Diagnosticism.Go - TODO <!-- omit in toc -->

\<none>

## Table of Contents <!-- omit in toc -->

<!-- ########################### end of file ########################### -->
- [Functional improvements](#functional-improvements)
- [Performance improvements](#performance-improvements)
- [Packaging improvements](#packaging-improvements)


## Functional improvements

* \<none>


## Performance improvements

* \<none>


## Packaging improvements

* [ ] Before the next official release: confirm **`go.mod`** (`go 1.25.0`) and the CI Go-version matrix, bump Synesis `require`s to newly published tags, then run **`go mod tidy`** (not against currently published tags). Prior Synesis Go releases, in order:
* **ver2go**;
* **STEGoL**;


<!-- ########################### end of file ########################### -->
Loading
Loading