Skip to content

Commit 75ed496

Browse files
donislawdevclaude
andauthored
release: 0.3.0 (#98)
* release: 0.3.0 The owner's decision, and his alone - immutable rule 12. This is the version 0.3.0-rc1 already carried, without the suffix, and the suffix is the whole mechanical difference. The release workflow marks a release as a prerelease when the TAG NAME carries a hyphen, which is what kept rc1 off the front page and out of "latest". Dropping it is what puts this build there. The entries that shipped as 0.3.0-rc1 were folded into the 0.3.0 section rather than left beside it, on the owner's instruction. Somebody upgrading from 0.2.0 needs one list of what changed rather than two, and the Breaking list is only true read whole: the padding of a ZIP, a TAR.GZ and a WAV changed after rc1 went out, so the two halves describe one delta from 0.2.0. The merged section carries 67 entries - 9 Breaking, 22 Added, 5 Security, 14 Changed and 17 Fixed - under one heading of each kind. The [0.3.0-rc1] heading goes with them and so does its link definition, because a definition left behind points at a comparison nobody can reach from the document. Both of the release gate's own conditions were run here and pass: the changelog has a section for 0.3.0, and nothing is left under [Unreleased]. Outside internal/version the number has nine copies. Six are held by a guard in this repository, one by a tool outside it, and two by nothing at all. The Windows resource compiled into both binaries carries the version, and a guard reads the COMPILED resource rather than the script beside it. Both scripts were updated and both recompiled with windres, and each .syso lost exactly sixteen bytes - four characters, twice over, two bytes apiece in UTF-16. The numeric FILEVERSION fields were already 0,3,0,0 and did not move. The about screen draws the version, so its stored picture and widget tree were refreshed. One screen of twenty five was rewritten, which is what the writer asking the guard's own verdict instead of comparing bytes was built to do. The tree diff is one line and the text is 37 px narrower. The site prints the version in its footer and in its JSON-LD block. Thirteen pages, seventeen lines added and seventeen removed, every one of them carrying the version and nothing else moved. The README ships inside every release archive and its manifest example still said 0.2.0, so that number had drifted through a whole release without being noticed. Nothing holds it. Folding the sections invalidated two mutation entries, both aimed at the rc1 link definitions. Both reported SKIP, which is the shape that reads as proven, and the staleness check is the only thing that says otherwise. Repointed and run: three mutations named by these guards, three caught. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs: the run lock has a second effect, on a run that fills the disk Found on 2026-09-09 while closing 0.3.0, by the pre-release ritual reporting a failure about a change that is an improvement. The run lock moved the claim on the manifest name from after the last file to before the first one, so the manifest has a place reserved whatever happens to the directory afterwards. The entry describing that said what it does for two runs competing for one directory and stopped there. It does something else for a run nothing is competing with. Measured in a container with room for twelve names, the same command through three binaries: 0.2.0 and 0.3.0-rc1 both end with exit code 5, print thirty files they could not produce, write no manifest, and say that clearing the directory is a job by hand. This release ends with the partial code 8 and writes a manifest, so "tfg cleanup" can remove what the run left rather than leaving it to a person. That is the better outcome and both codes follow the frozen table - what moved is which of them the situation produces, and somebody's CI can be reading it. The entry says so now. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 74b4b37 commit 75ed496

22 files changed

Lines changed: 631 additions & 618 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 588 additions & 582 deletions
Large diffs are not rendered by default.

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ interrupted. One entry per file:
527527
```json
528528
{
529529
"manifest_version": "1.0",
530-
"tool": { "name": "testing-files-generator", "version": "0.2.0" },
530+
"tool": { "name": "testing-files-generator", "version": "0.3.0" },
531531
"run": {
532532
"id": "run_b359aa8d94",
533533
"seed": 0,
-16 Bytes
Binary file not shown.

‎cmd/tfg/rsrc_windows_amd64.syso‎

-16 Bytes
Binary file not shown.

‎cmd/tfg/tfg.rc‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ BEGIN
5050
BEGIN
5151
VALUE "CompanyName", "DonislawDev"
5252
VALUE "FileDescription", "Generates test files for QA, from the command line"
53-
VALUE "FileVersion", "0.3.0-rc1"
53+
VALUE "FileVersion", "0.3.0"
5454
VALUE "InternalName", "tfg"
5555
VALUE "LegalCopyright", "Copyright (C) 2026 DonislawDev. GNU GPL version 3."
5656
VALUE "OriginalFilename", "tfg.exe"
5757
VALUE "ProductName", "Testing Files Generator"
58-
VALUE "ProductVersion", "0.3.0-rc1"
58+
VALUE "ProductVersion", "0.3.0"
5959
END
6060
END
6161
BLOCK "VarFileInfo"
-439 Bytes
Loading

‎internal/guard/testdata/screens/about.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<container size="820x39">
3131
<widget pos="6,0" size="808x39" type="*widget.Label">
3232
<widget size="808x39" type="*widget.RichText">
33-
<text bold pos="6,6" size="317x27" textSize="20">Testing Files Generator 0.3.0-rc1</text>
33+
<text bold pos="6,6" size="280x27" textSize="20">Testing Files Generator 0.3.0</text>
3434
</widget>
3535
</widget>
3636
</container>

‎internal/gui/icon/chickpea.rc‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ BEGIN
4949
BEGIN
5050
VALUE "CompanyName", "DonislawDev"
5151
VALUE "FileDescription", "Generates test files for QA"
52-
VALUE "FileVersion", "0.3.0-rc1"
52+
VALUE "FileVersion", "0.3.0"
5353
VALUE "InternalName", "tfg-gui"
5454
VALUE "LegalCopyright", "Copyright (C) 2026 DonislawDev. GNU GPL version 3."
5555
VALUE "OriginalFilename", "tfg-gui.exe"
5656
VALUE "ProductName", "Testing Files Generator"
57-
VALUE "ProductVersion", "0.3.0-rc1"
57+
VALUE "ProductVersion", "0.3.0"
5858
END
5959
END
6060
BLOCK "VarFileInfo"

‎internal/version/version.go‎

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,32 @@ package version
77
// Version is written into every manifest. A manifest without it cannot
88
// explain a hash mismatch after an upgrade.
99
//
10-
// Set to 0.1.0 by the owner on 2026-08-02, raised to 0.2.0 on 2026-08-28 and
11-
// to 0.3.0-rc1 on 2026-09-03, every one of them by the owner. It stopped being
12-
// an internal number the day 0.1.0 was published: this is what somebody
13-
// compares their build against when a hash they stored months ago does not
14-
// match.
10+
// Set to 0.1.0 by the owner on 2026-08-02, raised to 0.2.0 on 2026-08-28, to
11+
// 0.3.0-rc1 on 2026-09-03 and to 0.3.0 on 2026-09-09, every one of them by the
12+
// owner. It stopped being an internal number the day 0.1.0 was published: this
13+
// is what somebody compares their build against when a hash they stored months
14+
// ago does not match.
1515
//
1616
// 0.2.0 was a minor bump that moved no bytes. This one moves them, and before
1717
// 1.0 the minor is where that goes - D11 and immutable rule 3 ask for a bump,
1818
// not for a particular digit. Six formats have different bytes under Go 1.27,
19-
// a log advances through time, a GIF moves, and a CSV quotes only the fields
20-
// that need it. The changelog lists each one and says whether there is a way
21-
// back to the old bytes.
19+
// a log advances through time, a GIF moves, a CSV quotes only the fields that
20+
// need it, and the padding of a ZIP, a TAR.GZ and a WAV is drawn eight bytes
21+
// at a time instead of one. The changelog lists each one and says whether
22+
// there is a way back to the old bytes.
2223
//
23-
// The suffix is not decoration and it is not spelled freely. The release
24+
// The absence of a suffix is a decision rather than tidying up. The release
2425
// workflow marks a release as a prerelease when the TAG NAME carries a hyphen,
25-
// so 0.3.0rc1 would have gone out as the latest stable release. The changelog
26-
// section has to be spelled the same way, because the workflow greps for a
27-
// heading naming exactly this string before it will build anything.
28-
const Version = "0.3.0-rc1"
26+
// which is what kept 0.3.0-rc1 off the front page and out of "latest" while it
27+
// was the newest tag. Dropping the suffix is what puts this build there, and
28+
// 0.3.0rc1 would have gone out as the latest stable release by accident.
29+
//
30+
// The changelog section has to be spelled the same way as this string, because
31+
// the workflow greps for a heading naming exactly it before it will build
32+
// anything. The entries that shipped as 0.3.0-rc1 were folded into the 0.3.0
33+
// section on 2026-09-09 for the same reason the version has one place: someone
34+
// upgrading from 0.2.0 needs one list of what changed, not two.
35+
const Version = "0.3.0"
2936

3037
// LicenceNotice is what "tfg license" prints and what the window's about
3138
// screen shows.

‎web/public/404.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ <h1>That page is not here</h1><p class="lead">The address you followed does not
5656
<footer class="footer">
5757
<div class="wrap footer-inner">
5858
<div class="footer-col">
59-
<p class="footer-brand">Testing Files Generator 0.3.0-rc1</p>
59+
<p class="footer-brand">Testing Files Generator 0.3.0</p>
6060
<p class="muted">Test files for QA, at any exact size, with a manifest that states how your system should react to each one.</p>
6161
</div>
6262
<div class="footer-col">

0 commit comments

Comments
 (0)