Skip to content

Development

Allison Bayless edited this page Oct 18, 2026 · 1 revision

Development

TideFTP is a Go application built with Bubble Tea and TideUI.

Build and run

Clone the repository, then run the app:

git clone https://github.com/allisonhere/TideFTP.git
cd TideFTP
go run ./cmd/tideftp

Build a local binary:

go build -o tideftp ./cmd/tideftp

An untagged build reports version dev and does not check for updates.

Run the tests

The default suite is hermetic and does not require an FTP or SFTP server:

go test ./...
go test -race ./...
go vet ./...

Protocol tests use in-process SFTP and FTP servers. UI snapshots live in internal/ui/testdata. Refresh them only after reviewing the intended visual change:

go test ./internal/ui -update

Run tideftp --transfer-lab to test queue and recovery behavior with generated transfers. Transfer Lab does not contact a server or write real transfer data.

Release

Run ./release.sh for the guided release process. It runs the test suite, checks the worktree and branch, creates the release commit, pushes main, and pushes the selected version tag.

For a manual release:

  1. Add a ## vX.Y.Z section to CHANGELOG.md.
  2. Create and push the tag.
git tag vX.Y.Z
git push origin vX.Y.Z

The tag starts .github/workflows/release.yml. The workflow builds Linux and macOS archives for x86-64 and ARM64, writes SHA256SUMS, and creates the GitHub release.

This page describes source revision b1fb600.

Clone this wiki locally