From 14d44d4b352d6e770b5c4b03a9bd4108b466aa69 Mon Sep 17 00:00:00 2001 From: TheSomsie Date: Fri, 19 Dec 2025 12:52:11 +0100 Subject: [PATCH] Add development guide for local QuickFIX/Go work This PR adds a DEVELOPMENT_GUIDE.md document to the repository root. - Summarizes prerequisites for working on QuickFIX/Go (Go toolchain, make, optional devcontainer). - Shows how to run the standard Go test suite with `go test ./...`. - Outlines the recommended flow for running acceptance tests using make targets. - Provides a suggested step-by-step workflow for contributors. --- DEVELOPMENT_GUIDE.md | 69 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 DEVELOPMENT_GUIDE.md diff --git a/DEVELOPMENT_GUIDE.md b/DEVELOPMENT_GUIDE.md new file mode 100644 index 000000000..4fa2fb11f --- /dev/null +++ b/DEVELOPMENT_GUIDE.md @@ -0,0 +1,69 @@ +# QuickFIX/Go – Development guide + +This document provides a short, practical checklist for working on QuickFIX/Go during local development. It complements the main `README.md` and `CONTRIBUTING.md`. + +## 1. Prerequisites + +- Go toolchain (Go 1.21+ is recommended, see the main README for current requirements) +- `make` +- Optional but recommended: + - Docker and VS Code if you want to use the devcontainer setup described in CONTRIBUTING + +Verify your Go installation: + +~~~bash +go version +~~~ + +## 2. Running unit tests + +To run the standard Go test suite: + +~~~bash +go test ./... +~~~ + +This should pass before you open a pull request. + +If you want to focus on a specific package: + +~~~bash +go test ./config +go test ./store +~~~ + +## 3. Acceptance tests overview + +QuickFIX/Go ships with a comprehensive acceptance test suite shared across QuickFIX implementations. Running these tests is slower, but very useful when touching protocol-level behaviour. + +Typical flow (see the main README and CONTRIBUTING for full details): + +~~~bash +# Generate FIX code from specs +make generate + +# Build the acceptance test server +make build-test-srv + +# Run acceptance tests +make accept +~~~ + +Acceptance tests require Ruby to be available in `PATH`. If you are using the provided devcontainer, Ruby is already installed. + +## 4. Suggested workflow for contributors + +1. Ensure Go and `make` are installed. +2. Make your code changes. +3. Run fast feedback: + - `go test ./...` +4. For protocol-sensitive changes, also run: + - `make generate` + - `make build-test-srv` + - `make accept` +5. Format your code using the standard Go tooling: + - `go fmt ./...` +6. Commit with a clear message and open a pull request describing: + - What you changed + - Why it is useful for QuickFIX/Go users + - Which test commands you ran locally