Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
314f33f
.sis identities
synesissoftware Aug 3, 2026
4c06c98
CI
synesissoftware Aug 3, 2026
6aa8417
dependencies
synesissoftware Aug 3, 2026
c7a6336
chore: helper scripts
synesissoftware Aug 3, 2026
a1a7a36
chore: **README.md**: badges and tag line
synesissoftware Aug 3, 2026
434ba10
chore: boilerplate
synesissoftware Aug 3, 2026
b33c075
CI
synesissoftware Aug 3, 2026
5ff2cd9
fix
synesissoftware Aug 3, 2026
25d49d5
chore: standardising .vscode/settings.json
synesissoftware Aug 3, 2026
4dbedef
squash-commit
synesissoftware Aug 9, 2026
1af630a
Merge branch 'master' into 'idiomatic'
synesissoftware Aug 9, 2026
3d6a8bd
Reorder README.md so Table of Contents precedes Introduction
synesissoftware Aug 19, 2026
8caa511
Set go.mod minimum to Go 1.21.
synesissoftware Aug 19, 2026
b46f5f8
docs: add AUTHORS.md
synesissoftware Aug 19, 2026
ae7e6ac
docs: flesh out NEWS.md
synesissoftware Aug 19, 2026
cef31f2
docs: canonicalise TODO.md
synesissoftware Aug 19, 2026
6dc8919
docs: canonicalise EXAMPLES.md and companion example docs
synesissoftware Aug 19, 2026
23afa2d
ci: align Go workflow push branches to Synesis order
synesissoftware Aug 19, 2026
4cc9e57
ci: add golangci-lint and tier-aware Go matrix to go.yml
synesissoftware Aug 19, 2026
a447f13
docs: note pre-release go.mod tidy order in TODO.md
synesissoftware Aug 19, 2026
d4dbcdf
docs: add canonical EOF marker to remaining Go markdown
synesissoftware Aug 19, 2026
b76d69b
release: prepare recls.Go 0.0.1 (Version API + CI/boilerplate)
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
24 changes: 21 additions & 3 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: 19th August 2026
#

name: Go

env:
GO_MIN_VERSION: '1.21'
VERBOSITY: 1

on:
push:
branches:
- boilerplate
- master
- dev
- boilerplate
- idiomatic
- master
- rc1
- rc2
- rc3
Expand Down Expand Up @@ -65,3 +66,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@v6
with:
args: --fast
verify: false
16 changes: 16 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
linters:
enable:
- gci

linters-settings:
gci:
custom-order: true
no-inline-comments: false
no-prefix-comments: false
sections:
- prefix(github.com/synesissoftware/recls.Go)
- default
- standard

run:
timeout: 5m
22 changes: 22 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# recls.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 ########################### -->
22 changes: 20 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,23 @@
# recls.Go - CHANGES <!-- omit in toc -->
# recls.Go - Changes <!-- omit in toc -->


## 0.0.1 - 20th August 2026

* added **Version()** (replacing the **Version** constant), formed by **ver2go.CombineVersion()**;
* documented **VersionString()**;
* **VersionAB** now uses **ver2go.Release**;
* updated **ver2go** to 0.2.0-beta1;
* updated **examples/libver.go** to use **VersionString()**;
* version string updated for the 0.0.1 release;


## 0.0.0.5 - 20th August 2026

* CI modernisation (matrix + lint);
* CI reliability fixes (macOS test linking; golangci-lint config verification disabled in CI);
* boilerplate additions (scripts, markdown docs, project identity);
* removed retired Go Report Card badge from README;
* version string updated for the 0.0.0.5 release;


## 0.0.0.4 - 18th August 2025
Expand All @@ -14,4 +33,3 @@


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

8 changes: 4 additions & 4 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# recls.Go - Examples <!-- omit in toc -->

| Name | Source & Description | Summary |
| ---- | -------------------- | ------- |
| **libver** | [examples/libver.go](./examples/libver.go) | Displays the **recls.Go** library version and terminates |

| Name | Source & Description | Summary |
| ---------- | ---------------------------------------- | -------------------------------------------------------- |
| **libver** | [examples/libver.go](./examples/libver.go)<br/>[examples/libver.md](./examples/libver.md) | Displays the **recls.Go** library version and terminates |

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

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


