Repository navigation
kite 0.1.7
A release that pins the Kite a site builds with: kite.lock names the release, and kitew, written beside it, downloads that release, checks it and runs it, so the author's machine and the deploy build every commit with the same Kite.
Highlights
- kitew.
./kitew build, orkitew.ps1on Windows, runs the Kite releasekite.lockpins. The first time on a machine it downloads the release from GitHub, checks the archive against the release'schecksums.txtand that list against the sha256kite.lockrecords for it, and keeps the binary in the user's cache. A release whose files no longer match the pin is refused rather than run.KITE_DOWNLOAD_URLnames a mirror. - New sites are pinned.
kite init, and the setupkite runopens in a browser, writekitewandkitew.ps1and pin the release that ran them. The deploy workflow they write builds withsh ./kitew buildinstead of installing Go and compiling Kite on every deploy: faster, and the same bytes the author previewed with. - Moving the pin.
kite wrapperpins the running Kite, or the release--versionnames. When the Kite you run is not the one pinned,kite build,kite serveandkite doctorsay so, and System → Deploy in the studio shows which release builds the site and offers to build with the one running. Nothing changes until you say so. - Cloudflare Pages. The reference describes building a site there with
sh kitew build.
Fixes
kite.lockis published now. An install from the index wrote it, but neither the studio's publish norkite publish --allcommitted it, so a clone could not tell where its themes and plugins came from.- The container image builds the studio and the binary on the build machine's own platform. The arm64 image built them under emulation, where
pnpm installcould hang, as it did for 0.1.5 and 0.1.6.
Install
Download the archive for your system below, unpack it, put kite somewhere on your PATH, and run kite run in an empty folder. On macOS, xattr -d com.apple.quarantine kite lets a downloaded program run the first time.
To run a site on a server with Docker:
docker run -d --name kite --restart unless-stopped -p 127.0.0.1:1717:1717 -v kite-data:/data ghcr.io/kite-plus/kite:0.1.7Every archive can be checked against checksums.txt, and a given commit builds to the same binary on any machine.
Upgrading from 0.1.6
Replace the binary, or pull the new image.
- A site made before 0.1.7 pins nothing, and its deploy workflow keeps installing the Kite it names. To pin it, run
kite wrapperin the site, commitkitew,kitew.ps1andkite.lock, and change the workflow's build step fromkite buildtosh ./kitew build, removing the steps that install Go and Kite.kite doctorlists what is left to do. kite.locknow shows among what Kite publishes; if an earlier install from the index left it uncommitted, publish it once.
Notes
Kite is in early development. The reference covers kitew, kite wrapper and Cloudflare Pages. Builds that skip what has not changed are the rest of M6.
Every change in this release
Changelog
Features
- 12c8161: feat(api): pin the running release (@amigoer)
- 887989b: feat(cli): build with the pinned release via kitew (@amigoer)
- f5dd766: feat(lock): pin the kite release of a site (@amigoer)
- 5d5b202: feat(web): show which kite builds the site (@amigoer)
Fixes
- 95f4cd5: fix(docker): build on the runner's own platform (@amigoer)
- bc88bf3: fix(kitew): work in windows powershell under pwsh (@amigoer)
- c7d4b7f: fix(publish): publish kite.lock with its packages (@amigoer)
Documentation
- 3bfb676: docs: bring the roadmap up to 0.1.7 (@amigoer)
- e8a233f: docs: describe kitew and the pinned release (@amigoer)
Install
Download the archive for your platform, or pin the version in a project
so that local builds and CI agree:
./kitew build
Verify a download against checksums.txt before running it.