Packaging and distribution¶
Typsastra publishes prebuilt Windows and Linux packages from GitHub Releases. This page covers the repository-side metadata for the package managers that can reuse those artifacts:
| Channel | Platform | Artifact | Publish target |
|---|---|---|---|
| Chocolatey | Windows | x64 and ARM64 MSI | chocolatey.org |
| Scoop | Windows | x64 and ARM64 MSI, extracted into the Scoop app directory | A Scoop bucket or ScoopInstaller/Extras |
| AUR | Arch Linux | x86_64 and aarch64 .deb, repacked as typsastra-bin |
AUR |
macOS is not listed because the current DMG is unsigned and unnotarized. Homebrew Cask requires a Gatekeeper-compliant app; see INSTALL.md.
Generated metadata¶
The files under packaging/ are generated from a published GitHub release:
The generator reads the release assets from GitHub, takes each asset's SHA-256
digest, and rewrites the Chocolatey, Scoop, and AUR files. It requires the
GitHub CLI on the PATH and an authenticated
session (gh auth login). Publish the release before generating metadata; the
script refuses to guess hashes for missing assets.
Use --dry-run to see which files would change without writing them:
Do not edit the generated files by hand. Change the generator, then regenerate. Packaging metadata is generated from a published release, so it may still describe the previous version until the new release is published. The packaging tests validate that the checked-in files agree with each other.
Layout¶
packaging/
├── chocolatey/
│ ├── typsastra.nuspec
│ └── tools/
│ ├── chocolateyinstall.ps1
│ ├── chocolateyuninstall.ps1
│ └── VERIFICATION.txt
├── scoop/
│ └── typsastra.json
└── aur/
├── PKGBUILD
└── .SRCINFO
Chocolatey¶
The Chocolatey package downloads the official per-machine MSI. It selects the ARM64 MSI on ARM64 Windows and the x64 MSI everywhere else. The MSI is not code signed, so SmartScreen may warn on first launch even after a successful Chocolatey install.
Build the package:
Test it locally from an elevated shell:
Publish to the Chocolatey community repository:
$env:CHOCOLATEY_API_KEY = "<your API key>"
choco push dist/chocolatey/typsastra.0.10.0.nupkg `
--source https://push.chocolatey.org/ `
--api-key $env:CHOCOLATEY_API_KEY
The first submission goes through moderation. Include the generated
VERIFICATION.txt; it records both installer URLs and their SHA-256 hashes.
Scoop¶
The Scoop manifest uses the MSI's administrative install to extract the
application into the Scoop app directory. It does not install the MSI
system-wide, so scoop uninstall removes the files normally. The manifest notes
that the Microsoft Edge WebView2 Runtime is required; it is included with
Windows 11 and most Windows 10 installations.
Test the manifest locally:
The project bucket is published at https://github.com/Sovichea/scoop-typsastra:
A personal bucket is the low-effort option; the manifest can also be submitted
to ScoopInstaller/Extras for broader discovery.
The manifest includes checkver and autoupdate entries. Future releases can
be picked up by the bucket's update workflow; the hash is read from the GitHub
release asset's digest field. Run scoop checkver in the bucket repository to
verify the update path before relying on it.
AUR¶
The AUR package is typsastra-bin. It repacks the published .deb for x86_64
and aarch64, so users do not need to build the Rust application. The package
depends on gtk3, webkit2gtk-4.1, and xdg-utils, provides typsastra, and
conflicts with a source-built typsastra package.
Test on Arch Linux:
Publish to the AUR:
git clone ssh://[email protected]/typsastra-bin.git
cp packaging/aur/PKGBUILD packaging/aur/.SRCINFO typsastra-bin/
cd typsastra-bin
git add PKGBUILD .SRCINFO
git commit -m "Update to 0.10.0"
git push
The AUR repository contains only PKGBUILD and .SRCINFO. Do not commit the
downloaded .deb files or a src/ directory.
Release checklist¶
- Publish the GitHub release with the MSI,
.deb, and AppImage assets. - Bump
package.json,src-tauri/Cargo.toml, andsrc-tauri/tauri.conf.jsonto the release version. - Run
bun run generate:packaging <version>. - Run
bun test tests/packagingManifests.test.ts. - Build and test the Chocolatey package with
choco pack. - Test the Scoop manifest in a disposable Windows environment.
- Test the AUR package with
makepkg -sion Arch Linux. - Publish Chocolatey, Scoop, and AUR metadata.