packaging: document homebrew tap path

This commit is contained in:
m1ngsama 2026-05-23 17:57:19 +08:00
parent 599cd690b8
commit 39f7f1c7c4
4 changed files with 56 additions and 1 deletions

View file

@ -43,6 +43,8 @@
lightweight validation in `make release-check`.
- Added an Arch `.SRCINFO` draft and AUR maintainer notes, with version/package
checks in `make release-check`.
- Added Homebrew tap maintainer notes, and expanded `make release-check` to
validate the formula class and `libssh` dependency.
## 2026-05-18 - Interactive input polish

View file

@ -7,7 +7,7 @@ any public registry.
## Current targets
- `arch/` - AUR-ready draft for `tnt-chat`.
- `homebrew/tnt-chat.rb` - Homebrew tap formula draft.
- `homebrew/` - Homebrew tap formula draft and maintainer notes.
- `debian/` - Ubuntu PPA / Debian packaging notes and draft metadata.
## Release checklist

View file

@ -0,0 +1,49 @@
# Homebrew Packaging
The draft formula is `tnt-chat.rb`. The expected install path for users is a
project tap first, not Homebrew core:
```sh
brew tap m1ngsama/tnt
brew install tnt-chat
```
Homebrew core should wait until TNT has stable releases and broader usage.
## Local validation
From a tap repository:
```sh
brew audit --strict --online tnt-chat
brew install --build-from-source ./Formula/tnt-chat.rb
brew test tnt-chat
```
For local syntax-only validation from this repository:
```sh
ruby -c packaging/homebrew/tnt-chat.rb
```
## Updating the formula
1. Publish a GitHub release tag such as `v1.0.0`.
2. Download or hash the release source archive:
```sh
curl -L -o tnt-chat-1.0.0.tar.gz \
https://github.com/m1ngsama/TNT/archive/refs/tags/v1.0.0.tar.gz
shasum -a 256 tnt-chat-1.0.0.tar.gz
```
3. Replace `REPLACE_WITH_RELEASE_TARBALL_SHA256` in `tnt-chat.rb`.
4. Run:
```sh
make release-check-strict
```
5. Copy the formula into the tap repository and open a normal review PR.
Do not connect this tap update to production deployment.

View file

@ -72,6 +72,10 @@ grep -q "^pkgname = tnt-chat$" packaging/arch/.SRCINFO ||
fail "packaging/arch/.SRCINFO pkgname is not tnt-chat"
grep -q "v${version}.tar.gz" packaging/homebrew/tnt-chat.rb ||
fail "packaging/homebrew/tnt-chat.rb URL does not match v$version"
grep -q "^class TntChat < Formula$" packaging/homebrew/tnt-chat.rb ||
fail "packaging/homebrew/tnt-chat.rb formula class is not TntChat"
grep -q 'depends_on "libssh"' packaging/homebrew/tnt-chat.rb ||
fail "packaging/homebrew/tnt-chat.rb must depend on libssh"
grep -q "^tnt-chat (${version}-1)" packaging/debian/debian/changelog ||
fail "packaging/debian/debian/changelog version does not match $version"
grep -q "^Source: tnt-chat$" packaging/debian/debian/control ||