| Date | News Item |
| ---------------- | --------------------------------------------------------------------------------------------------- |
| 20th August 2026 | Release of [**recls.Go** 0.0.1](https://github.com/synesissoftware/recls.Go/releases/tag/0.0.1) |
| 20th August 2026 | Release of [**recls.Go** 0.0.0.5](https://github.com/synesissoftware/recls.Go/releases/tag/0.0.0.5) |
| 18th August 2025 | Release of [**recls.Go** 0.0.0.4](https://github.com/synesissoftware/recls.Go/releases/tag/0.0.0.4) |
| 13th August 2025 | Release of **recls.Go** 0.0.0.3 |


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


Expand Down Expand Up @@ -83,3 +82,6 @@ Defect reports, feature requests, and pull requests are welcome on https://githu
### License

**recls.Go** is released under the 3-clause BSD license. See [LICENSE](./LICENSE) for details.


<!-- ########################### end of file ########################### -->
23 changes: 15 additions & 8 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,27 @@
# recls.Go - TODO <!-- omit in toc -->

recls for Go

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

- [Section-1](#section-1)
- [Section-2](#section-2)
- [Functional improvements](#functional-improvements)
- [Performance improvements](#performance-improvements)
- [Packaging improvements](#packaging-improvements)


## Section-1
## Functional improvements

T.B.C.
* \<none>


## Section-2
## Performance improvements

T.B.C.
* \<none>


## Packaging improvements

* [ ] Before the next official release: confirm **`go.mod`** (`go 1.21`) 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**;


<!-- ########################### end of file ########################### -->
15 changes: 15 additions & 0 deletions examples/.golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
linters:
enable:
- gci

linters-settings:
gci:
custom-order: true
no-inline-comments: false
no-prefix-comments: false
sections:
- default
- standard

run:
timeout: 5m
4 changes: 2 additions & 2 deletions examples/libver.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ import (
)

func main() {
fmt.Printf("recls v%s\n", ver2go.CalcVersionString(recls.VersionMajor, recls.VersionMinor, recls.VersionPatch, recls.VersionAB))
fmt.Printf("ver2go v%s\n", ver2go.CalcVersionString(ver2go.VersionMajor, ver2go.VersionMinor, ver2go.VersionPatch, ver2go.VersionAB))
fmt.Printf("recls v%s\n", recls.VersionString())
fmt.Printf("ver2go v%s\n", ver2go.VersionString())
}
21 changes: 21 additions & 0 deletions examples/libver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# recls.Go - Example - **libver**


## Summary

Displays the **recls.Go** library version and terminates.


## Source

See [examples/libver.go](./examples/libver.go).


## Execution

```bash
go run ./examples/libver.go
```


<!-- ########################### end of file ########################### -->
12 changes: 4 additions & 8 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
module github.com/synesissoftware/recls.Go

go 1.23.6
go 1.21

require (
github.com/stretchr/testify v1.10.0
github.com/synesissoftware/ver2go v0.1.2
github.com/stretchr/testify v1.12.1
github.com/synesissoftware/ver2go v0.2.0-beta1
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
require go.yaml.in/yaml/v3 v3.0.5 // indirect
18 changes: 6 additions & 12 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/synesissoftware/ver2go v0.1.2 h1:UQu9/nmfdfFyH5lCzycY/yy1pxcnDdwEJnrqhvdvcBI=
github.com/synesissoftware/ver2go v0.1.2/go.mod h1:9gXrNoiRkcKU+QGY3chyozsQKAsKb0A8A89eZuV4lX0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE=
github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg=
github.com/synesissoftware/ver2go v0.2.0-beta1 h1:9Ne+kvCQMWXA+RhWqqjT+jTP+/9LfKDJyUDSJxxhI5A=
github.com/synesissoftware/ver2go v0.2.0-beta1/go.mod h1:JlZS4ms4D4cCaYuRh+fbBaNv7BwqrAP4m4/hZzGJ8hU=
go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw=
go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg=
16 changes: 14 additions & 2 deletions run_all_unit_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,24 @@ if [ $Verbosity -ge 2 ]; then
echo "Running all ${ProjectName} unit-test packages"
fi

#
# Mitigate rare macOS `dyld` aborts caused by corrupted cached `*.test` binaries.
#
go clean -cache -testcache

LD_FLAGS=""
if [ "$(uname -s)" = "Darwin" ]; then
# Older Go toolchains can produce Mach-O binaries without LC_UUID on newer macOS
# versions, triggering `dyld: missing LC_UUID load command ...` at test start.
LD_FLAGS="-ldflags=-linkmode=external"
fi

if [ $Verbosity -ge 2 ]; then

go test -v $Packages
go test -v $LD_FLAGS $Packages
else

go test $Packages
go test $LD_FLAGS $Packages
fi


Expand Down
19 changes: 16 additions & 3 deletions version.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,28 @@ import "github.com/synesissoftware/ver2go"
const (
VersionMajor uint16 = 0
VersionMinor uint16 = 0
VersionPatch uint16 = 0
VersionAB uint16 = 0x0005
Version uint64 = (uint64(VersionMajor) << 48) + (uint64(VersionMinor) << 32) + (uint64(VersionPatch) << 16) + (uint64(VersionAB) << 0)
VersionPatch uint16 = 1
VersionAB uint16 = ver2go.Release
)

var (
version = ver2go.CombineVersion(VersionMajor, VersionMinor, VersionPatch, VersionAB)
versionString string = ver2go.CalcVersionString(VersionMajor, VersionMinor, VersionPatch, VersionAB)
)

// Version returns this library's version as a packed 64-bit integer, formed
// by ver2go.CombineVersion from VersionMajor, VersionMinor, VersionPatch,
// and VersionAB. The result is suitable for numeric comparison: a later
// release has a strictly greater value than an earlier one that uses the
// same packing.
func Version() uint64 {
return version
}

// VersionString returns this library's version as a human-readable string,
// formed by ver2go.CalcVersionString from VersionMajor, VersionMinor,
// VersionPatch, and VersionAB. For a final (non-prerelease) version the
// result is of the form "MAJOR.MINOR.PATCH", e.g. "0.0.1".
func VersionString() string {
return versionString
}
8 changes: 4 additions & 4 deletions version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import (
const (
Expected_VersionMajor uint16 = 0
Expected_VersionMinor uint16 = 0
Expected_VersionPatch uint16 = 0
Expected_VersionAB uint16 = 5
Expected_VersionPatch uint16 = 1
Expected_VersionAB uint16 = 0xFFFF
)

func Test_Version_Elements(t *testing.T) {
Expand All @@ -23,9 +23,9 @@ func Test_Version_Elements(t *testing.T) {
}

func Test_Version(t *testing.T) {
require.Equal(t, uint64(5), recls.Version)
require.Equal(t, uint64(0x0000_0000_0001_FFFF), recls.Version())
}

func Test_Version_String(t *testing.T) {
require.Equal(t, "0.0.0", recls.VersionString())
require.Equal(t, "0.0.1", recls.VersionString())
}
Loading