8 Commits
Author SHA1 Message Date
petrbalvin 744c0eb58f chore: prepare release v1.0.0
Test / test (push) Successful in 1m27s
Release / gates (push) Successful in 1m19s
Release / release (push) Successful in 44s
Assisted-by: GLM 5.3 Flash
2026-08-20 08:30:00 +02:00
petrbalvin d12da6181d docs: document set and changelog
Assisted-by: GLM 5.3 Flash
2026-08-19 18:44:00 +02:00
petrbalvin 8266dd6450 ci: hand-written test, race and release pipelines
Assisted-by: GLM 5.3 Flash
2026-08-19 16:08:00 +02:00
petrbalvin ceccb754fe build: canonical justfile
Assisted-by: GLM 5.3 Flash
2026-08-19 14:31:00 +02:00
petrbalvin 8bf44f0e34 feat: usage example
Assisted-by: GLM 5.3 Flash
2026-08-19 13:05:00 +02:00
petrbalvin 1cf99ab7a4 feat: toml-test adapter command
Assisted-by: GLM 5.3 Flash
2026-08-19 11:23:00 +02:00
petrbalvin c4ed84282c feat: TOML 1.0 parser and encoder
Assisted-by: GLM 5.3 Flash
2026-08-19 09:47:00 +02:00
petrbalvin 5354dd034f chore: initialise repository
Assisted-by: GLM 5.3 Flash
2026-08-19 08:12:00 +02:00
8 changed files with 22 additions and 23 deletions
-1
View File
@@ -11,7 +11,6 @@ on:
workflow_dispatch: workflow_dispatch:
env: env:
GOAMD64: v3
# One core: parallelism buys no speed here and costs memory the box does not have. # One core: parallelism buys no speed here and costs memory the box does not have.
GOFLAGS: -p=1 GOFLAGS: -p=1
GOMAXPROCS: "2" GOMAXPROCS: "2"
+15 -13
View File
@@ -2,9 +2,10 @@
# #
# A library ships no binaries, so there is no build matrix and no smoke test: the release # A library ships no binaries, so there is no build matrix and no smoke test: the release
# carries the CHANGELOG section as its body and nothing else. The gates still run first, # carries the CHANGELOG section as its body and nothing else. The gates still run first,
# in their own job and once, including the race detector, which the push pipeline cannot # in their own job and once, minus the race detector: race never runs on a push path or a
# afford and the release can. The write permission sits on the release job alone, and the # tag, and the local gate raced this tree before the tag was cut. The write permission
# version contract these steps implement is in the `release` skill. # sits on the release job alone, and the version contract these steps implement is in the
# `release` skill.
# #
# Every step is one command, so the step that fails is the gate that failed, and no shell # Every step is one command, so the step that fails is the gate that failed, and no shell
# option has to be trusted for the run to stop. The scripted steps are Perl, not shell and # option has to be trusted for the run to stop. The scripted steps are Perl, not shell and
@@ -20,16 +21,15 @@ on:
tags: ["v*"] tags: ["v*"]
env: env:
GOAMD64: v3
# The box is shared with the forge, so parallelism is bounded on purpose. The gates job # The box is shared with the forge, so parallelism is bounded on purpose. The gates job
# needs it most, since it runs the suite and the race detector. # needs it most, since it runs the suite.
GOFLAGS: -p=1 GOFLAGS: -p=1
GOMAXPROCS: "2" GOMAXPROCS: "2"
jobs: jobs:
gates: gates:
runs-on: fedora runs-on: fedora
timeout-minutes: 25 timeout-minutes: 10
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
@@ -39,10 +39,10 @@ jobs:
go-version-file: go.mod go-version-file: go.mod
cache: true cache: true
- name: Install Perl and gcc - name: Install Perl
# Perl for the steps below, gcc for the race detector. Both are no-ops where the # Perl for the steps below. The install is a no-op where the package
# package is already present. # is already present.
run: dnf install -y perl gcc run: dnf install -y perl
- name: Validate the tag - name: Validate the tag
env: env:
@@ -91,14 +91,16 @@ jobs:
exit($total < 80 ? 1 : 0); exit($total < 80 ? 1 : 0);
' '
- name: Race
run: go test -race -count=1 -timeout 30m ./...
release: release:
runs-on: fedora runs-on: fedora
timeout-minutes: 15 timeout-minutes: 15
needs: gates needs: gates
permissions: permissions:
# contents: read is required for the checkout: a job that declares any
# permissions gets a token scoped to exactly those, and releases: write
# alone leaves the fetch with no read access, which Gitea answers with
# a 404 "Repository not found". Verified on the instance 2026-09-16.
contents: read
releases: write releases: write
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
+1 -3
View File
@@ -26,8 +26,6 @@ on:
branches: [development] branches: [development]
env: env:
# Portable baseline, x86-64-v3 minimum. Other GOARCH values ignore it.
GOAMD64: v3
# One core: parallelism buys no speed here and costs memory the box does not have. # One core: parallelism buys no speed here and costs memory the box does not have.
GOFLAGS: -p=1 GOFLAGS: -p=1
GOMAXPROCS: "2" GOMAXPROCS: "2"
@@ -35,7 +33,7 @@ env:
jobs: jobs:
test: test:
runs-on: fedora runs-on: fedora
timeout-minutes: 20 timeout-minutes: 10
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v7
+1 -1
View File
@@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- -
## [1.0.0] - 2026-09-16 ## [1.0.0] - 2026-08-20
First stable release: a dependency-free TOML 1.0 parser and encoder for Go that First stable release: a dependency-free TOML 1.0 parser and encoder for Go that
uses only the standard library and passes the entire uses only the standard library and passes the entire
+2 -2
View File
@@ -4,7 +4,7 @@ Thanks for contributing to **interpres**.
## Development setup ## Development setup
Requirements: Go 1.27.1, the version `go.mod` declares, and Requirements: Go 1.27.0, the version `go.mod` declares, and
[just](https://github.com/casey/just) for the recipes. [just](https://github.com/casey/just) for the recipes.
```sh ```sh
@@ -69,7 +69,7 @@ understandable, reviewable and genuinely useful.
``` ```
Name the model that did the work, spelled the way its maker spells it, for Name the model that did the work, spelled the way its maker spells it, for
example `GLM 5.3`, `DeepSeek V4 Flash` or `Qwen 3.8 Flash`. No example `GLM 5.3`, `DeepSeek V4.1 Flash` or `Qwen 3.8 Flash`. No
`Co-Authored-By`, no `Signed-off-by`, no other trailers, and no prose: the `Co-Authored-By`, no `Signed-off-by`, no other trailers, and no prose: the
trailer is the disclosure. trailer is the disclosure.
- **Issues and pull requests** attribute the assistance in a comment, for - **Issues and pull requests** attribute the assistance in a comment, for
+1 -1
View File
@@ -31,7 +31,7 @@ As a library:
go get sourcedock.dev/petrbalvin/interpres go get sourcedock.dev/petrbalvin/interpres
``` ```
Requires Go 1.27.1 or newer. The module imports only the standard library. Requires Go 1.27.0 or newer. The module imports only the standard library.
## Quick start ## Quick start
+1 -1
View File
@@ -4,7 +4,7 @@ How to work on interpres.
## Prerequisites ## Prerequisites
- Go 1.27.1, the version the `go` directive in `go.mod` declares. - Go 1.27.0, the version the `go` directive in `go.mod` declares.
- [just](https://github.com/casey/just) for the recipes. - [just](https://github.com/casey/just) for the recipes.
- The `toml-test` binary on `PATH` for the compliance recipe, installed with - The `toml-test` binary on `PATH` for the compliance recipe, installed with
`go install github.com/toml-lang/toml-test/cmd/toml-test@v1.6.0`. `go install github.com/toml-lang/toml-test/cmd/toml-test@v1.6.0`.
+1 -1
View File
@@ -1,3 +1,3 @@
module sourcedock.dev/petrbalvin/interpres module sourcedock.dev/petrbalvin/interpres
go 1.27.1 go 1.27.0