Releases - issinoho/veetee GitHub Wiki
Releases
Releases are published on the GitHub releases page.
Versions
Up to 1.0 the minor version followed the newest milestone reached: 0.3.0 is milestone M3
(VT420), 0.4.0 is M4 (VT510/VT520/VT525), 0.6.0 is M6 (keyboard and DEC applications, with
the first M7 fonts and the first Windows build), 0.7.0 is M7 (Set-Up, sound, smooth scroll and
the CRT look), 0.7.1 completes M7 (VT500 menu Set-Up, Display Controls and the remaining
fonts), 0.8.0 is the first release of M8 (saved connections, logs, history search, copy and
paste translation), 0.8.1 completes M8's planned work (screen readers, faster output, Flatpak),
0.8.2 fixes local shells and SSH in the Flatpak, 0.8.9 brings LAT, which completes all of
M5 but the proving of RFC 2217, 0.8.10 says what to do when LAT cannot open a socket, and
0.8.11 proves RFC 2217 against ser2net, closing M5 and with it every milestone. Patch
releases (0.6.1, …) fixed bugs between milestones.
1.0.0 (17 September 2026) is the finished project. From 1.0 the version follows Semantic Versioning: a breaking change to the crates' public API or to saved settings takes the major, new terminal behaviour takes the minor, fixes take the patch. Changes are listed in CHANGELOG.md.
1.1.0 (18 September 2026) is the first release after it: a LAT session survives a wire that loses frames, and a window with two sessions can get back to one. The first was a real fault found because it was looked for -- LAT sessions were suspected of failing over long periods and they were, silently, whenever a frame was dropped; see Troubleshooting for what it looked like and how to watch for it. The minor rather than the patch, because Close Session and the unsplitting are new behaviour.
1.1.2 (18 September 2026) is the one to take if you use LAT: 1.1.0 and 1.1.1 should both be
avoided, and 1.1.1 kills a session within minutes of any login. veetee took a new sequence number
for every message it sent, acknowledgements included, while a host acknowledges only the messages
carrying slots — so the gap grew by one every keepalive until it passed MYI64's queue limit of 24,
after which the host stopped accepting anything: typing unechoed, SET TERM/INQUIRE reporting an
unknown terminal type, the screen frozen on a healthy circuit. Confirmed fixed against the same
node over half an hour of MONITOR SYSTEM. See Troubleshooting for the whole sequence of
faults, which took four releases to work through.
1.1.1 (18 September 2026) undoes the harm 1.1.0 did to LAT and should be taken in preference to it. 1.1.0 read every one of the host's acknowledgements as a lost message and granted credit to make up for traffic that had never existed, which took veetee past its own allowance and got the circuit dropped — and nothing then noticed the circuit had gone, so the terminal froze with the keys still clicking rather than saying it had been disconnected. All three were found from a trace of a real session, the tracing added in 1.1.0 being the part of it that worked.
1.9.1 (10 October 2026) is the current release: fixes for Windows. SSH ran the OpenSSH
client on a Windows pseudo console, which re-draws what passes through it: SET TERMINAL/WIDTH=132
never reached the screen, MONITOR SYSTEM showed letters where DEC line drawing belongs, and
keypad keys such as ENTER arrived at the host as a carriage return. The session now runs over
pipes. The numeric keypad stays the keypad whatever the Num Lock state, so EDT's GOLD 4 works
first time, and keypad Enter is ENTER. See Windows.
1.9.0 (27 September 2026): the stored-only Set-Up settings act. The zero style draws an oval, slashed or dotted zero; the transmit rate limit paces what veetee sends; modem control watches a serial line's DSR and carrier; overscan, host wake-up and the energy saver do what the VT500 series does. Two defaults change to DEC's: a VT500 model's zero is oval, and host wake-up is on. See Set-Up.
1.8.0 (27 September 2026): four sessions. A VT520 or VT525 window holds four sessions, each on a connection of its own — New Session asks where — with two on the screen at once, Ctrl+F4 for one window or two, Alt+1 to Alt+4 to go to one, and session icons that blink when one out of sight has news; accepted on OpenVMS. A serial line shows a character received with a parity or framing error as the error character, and a keymap saved before a function existed now gains it.
1.7.0 (26 September 2026): manual pages and --version.
man veetee and man vt-headless come with the .deb, the .rpm, the PPA package and the tarball,
both programs print their version with -v (--version), and the About box names its author and
gives the licence as MIT or Apache-2.0.
1.6.0 (26 September 2026): Set-Up drives the line and the printer.
Communications Set-Up sets a serial line's speed, data format and flow control, as on the
terminal: --serial opens with the saved Set-Up, leaving Set-Up changes the line at once, and a
host can change it with DECSCS, DECSPP and DECSFC at VT500 level. It was proved on a USB serial
adapter to an OpenVMS terminal port, autobaud included, and against ser2net for a terminal
server. Printer Set-Up gains print mode, print extent and print terminator; Ctrl+F2 turns auto
print on and off; and on the VT420 F2 now prints the full page, its factory Print Extent. See
Connections and Printing.
1.5.0 (25 September 2026): printing. veetee has the printer port
a DEC terminal has — what the host prints on the terminal's printer, and the screen from the
Print Screen key, go to a PDF or a real printer; see Printing. Until now, what a host printed
in printer controller mode was painted over the screen instead. XOFF from the host now also
stops what veetee sends, so with SET TERMINAL/HOSTSYNC on OpenVMS a long paste arrives whole.
1.4.0 (25 September 2026) is the one to take if you use LAT.
In 1.3.0 a LAT session froze for good the moment one frame to the host went missing — within
minutes over Wi-Fi — and a message from the host that went missing left a hole in the text on the
screen. veetee now sends again what the host has not acknowledged, takes the host's messages in
order, and packs its data five slots to a LAT message. Kermit gains long packets, up to 9 KB
where the other Kermit offers them. Together, a 20 MB transfer to OpenVMS over LAT, which 1.3.0
could not finish, took 31 minutes on the cable and 16 over Wi-Fi. All of it was found and
confirmed with VEETEE_LAT_TRACE against a real OpenVMS system.
1.3.0 (24 September 2026): Kermit file transfer, with Send File…
and Receive File… in the window and vt-headless kermit on the command line, over whatever
connection a session has — see File Transfer. It is tested against C-Kermit on OpenVMS over
Telnet and LAT, and against C-Kermit and G-Kermit on Linux. It also fixes LAT for anyone who
pastes: a paste over 255 characters ended the session, because veetee filled a LAT slot to 255
bytes and OpenVMS, which never sends more than 254, dropped the circuit. That was found through
Kermit, the first time a transfer over LAT had to recover.
1.2.0 (24 September 2026): a saved connection can be made the default, which veetee opens when it is started without being told where to connect — from the application launcher, say — instead of your login shell. It is the star beside a connection in Connections…, or a switch in the connection editor; see Connections. It is a minor release because it is new behaviour, and it carries the LAT fixes of 1.1.2.
Where veetee is published
| Channel | Covers |
|---|---|
| GitHub releases | .deb, .rpm, tarball, Flatpak bundle and the Windows zip |
ppa:issinoho/veetee |
Ubuntu 26.04 (resolute) only; see Getting Started |
| winget | Issinoho.veetee, a portable package — 1.9.1 in review as winget-pkgs#453859; not yet installable |
1.9.0 merged as issinoho.veetee (winget-pkgs#436670)
but never reached the published index: Issinoho.Loadbearer was already there under a capital I,
and winget identifiers are case-insensitive. From 1.9.1 the package is Issinoho.veetee; see
packaging/winget/README.md.
The PPA covers 26.04 alone because the gtk-rs crates need Rust 1.92 and 24.04's archive stops at
1.91. The packaging and the reasoning are in packaging/ubuntu in the repository.
Downloads
| File | Contents |
|---|---|
veetee_VERSION-1_amd64.deb |
Debian/Ubuntu package: /usr/bin/veetee, /usr/bin/vt-headless, desktop entry, documentation |
veetee-VERSION-1.x86_64.rpm |
RPM for Fedora, RHEL and openSUSE, the same contents; dependencies by soname, from 0.8.12 |
veetee-VERSION-x86_64-linux.tar.gz |
bin/veetee, bin/vt-headless, desktop entry, licences, README, CHANGELOG |
veetee-VERSION-x86_64.flatpak |
Flatpak bundle for any distribution (GNOME 50 runtime), from 0.8.1 |
veetee-VERSION-x86_64-windows.zip |
bin\veetee.exe, bin\vt-headless.exe, the GTK 4 and libadwaita runtime, licences, README |
SHA256SUMS |
Checksums of the files above |
sha256sum -c SHA256SUMS --ignore-missing
sudo apt install ./veetee_1.9.1-1_amd64.deb
The Linux binaries are built on Ubuntu 24.04 and need GTK 4.14+ and libadwaita 1.5+ at run time. The Debian package, the RPM and the tarball include the application icon and AppStream metadata. The Windows zip is built with MSYS2 (UCRT64) and runs on Windows 10 1809 or later; see Windows.
Making a release
-
Update
versionin the workspaceCargo.tomland the workspace dependency versions. -
Move the Unreleased notes in
CHANGELOG.mdunder a heading for the new version. -
Commit, then tag and push:
git tag -a v1.9.1 -m "veetee 1.9.1" && git push origin v1.9.1. -
The Release workflow runs three jobs:
- linux checks that the tag matches the crate version, runs the tests and builds the
tarball,
.deband.rpmwithcargo xtask dist; - windows builds with MSYS2 and bundles the zip with
packaging/windows/bundle.sh; - flatpak builds the Flatpak bundle from
packaging/flatpakin the GNOME 50 container; - publish, once all succeed, writes
SHA256SUMSand publishes the GitHub release with the changelog section as its notes.
- linux checks that the tag matches the crate version, runs the tests and builds the
tarball,
-
On a Windows computer signed in to Certum SimplySign, sign the published Windows build:
pwsh -File packaging\windows\sign-release.ps1 -Version VERSION. It signsveetee.exeandvt-headless.exe, rebuilds the zip with identical contents and replaces it andSHA256SUMSon the release; seepackaging/windows/SIGNING.md. -
After signing, and not before, point the winget manifests at the release:
cargo xtask winget VERSION. Signing replaces both the zip andSHA256SUMS, so manifests generated first pin a file that is no longer there -- which is exactly what happened to 1.0.0, and would have failed the validation bot's hash check had it been submitted.
After changing dependencies, regenerate the Flatpak's offline crate list with
flatpak-cargo-generator.py Cargo.lock -o packaging/flatpak/cargo-sources.json (from
flatpak-builder-tools); the CI Flatpak job
fails if it is out of date.
cargo xtask dist builds the Linux files locally under target/dist/ (the .deb needs
cargo install cargo-deb and the .rpm needs cargo install cargo-generate-rpm; --no-deb and
--no-rpm skip them); packaging/windows/bundle.sh does the same for Windows in an MSYS2 shell.
CI builds all three on every push, so packaging does not break unnoticed between releases.