Required Tools and Versions
This document lists all required tools and their versions for the go-crypto-wallet project. Always verify tool versions before starting development work.
Overview
Before starting any development task, ensure all required tools are installed with the correct versions. Using incorrect versions may cause compatibility issues or unexpected behavior.
Essential Tools
Git
- Required: Yes
- Check version:
git --version - Installation: https://git-scm.com/
- Note: Any recent version should work
GitHub CLI (gh)
- Required: Yes (for custom slash commands:
fix-issue,fix-pr-review,create-github-issue) - Check version:
gh --version - Installation: https://cli.github.com/
- Authentication: Verify with
gh auth status, login withgh auth loginif needed - Note: Required for creating issues, viewing PRs, and managing GitHub resources
Go
- Required Version: Go 1.25.6 (specified in
go.mod) - Check version:
go version - Installation: https://go.dev/dl/
- Note: Must match the version specified in
go.mod(currentlygo 1.25.6)
Development Tools
golangci-lint
- Required Version: v2.8.0 (specified in
make/vars.mk) - Check version:
golangci-lint --version - Installation: See Coding Standards
- Note: Used for code linting and formatting
Atlas
Required Version: v1.0.0 (specified in
tools/atlas/atlas.hcl)Check version:
atlas versionInstallation:
bashbrew install arigaio/tap/atlas # or go install ariga.io/atlas/cmd/atlas@v1.0.0Note: CRITICAL - This project uses Atlas v1.0.0. Using older versions may not support required features. Always verify version before running Atlas commands.
Usage: Database schema management and migrations (see Database Management)
markdownlint-cli
Required: Optional (for Markdown file linting)
Check version:
markdownlint --versionornpx markdownlint-cli --versionInstallation:
bashnpm install -g markdownlint-cli # or use npx (no installation needed) npx markdownlint-cliNote: Used for linting Markdown files (
.md)
Docker
- Required: Yes (for database and blockchain node containers)
- Check version:
docker --version - Installation: https://docs.docker.com/get-docker/
- Note: Required for running MySQL, Bitcoin Core, Ethereum nodes, etc.
Docker Compose
- Required: Yes (Docker Compose v2 or later)
- Check version:
docker compose version - Installation: Included with Docker Desktop, or install separately from https://docs.docker.com/compose/install/
- Note: CRITICAL - This project uses
docker compose waitcommand which requires Docker Compose v2 or later. The olddocker-compose(v1, hyphenated) does not support thewaitcommand. Ensure you're usingdocker compose(space, v2) notdocker-compose(hyphen, v1). Requires Docker Compose v2.21 or later (seemake/db.mkfor details). - Usage: Database migrations and service orchestration (see
make/db.mk)
Version Verification
Before starting work, verify all required tools are installed and at the correct versions:
# Essential tools
git --version
gh --version
go version # Should show go1.25.6
# Development tools
golangci-lint --version # Should show v2.8.0
atlas version # Should show v1.0.0
# Optional tools
markdownlint --version # If using markdownlint
docker --version
docker compose version # Should show v2.x.x or laterIf any required tool is missing or at an incorrect version:
- Stop immediately
- Install or update the tool to the correct version
- Verify installation before proceeding
- Do not proceed with the workflow until all requirements are met
See Also
- Workflow Guidelines - Development workflow and common steps
- Database Management - Atlas usage for database migrations
- Coding Standards - golangci-lint configuration and usage