Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0c469ac
chore: markdown consistency changes
synesissoftware Aug 2, 2026
1b02e7f
chore: LICENSE update
synesissoftware Aug 2, 2026
eb0dfd8
.gitattributes
synesissoftware Aug 2, 2026
994ea51
.gitignore
synesissoftware Aug 2, 2026
21cb44d
.sis identities
synesissoftware Aug 3, 2026
eef34f7
CI
synesissoftware Aug 3, 2026
e144bb9
dependencies
synesissoftware Aug 3, 2026
1cec322
chore: helper scripts
synesissoftware Aug 3, 2026
b19ef3d
fix: eschewing use of `Loop`, and reverting to manual `for`-loops, to…
synesissoftware Aug 3, 2026
7aefa44
chore: **README.md**: badges and tag line
synesissoftware Aug 3, 2026
758ed43
chore: boilerplate
synesissoftware Aug 3, 2026
9e08d36
CI
synesissoftware Aug 3, 2026
2927354
chore: standardising .vscode/settings.json
synesissoftware Aug 3, 2026
cbd6377
Reorder README.md so Table of Contents precedes Introduction.
synesissoftware Aug 19, 2026
311b373
Set go.mod minimum to Go 1.21.
synesissoftware Aug 19, 2026
b31caaa
docs: add AUTHORS.md
synesissoftware Aug 19, 2026
255d07b
docs: flesh out NEWS.md
synesissoftware Aug 19, 2026
08d6f62
docs: canonicalise TODO.md
synesissoftware Aug 19, 2026
7f638a8
docs: canonicalise EXAMPLES.md and companion example docs
synesissoftware Aug 19, 2026
41af59e
ci: align Go workflow push branches to Synesis order
synesissoftware Aug 19, 2026
73997ba
ci: add golangci-lint and tier-aware Go matrix to go.yml
synesissoftware Aug 19, 2026
e074f0d
docs: note pre-release go.mod tidy order in TODO.md
synesissoftware Aug 19, 2026
5eaf9d9
docs: normalise CHANGES.md version headings to SemVer form
synesissoftware Aug 19, 2026
a5b204c
docs: add canonical EOF marker to remaining Go markdown
synesissoftware Aug 19, 2026
bb99140
docs: replace README T.B.C. placeholders in five Go projects
synesissoftware Aug 19, 2026
8776577
version
synesissoftware Aug 19, 2026
cadcbb4
dependencies
synesissoftware Aug 19, 2026
7d3e276
CI fixes
synesissoftware Aug 19, 2026
c130219
Document Go badge policy after Go Report Card retirement.
synesissoftware Aug 19, 2026
06b128f
version
synesissoftware Aug 19, 2026
2574e94
Merge branch 'master' into 'idiomatic'
synesissoftware Aug 19, 2026
bc6753c
Release 0.11.0: replace Version constant with Version() via ver2go.
synesissoftware Aug 20, 2026
5db8961
release
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/ANGoLS)
- default
- standard

run:
timeout: 5m
20 changes: 14 additions & 6 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
# ANGoLS - Authors <!-- omit in toc -->

## Contributors:

