From 0468e449a5cf43c8d9f86f670d4038c773eca9ab Mon Sep 17 00:00:00 2001 From: Edward Muller Date: Fri, 13 Feb 2026 10:53:51 -0800 Subject: [PATCH] bumping to stay current with go releases --- .github/workflows/ci.yaml | 4 ++-- CLAUDE.md | 30 ++++++++++++++++++++++++++++++ go.mod | 2 +- mise.toml | 2 ++ 4 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 CLAUDE.md create mode 100644 mise.toml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 841e854..7576da1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,7 +8,7 @@ jobs: checks: strategy: matrix: - go-version: ['1.23', '1.24'] + go-version: ['1.25', '1.26'] runs-on: ubuntu-latest steps: - name: Checkout code @@ -27,7 +27,7 @@ jobs: test: strategy: matrix: - go-version: ['1.23', '1.24'] + go-version: ['1.25', '1.26'] os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..8876495 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,30 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Go library (`github.com/freeformz/seq`) providing functional iterator/sequence utilities built on Go's `iter.Seq[T]` and `iter.Seq2[K,V]` types. Requires Go 1.24+. Zero external dependencies. Single package, single source file (`seq.go`). + +## Commands + +```bash +# Test (with race detector) +go test -v -race ./... + +# Lint +go vet ./... +go install honnef.co/go/tools/cmd/staticcheck@latest && staticcheck ./... +``` + +## Architecture & Conventions + +**Dual API pattern**: Most functions have two variants — one for `iter.Seq[T]` and a `KV` suffix version for `iter.Seq2[K,V]`. The `KV[K,V]` struct bridges between the two. + +**Comparison function variants**: Functions involving ordering have up to three forms — constrained to `cmp.Ordered`, a `Func` version accepting a comparator, and a `FuncKV` version. + +**Lazy vs eager**: Transformation functions (Map, Filter, Chunk, Drop, etc.) return new iterators via closures over `yield func(T) bool`. Aggregation functions (Reduce, Min, Max, Count, etc.) consume the entire sequence eagerly. + +**Testing**: All tests are `Example` functions — they serve as both documentation and regression tests. No traditional unit tests. Run a single example with `go test -run ExampleFunctionName`. + +**Commit tags**: Commit messages use `#patch`, `#minor`, `#major`, or `#none` suffixes for automated semantic version bumping. diff --git a/go.mod b/go.mod index 7c32823..a13e4ce 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,3 @@ module github.com/freeformz/seq -go 1.23 +go 1.25 diff --git a/mise.toml b/mise.toml new file mode 100644 index 0000000..60ae880 --- /dev/null +++ b/mise.toml @@ -0,0 +1,2 @@ +[tools] +go = "1.25.7"