version both programs at 2.0.0 (wire protocol v2)

Versioning scheme: MAJOR.MINOR.PATCH where MAJOR matches the wire
protocol version (no cross-major compat), MINOR is the main change
indicator, PATCH generally unused.

- gatunad: Cargo.toml version 2.0.0 (clap --version picks it up)
- gatuna: csproj Version 2.0.0, shown in form title + tray tooltip
- app.manifest: assemblyIdentity version 2.0.0.0
- Frame version rejection already in place (both sides reject != 2)
- README: document versioning scheme
This commit is contained in:
2026-08-13 09:18:34 +00:00
parent 7fa50dd4e4
commit ef3735764a
6 changed files with 26 additions and 4 deletions
+18
View File
@@ -181,6 +181,24 @@ gatuna/
└── PingTest.cs # PING/PONG network test with stats └── PingTest.cs # PING/PONG network test with stats
``` ```
## Versioning
Both programs use `MAJOR.MINOR.PATCH` where:
- **MAJOR** matches the wire protocol version. A v2.x program rejects any frame
with `version != 2`. No cross-major compatibility.
- **MINOR** is the main change indicator for features and fixes within a major
version.
- **PATCH** is reserved for bug fixes; generally unused.
Current version: **2.0.0** (wire protocol v2).
Check versions:
```sh
gatunad --version # Rust server
```
The Windows client shows its version in the title bar and tray tooltip.
## License ## License
CC0 1.0 Universal. See [`LICENSE`](LICENSE). CC0 1.0 Universal. See [`LICENSE`](LICENSE).
+2 -1
View File
@@ -17,7 +17,8 @@ public partial class MainForm : Form
public MainForm() public MainForm()
{ {
Text = "gatuna"; var ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version!;
Text = $"gatuna {ver.Major}.{ver.Minor}";
Width = 520; Width = 520;
Height = 420; Height = 420;
FormBorderStyle = FormBorderStyle.FixedSingle; FormBorderStyle = FormBorderStyle.FixedSingle;
+3 -1
View File
@@ -9,10 +9,12 @@ static class Program
var form = new MainForm(); var form = new MainForm();
var ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version!;
using var tray = new NotifyIcon using var tray = new NotifyIcon
{ {
Icon = SystemIcons.GetStockIcon(StockIconId.NetworkConnect, 32), Icon = SystemIcons.GetStockIcon(StockIconId.NetworkConnect, 32),
Text = "gatuna", Text = $"gatuna {ver.Major}.{ver.Minor}",
Visible = true, Visible = true,
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="0.1.0.0" name="gatuna" /> <assemblyIdentity version="2.0.0.0" name="gatuna" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security> <security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+1
View File
@@ -5,6 +5,7 @@
<TargetFramework>net8.0-windows</TargetFramework> <TargetFramework>net8.0-windows</TargetFramework>
<AssemblyName>gatuna</AssemblyName> <AssemblyName>gatuna</AssemblyName>
<RootNamespace>gatuna</RootNamespace> <RootNamespace>gatuna</RootNamespace>
<Version>2.0.0</Version>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "gatuna" name = "gatuna"
version = "0.1.0" version = "2.0.0"
edition = "2021" edition = "2021"
license = "CC0-1.0" license = "CC0-1.0"