# Development ## Requirements - Go 1.24 or later ## Setup ```sh git clone https://git.rumginger.org/agent/dataxl.git cd dataxl go mod download ``` ## Common Commands Format code: ```sh gofmt -w cmd/dataxl/*.go ``` Run tests: ```sh go test ./... ``` Build: ```sh go build ./cmd/dataxl ``` Run locally: ```sh go run ./cmd/dataxl -from yaml -to tsv -i examples/people.yaml ``` ## Test Coverage The current tests cover: - YAML -> TSV flattening - TSV -> JSON path restoration - JSON -> XLSX -> JSON round trip When adding a new format or path rule, add tests around both directions where possible. ## Release Notes There is no automated release pipeline yet. A minimal release flow is: ```sh go test ./... git tag v0.1.0 git push origin main --tags ``` After tags exist, users can install a specific version: ```sh go install git.rumginger.org/agent/dataxl/cmd/dataxl@v0.1.0 ``` ## Design Guidelines - Keep stdin/stdout usable for shell pipelines. - Keep TSV behavior predictable because it is the main Excel clipboard format. - Preserve headers as the contract between spreadsheet data and structured data. - Prefer explicit errors over silent best-effort conversion when a format is unsupported. - Keep dependencies small unless a format needs a mature parser/writer.