Commit graph

94 commits

Author SHA1 Message Date
Stephen Dennis
e4ff0b9994 fix(#2222): clear companion checksums when their artifacts are cleaned
The blobs archive and APPLY.txt are both conditional on there being
changed binary blobs, and dounix.sh removes them up front so a rerun
that finds none leaves neither behind.  It did not remove their
.sha256 files, so those survived from the previous run.

A release operator staging by glob then signs and uploads checksums
for artifacts that no longer exist.  #2214 added the APPLY.txt
checksum, which widened an existing gap on the blobs checksum.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-10 23:01:22 -06:00
Stephen Dennis
73dc1749d0 fix(release): generate .sha256 for APPLY.txt (#2214)
dounix.sh already produced APPLY.txt when companion blobs ship, and
every release cut has been checksumming it by hand.  Add the missing
sha256sum step (same blob-gate as BLOBS_FILE) and reword the closing
reminder so checksums and signatures cover the same artifact set.
2026-08-10 19:54:50 -06:00
Stephen Dennis
44c374ee5a Prepare 2.14.0.11 ALPHA release
Version bump across the three files that carry it: mux/include/_build.h
(MUX_VERSION, MUX_RELEASE_DATE) and OLD_BUILD/NEW_BUILD in dounix.sh and
dowin32.sh, which move 9->10 and 10->11 respectively.

CHANGES.md: close the 2.14.0.11 section that has been maintained through
the cycle, and add the client TCP_NODELAY work (#2204, #2205, #2206,
#2207) to Clients, which had #2196 for tf but not the other four native
clients.  Recorded with the wire measurement rather than by inspection --
two segments before the fix, five after, and no observable difference on
loopback at all.

Build-only changes are left out of the changelog as they have been all
cycle (#2177, #2180, #2185, #2211).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 15:31:13 -06:00
Stephen Dennis
a8569371e2 build(release): the win32 source zip has never built; fix the TOC conflicts and validate the lists
Three defects, found while re-cutting 2.14.0.10 on Windows after #1967.

1. win32/TOC.src.patchable and win32/TOC.src.removed BOTH list six files:

       src/ganl_adapter.cpp  src/netaddr.cpp   src/signals.cpp
       src/sitemon.cpp       src/telnet.cpp    src/version.cpp

   dowin32.sh copies the patchable list in, then runs clean_files over the
   removed list, so the delete wins and they never ship.  netmux.vcxproj
   ships and requires all six.  Verified against the DISTRIBUTED
   mux-2.14.0.9.win32.src.zip: its netmux.vcxproj names 15 sources under
   src/ and the archive contains 9 of them, so the win32 source
   distribution has not been buildable since at least 2.14.0.9.  This is
   #1967's defect class with a different mechanism -- that was a file named
   in no list, this is a file named in two contradictory ones -- and it hid
   from that audit because the check was Makefile.am, which is the Unix
   build system.  On Windows the build system is the vcxproj.

2. ac6c24fef added a blank line to win32/TOC.src.removed and
   unix/TOC.removed.  dowin32.sh reads its lists with mapfile -t, which
   preserves the empty element; "$dir/" exists, so clean_files ran
   rm on the distribution root, plain rm refused with "Is a directory",
   and set -e aborted the release having produced nothing.  dounix.sh
   iterates an unquoted $remove_files, where word splitting drops the empty
   token, so the identical blank line is harmless there -- which is why it
   merged green.  Both files also lost their trailing newline; restored.

3. Neither script validated its lists.  A contradicting or stale list
   produces a wrong distribution SILENTLY: the archive is intact, so every
   checksum and every GPG signature over it still verifies.  #1967 put it
   exactly right -- they prove the tarball is intact, not complete.

Adds a preflight to both scripts, run before anything is copied, asserting
two invariants and refusing to build otherwise:

    removed n (patchable u unpatched) = 0
    everything listed to ship exists in the tree

and a guard in dowin32.sh's clean_files so an empty entry can never again
be turned into an operation on the distribution root.  The rm -rf variant
of that loop would not have refused.

Not automated here: the stronger check that every source the build system
names is present in the packaged output.  It needs the built artifact and
is platform-specific, and it is the only one of the three that catches
either #1967's missing seven or this change's missing six.  Run it against
the artifact.

Verified on Windows, 2.14.0.10 re-cut from the signed binaries:
netmux.vcxproj and every other project file -- 213 references, 0 missing
(was 6); lib/Makefile.am -- 24 sources, 0 missing; #1967's seven files all
present; orphaned lib/timeparser.cpp correctly removed; 8/8 checksums;
packaged netmux.exe/libmux.dll/engine.dll bit-identical to the
Authenticode-signed copies in game/bin.  Negative control: reintroducing
one conflict makes the preflight name the file and exit 1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-02 21:03:08 -06:00
Stephen Dennis
e6b98f57fa docs: 2.14.0.10 CHANGES, and bump the version and release scripts
The 2.14.0.10 draft was last refreshed on 2026-07-25 and had drifted:
it opened by claiming 155 merged changes in under two weeks. Rewritten
against the full range since Build-2.14.0.9.

Version bumped in the three files the release process names:
mux/include/_build.h (2.14.0.10 / 2026-AUG-02), dounix.sh and
dowin32.sh (OLD_BUILD=9, NEW_BUILD=10). ALPHA stays defined.

CLAUDE.md gains the release model that was only ever oral tradition --
2.14 is a long alpha with no planned Beta, 2.13 is what live games run
-- and its _build.h path is corrected (it said mux/src/, the file is in
mux/include/).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 16:05:42 -06:00
Stephen Dennis
c500edc739 harden: deliver binary blobs out-of-band in the Unix distribution
2.14.0.9 is the first release to ship a binary artifact (rv64/softlib.rv64)
in the source distribution, which exposed a latent flaw: dounix.sh fed the
blob through diff -a into the text upgrade patch. That embeds NUL bytes and
relies on diff/patch round-tripping binary as text -- unportable (notably to
BSD patch) and silently fragile.

Rework the patch build so binaries are delivered reliably:

- Auto-detect binary files (NUL scan) among the patchable set and stash them
  out of both trees before diffing, so the .patch is pure text with
  conventional headers. A hard guard aborts the build if any NUL leaks in.
- Ship changed blobs whole in a companion mux-OLD-NEW.unix.blobs.tar.gz
  (staged under the distribution dir name for in-place "tar xzf" overlay),
  with an auditable APPLY.txt documenting the two-step upgrade. Only blobs
  that actually changed are packaged.
- Add a build-time self-test: apply the generated patch to a fresh copy of
  the previous release, overlay the blobs archive, and diff against the new
  tree -- the build fails unless they match byte-for-byte.

Also general robustness: reference-dir/TOC/source preconditions with clear
errors, set -u, quoted paths, gzip -t / tar -t archive verification, and an
artifact summary noting the new companion archive must be GPG-signed too.

The full tarball is unchanged and still contains every file. dowin32.sh
(7z/zip patch format) is left for separate review.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 17:40:08 -06:00
Stephen Dennis
eb93309f6a Prepare 2.14.0.9 ALPHA release
Bump version to 2.14.0.9 and update the release date to 2026-JUL-14 in
_build.h, dounix.sh, and dowin32.sh. CHANGES.md is current for 2.14.0.9.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 13:43:24 -06:00
Stephen Dennis
e7b11a4cf2 Prepare 2.14.0.8 ALPHA release
Bump version to 2.14.0.8 and update release date to 2026-JUN-15 in
_build.h, dounix.sh, and dowin32.sh. CHANGES.md and the distribution
TOCs were already current for 2.14.0.8.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:33:25 -06:00
Stephen Dennis
eb32b30fd4 Prepare 2.14.0.7 ALPHA release
Bump version to 2.14.0.7, update release date to 2026-APR-03,
add new DBT backend files to distribution TOCs, and write CHANGES.md
covering all distributed changes since 2.14.0.6.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:01:35 -06:00
Stephen Dennis
f3d67fa13c Prepare 2.14.0.6 ALPHA release
Update version to 2.14.0.6, release date 2026-MAR-26.
Bump OLD_BUILD/NEW_BUILD in dounix.sh and dowin32.sh.
Add Build 6 changelog: JIT constant folding (35+ functions),
re-entrant shared heap, pool overflow fixes, WAL auto-checkpoint,
ASCII fast path for command matching, 50 parity tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 22:55:52 -06:00
Stephen Dennis
84012a863c Bump version to 2.14.0.5 ALPHA
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 08:59:55 -06:00
Stephen Dennis
93262b2785 Bump version to 2.14.0.4 ALPHA for JIT Tier 3 inlining and fixes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 01:23:00 -06:00
Stephen Dennis
5cb5d4c13b Bump version to 2.14.0.3 ALPHA for muxescape and rv64 TOC fixes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:35:59 -06:00
Stephen Dennis
ec4be27e5d Bump version to 2.14.0.2 ALPHA for distribution TOC fix release
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 09:41:27 -06:00
Stephen Dennis
7974a3355b Bump version to 2.14.0.1 ALPHA for first release
Set NEW_BUILD=1 in release scripts, update _build.h version.
Reference directory mux2.14_0 seeded from 2.13.0.12.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 23:14:58 -06:00
Stephen Dennis
ebe374d8cc Bump version from 2.13 to 2.14.0.0 across the codebase
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:10:38 -07:00
Stephen Dennis
bd4db28d72 Bump version to 2.13.0.9 ALPHA and update TOC files
- _build.h: 2.13.0.8 -> 2.13.0.9, ALPHA remains defined
- dounix.sh/dowin32.sh: OLD_BUILD=8, NEW_BUILD=9
- Add BETA.md to all TOC patchable lists (was missing)
- 348/348 smoke tests passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:15:55 -07:00
Stephen Dennis
1a129e436b Bump version to 2.13.0.8 ALPHA and update release files
- _build.h: version 2.13.0.8, date 2026-MAR-06
- dounix.sh, dowin32.sh: OLD_BUILD=7, NEW_BUILD=8
- CHANGES.md: document SQLite always-on storage, Unicode 16.0 with
  NFC normalization, grapheme cluster indexing, UCA/DUCET collation,
  CJK width-aware operations, indexed @search, and all modernization
  work since 2.13.0.7

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:25:12 -07:00
Stephen Dennis
796bf11c96 Update release files for 2.13.0.7: CHANGES.md, TOC lists, and version bump.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 07:15:39 -07:00
Stephen Dennis
407f1e1c71 Bump version to 2.13.0.6
- Update version from 2.13.0.5 to 2.13.0.6
- Update release date to 2025-APR-02
- Update build numbers in dounix.sh and dowin32.sh

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-02 08:56:03 -06:00
Stephen Dennis
aa51d768d1 Redevelop release scripts. 2025-03-25 09:25:19 -06:00
Stephen Dennis
ba51d48b7d Bump version number. 2025-03-25 08:24:34 -06:00
Stephen Dennis
7d85f3d1a5 Bump version number. 2022-03-18 08:25:46 -06:00
Stephen Dennis
c6bf0fd7b9 Bump version number and update CHANGES.md. 2022-03-17 18:34:41 -06:00
Stephen Dennis
6a10987507 Bump version to 2.13.0.2 and update CHANGES.md. 2022-03-13 10:11:22 -06:00
Stephen Dennis
3cd3ad9d92 Bump version to 2.13.0.1 2021-03-09 22:09:39 -07:00
Stephen Dennis
639a122bac Bump version from 2.12.0.9 to 2.13.0.0. 2020-08-11 07:38:33 -06:00
Stephen Dennis
b4226f40ee Bump version and remove Beta tag. 2020-08-08 18:02:38 -06:00
Stephen Dennis
ba966891fb Bump version number to 2.12.0.9. 2020-06-30 10:52:22 -06:00
Stephen Dennis
cbebc79f61 Bump version number to 2.12.0.8. 2020-03-27 10:27:34 +00:00
Stephen Dennis
32083838f5 Update CHANGES and bump version to 2.12.0.7. 2018-11-13 03:40:58 +00:00
Stephen Dennis
f2a6d58789 Update CHANGES and bump version to 2.12.0.6. 2018-11-09 19:30:37 +00:00
Stephen Dennis
c578d177d8 Update CHANGES and bump version to 2.12.0.5. 2018-11-09 17:42:41 +00:00
sdennis
e328b174cb Bump distribution version.
git-svn-id: svn+ssh://ritsu.tinymux.org/tinymux/branches/dev_brazil@5845 d1b986fa-651c-0410-a323-35a8662cf44d
2017-02-04 07:26:05 -07:00
brazilofmux
b628ee0b2a Bump version number to TinyMUX 2.12.0.3. 2016-02-13 01:50:51 +00:00
brazilofmux
debfc372f5 Bump version number to TinyMUX 2.12.0.2. 2014-12-18 22:46:54 -07:00
brazilofmux
5157bfcf23 Build scripts should be for 2.12 instead of 2.11. 2014-09-15 18:01:01 -06:00
brazilofmux
016b05138e Starting TinyMUX 2.12. 2012-07-12 09:57:40 -07:00
brazilofmux
f18822979a Bump version and release. 2012-07-06 11:08:09 -07:00
brazilofmux
74a6793632 Bump version and describe CHANGES. 2012-05-05 10:01:27 -07:00
brazilofmux
ee3f4e3b0a Bump version to 2.10.1.10 and update CHANGES. 2012-03-17 10:20:00 -07:00
brazilofmux
635c6db2fe Bump version to 2.10.1.9 2012-03-10 07:36:27 -08:00
brazilofmux
7d0628f136 Bump version number to 2.10.1.8. 2012-02-29 15:25:02 -08:00
brazilofmux
cc3e16e8b8 Bump version and update CHANGES. 2011-06-02 20:44:21 -07:00
brazilofmux
fab90e4cb9 Update for BETA. 2011-05-28 07:38:04 -07:00
brazilofmux
8013bfe6f2 Bump version to 2.10.0.5 2011-04-01 22:16:14 -07:00
brazilofmux
736d31b4fe Bump version number to 2.10.0.4
git-svn-id: https://tinymux.googlecode.com/svn/trunk@5274 d1b986fa-651c-0410-a323-35a8662cf44d
2011-03-13 19:35:57 -07:00
brazilofmux
8e9c5a44ec Bump version number to 2.10.0.3.
git-svn-id: https://tinymux.googlecode.com/svn/trunk@5261 d1b986fa-651c-0410-a323-35a8662cf44d
2011-03-13 19:10:35 -07:00
brazilofmux
3e04098783 Bump version number to 2.10.0.2
git-svn-id: https://tinymux.googlecode.com/svn/trunk@5251 d1b986fa-651c-0410-a323-35a8662cf44d
2011-03-02 08:22:47 -08:00
brazilofmux
8969854e35 Start TinyMUX 2.10 development. 2010-01-31 12:28:38 -08:00