8 Commits
Author SHA1 Message Date
petrbalvin 59937749fa chore: prepare release v1.0.0
Test / test (push) Successful in 2m5s
Release / gates (push) Successful in 1m50s
Release / release (push) Successful in 43s
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:48 +02:00
petrbalvin ca3b6c6cba docs: document set and changelog
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
petrbalvin d6258cbbc5 ci: hand-written test, race and release pipelines
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
petrbalvin 3a83dbd432 build: canonical justfile
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
petrbalvin bcc8ce2078 feat: usage example
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
petrbalvin add5ab588b feat: toml-test adapter command
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
petrbalvin 4db19b0ac6 feat: TOML 1.0 parser and encoder
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
petrbalvin 387f5e80da chore: initialise repository
Assisted-by: GLM 5.3 Flash
2026-09-16 22:02:04 +02:00
8 changed files with 23 additions and 22 deletions
+1
View File
@@ -11,6 +11,7 @@ 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"
+13 -15
View File
@@ -2,10 +2,9 @@
# #
# 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, minus the race detector: race never runs on a push path or a # in their own job and once, including the race detector, which the push pipeline cannot
# tag, and the local gate raced this tree before the tag was cut. The write permission # afford and the release can. The write permission sits on the release job alone, and the
# sits on the release job alone, and the version contract these steps implement is in the # version contract these steps implement is in the `release` skill.
# `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
@@ -21,15 +20,16 @@ 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. # needs it most, since it runs the suite and the race detector.
GOFLAGS: -p=1 GOFLAGS: -p=1
GOMAXPROCS: "2" GOMAXPROCS: "2"
jobs: jobs:
gates: gates:
runs-on: fedora runs-on: fedora
timeout-minutes: 10 timeout-minutes: 25
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 - name: Install Perl and gcc
# Perl for the steps below. The install is a no-op where the package # Perl for the steps below, gcc for the race detector. Both are no-ops where the
# is already present. # package is already present.
run: dnf install -y perl run: dnf install -y perl gcc
- name: Validate the tag - name: Validate the tag
env: env:
@@ -91,16 +91,14 @@ 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
+3 -1
View File
@@ -26,6 +26,8 @@ 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"
@@ -33,7 +35,7 @@ env:
jobs: jobs:
test: test:
runs-on: fedora runs-on: fedora
timeout-minutes: 10 timeout-minutes: 20
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-08-20 ## [1.0.0] - 2026-09-16
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.0, the version `go.mod` declares, and Requirements: Go 1.27.1, 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.1 Flash` or `Qwen 3.8 Flash`. No example `GLM 5.3`, `DeepSeek V4 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.0 or newer. The module imports only the standard library. Requires Go 1.27.1 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.0, the version the `go` directive in `go.mod` declares. - Go 1.27.1, 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.0 go 1.27.1