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:
env:
GOAMD64: v3
# One core: parallelism buys no speed here and costs memory the box does not have.
GOFLAGS: -p=1
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
# 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
# afford and the release can. The write permission sits on the release job alone, and the
# version contract these steps implement is in the `release` skill.
# in their own job and once, minus the race detector: race never runs on a push path or a
# tag, and the local gate raced this tree before the tag was cut. The write permission
# 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
# 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*"]
env:
GOAMD64: v3
# 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
GOMAXPROCS: "2"
jobs:
gates:
runs-on: fedora
timeout-minutes: 25
timeout-minutes: 10
steps:
- uses: actions/checkout@v7
@@ -39,10 +39,10 @@ jobs:
go-version-file: go.mod
cache: true
- name: Install Perl and gcc
# Perl for the steps below, gcc for the race detector. Both are no-ops where the
# package is already present.
run: dnf install -y perl gcc
- name: Install Perl
# Perl for the steps below. The install is a no-op where the package
# is already present.
run: dnf install -y perl
- name: Validate the tag
env:
@@ -91,14 +91,16 @@ jobs:
exit($total < 80 ? 1 : 0);
'
- name: Race
run: go test -race -count=1 -timeout 30m ./...
release:
runs-on: fedora
timeout-minutes: 15
needs: gates
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
steps:
- uses: actions/checkout@v7
+1 -3
View File
@@ -26,8 +26,6 @@ on:
branches: [development]
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.
GOFLAGS: -p=1
GOMAXPROCS: "2"
@@ -35,7 +33,7 @@ env:
jobs:
test:
runs-on: fedora
timeout-minutes: 20
timeout-minutes: 10
steps:
- 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
uses only the standard library and passes the entire
+2 -2
View File
@@ -4,7 +4,7 @@ Thanks for contributing to **interpres**.
## 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.
```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
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
trailer is the disclosure.
- **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
```
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
+1 -1
View File
@@ -4,7 +4,7 @@ How to work on interpres.
## 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.
- 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`.
+1 -1
View File
@@ -1,3 +1,3 @@
module sourcedock.dev/petrbalvin/interpres
go 1.27.1
go 1.27.0