* Matt Wilson ([mwsis](https://github.com/mwsis))
* Harry Wilson ([Hazzoz](https://github.com/Hazzoz))
* mwrr2319;
## 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) |
| mwrr2319 | | [mwrr2319](https://github.com/mwrr2319) |


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

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

----

Contributions are welcomed.


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

43 changes: 33 additions & 10 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
# ANGoLS - CHANGES <!-- omit in toc -->
# ANGoLS - Changes <!-- omit in toc -->


## 0.11.0 - 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 **STEGoL** to 0.4.0;
* updated **examples/libver.go** to use **VersionString()**;
* version string updated for the 0.11.0 release;


## 0.10.1 - 20th August 2026 (internal release only)

* 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.10.1 release;

## 0.10.0 - 10th March 2026

Expand Down Expand Up @@ -48,18 +68,18 @@
* 0.9.0


## 0.9.0 (beta 2) - 2nd January 2026
## 0.9.0-beta2 - 2nd January 2026

* added `ASCIIToULower()` and `ASCIIToUpper()`;


## 0.9.0 (beta 1) - 27th November 2025
## 0.9.0-beta1 - 27th November 2025

* added `CollectSliceIntoStringSlice[T any](input_slice []T, fn func(input_item *T) (string, error)) ([]string, error)`;
* changed return type of `CollectSlice()` from `(any, error)` to `([]any, error)`;


## 0.8.0 (alpha 1) - 27th August 2025
## 0.8.0-alpha1 - 27th August 2025

* added generic function `func CollectSliceOfInteger[N int8 | int16 | int32 | int64 | int | uint8 | uint16 | uint32 | uint64 | uint | uintptr](input_slice []N, fn func(input_item N) N) (result_slice []N)`;
* added generic function `func EqualSliceOfInteger[N int8 | int16 | int32 | int64 | int | uint8 | uint16 | uint32 | uint64 | uint | uintptr](lhs, rhs []int) bool`;
Expand All @@ -71,15 +91,15 @@
* 0.7.0


## 0.7.0 (beta 1) - 27th August 2025
## 0.7.0-beta1 - 27th August 2025

* moved private elements into **internal** (so as to hide properly);
* dependencies;
* GitHub Actions enhancements;
* boilerplate;


## 0.7.0 (alpha 1) - 20th August 2025
## 0.7.0-alpha1 - 20th August 2025

* added `SplitAfterByte()`, `SplitAfterByteN()` ,`SplitAfterRune()` ,`SplitAfterRuneN()`, `SplitAfterAny()`, `SplitAfterAnyN()`, `SplitAfterAnyBytes()`, `SplitAfterAnyBytesN()`, `SplitAfterAnyRunes()`, `SplitAfterAnyRunesN()`;

Expand All @@ -89,26 +109,26 @@
* documentation;


## 0.6.0 (beta 1) - 18th August 2025
## 0.6.0-beta1 - 18th August 2025

* GitHub Actions;
* `interface{}` => `any`;
* boilerplate;
* documentation;


## 0.6.0 (alpha 3) - 14th August 2025
## 0.6.0-alpha3 - 14th August 2025

* tidying;


## 0.6.0 (alpha 2) - 24th February 2025
## 0.6.0-alpha2 - 24th February 2025

* added **examples/libver.go**;
* boilerplate;


## 0.6.0 (alpha 1) - 24th February 2025
## 0.6.0-alpha1 - 24th February 2025

* refactored all slice functions into **slices** package;
* refactored all slice functions into **strings** package;
Expand All @@ -128,3 +148,6 @@

FIRST PUBLIC RELEASE


<!-- ########################### 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 @@
# ANGoLS - Examples <!-- omit in toc -->

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

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

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

<!-- ########################### end of file ########################### -->
37 changes: 23 additions & 14 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
# ANGoLS - News <!-- omit in toc -->


| Date | News Item |
| ------------------- | ---------------------------------------------------------------------------------------------------------- |
| 10th March 2026 | Release of [**ANGoLS** 0.10.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.10.0) |
| 26th February 2026 | Release of [**ANGoLS** 0.10.0-beta3](https://github.com/synesissoftware/ANGoLS/releases/tag/0.10.0-beta3) |
| 15th February 2026 | Release of [**ANGoLS** 0.10.0-beta2](https://github.com/synesissoftware/ANGoLS/releases/tag/0.10.0-beta2) |
| 7th February 2026 | Release of [**ANGoLS** 0.10.0-beta1](https://github.com/synesissoftware/ANGoLS/releases/tag/0.10.0-beta1) |
| 3rd January 2026 | Release of [**ANGoLS** 0.9.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.9.0) |
| 15th September 2025 | Release of [**ANGoLS** 0.8.0-alpha1](https://github.com/synesissoftware/ANGoLS/releases/tag/0.8.0-alpha1) |
| 27th August 2025 | Release of [**ANGoLS** 0.7.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.7.0) |
| 20th August 2025 | Release of [**ANGoLS** 0.6.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.6.0) |
| 30th March 2019 | Release of [**ANGoLS** 0.5.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.5.0) |
| 11th March 2019 | Release of [**ANGoLS** 0.4.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.4.0) |
| 1st March 2019 | initial commit |
| Date | News Item |
| ------------------ | --------------------------------------------------------------------------------------------- |
| 20th August 2026 | Release of [**ANGoLS** 0.11.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.11.0) |
| 20th August 2026 | Release of [**ANGoLS** 0.10.1](https://github.com/synesissoftware/ANGoLS/releases/tag/0.10.1) |
| 10th March 2026 | Release of [**ANGoLS** 0.10.0](https://github.com/synesissoftware/ANGoLS/releases/tag/0.10.0) |
| 26th February 2026 | Release of **ANGoLS** 0.10.0-beta3 |
| 15th February 2026 | Release of **ANGoLS** 0.10.0-beta2 |
| 7th February 2026 | Release of **ANGoLS** 0.10.0-beta1 |
| 7th February 2026 | Release of **ANGoLS** 0.9.1 |
| 3rd January 2026 | Release of **ANGoLS** 0.9.0 |
| 2nd January 2026 | Release of **ANGoLS** 0.9.0-beta2 |
| 27th November 2025 | Release of **ANGoLS** 0.9.0-beta1 |
| 27th August 2025 | Release of **ANGoLS** 0.8.0-alpha1 |
| 27th August 2025 | Release of **ANGoLS** 0.7.0 |
| 27th August 2025 | Release of **ANGoLS** 0.7.0-beta1 |
| 20th August 2025 | Release of **ANGoLS** 0.7.0-alpha1 |
| 20th August 2025 | Release of **ANGoLS** 0.6.0 |
| 18th August 2025 | Release of **ANGoLS** 0.6.0-beta1 |
| 14th August 2025 | Release of **ANGoLS** 0.6.0-alpha3 |
| 24th February 2025 | Release of **ANGoLS** 0.6.0-alpha2 |
| 24th February 2025 | Release of **ANGoLS** 0.6.0-alpha1 |
| 30th March 2019 | Release of **ANGoLS** 0.5.0 |
| 11th March 2019 | Release of **ANGoLS** 0.4.0 |


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

7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
[![GitHub release](https://img.shields.io/github/v/release/synesissoftware/ANGoLS.svg)](https://github.com/synesissoftware/ANGoLS/releases/latest)
[![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/ANGoLS)](https://github.com/synesissoftware/ANGoLS/commits/master)
[![Go](https://github.com/synesissoftware/ANGoLS/actions/workflows/go.yml/badge.svg)](https://github.com/synesissoftware/ANGoLS/actions/workflows/go.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/synesissoftware/ANGoLS)](https://goreportcard.com/report/github.com/synesissoftware/ANGoLS)
[![Go Reference](https://pkg.go.dev/badge/github.com/synesissoftware/ANGoLS.svg)](https://pkg.go.dev/github.com/synesissoftware/ANGoLS)


Expand Down Expand Up @@ -429,7 +428,11 @@ Defect reports, feature requests, and pull requests are welcome on https://githu

### Related projects

T.B.C.
Projects in which **ANGoLS** is used include:

* [**CLASP.Go**](https://github.com/synesissoftware/CLASP.Go/) (development/testing);
* [**libCLImate.Go**](https://github.com/synesissoftware/libCLImate.Go/);
* [**libpath.Go**](https://github.com/synesissoftware/libpath.Go/).


### License
Expand Down
29 changes: 15 additions & 14 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,36 @@
# ANGoLS - TODO <!-- omit in toc -->

recls for Go

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

- [0.9.x Items](#09x-items)
- [0.10+ Items](#010-items)
- [0.11+ Items](#011-items)
- [Functional improvements](#functional-improvements)
- [Performance improvements](#performance-improvements)
- [Packaging improvements](#packaging-improvements)


## 0.9.x Items
## Functional improvements

* ~~simplify `CollectSlice()`~~ - ✅;
* ~~add unit-testing for `slices` functions~~ - ✅;
* ~~enhance code coverage in unit-tests~~ - ✅;


## 0.10+ Items

* ~~change semantics of `CollectSlice()`, `EqualSlice()` to not take `any`, but (at least) `[]any`~~ - ✅;
* ~~correct all `slices` functions to proper naming, including `Uint` rather than `Uint`~~ - ✅;
* ~~`GenerateSliceOfInteger[T]()`~~ - ✅;
* `SelectSlice[T]()`;
* [ ] `SelectSlice[T]()`;
* ~~expand coverage of specific types for `EqualSlice[T]()`~~ - ✅;
* ~~enhance code coverage in unit-tests~~ - ✅;
* [ ] simplify names, e.g. `CollectSlice()` => `Collect()`, and so forth;
* [ ] apply `~` on generics;


## 0.11+ Items
## Performance improvements

* simplify names, e.g. `CollectSlice()` => `Collect()`, and so forth;
* apply `~` on generics;
* \<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`**~~ - ✅;


<!-- ########################### 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
6 changes: 3 additions & 3 deletions examples/libver.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package main

import (
angols "github.com/synesissoftware/ANGoLS"
ver2go "github.com/synesissoftware/ver2go"
"github.com/synesissoftware/ver2go"

"fmt"
)

func main() {
fmt.Printf("angols v%s\n", ver2go.CalcVersionString(angols.VersionMajor, angols.VersionMinor, angols.VersionPatch, angols.VersionAB))
fmt.Printf("ver2go v%s\n", ver2go.CalcVersionString(ver2go.VersionMajor, ver2go.VersionMinor, ver2go.VersionPatch, ver2go.VersionAB))
fmt.Printf("angols v%s\n", angols.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 @@
# ANGoLS - Example - **libver**


## Summary

Displays the **ANGoLS** library version and terminates.


## Source

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


## Execution

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


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