TrevorS/gs4-tui

★ 0Forks 0GoGitHub ↗Compare

README

GemStone IV TUI

A modern Terminal User Interface (TUI) for GemStone IV, built with Go.

Overview

GemStone IV TUI provides a clean, efficient terminal-based interface for playing GemStone IV. This project focuses on providing a fast, responsive, and feature-rich client experience.

Features

  • Modern Go-based architecture
  • Clean terminal user interface
  • Comprehensive build system
  • Automated testing and CI/CD
  • Cross-platform support

Prerequisites

  • Go 1.23 or later
  • Git
  • Make (for build automation)

Quick Start

Installation

  1. Clone the repository:

    git clone https://github.com/trevor/gs4-tui.git
    cd gs4-tui
  2. Build the application:

    make build
  3. Run the application:

    make run

Development Setup

  1. Install development tools:

    make dev-setup
  2. Run tests:

    make test
  3. Format and lint code:

    make fmt
    make lint

Build Commands

Command Description
make build Build the application
make test Run tests
make test-coverage Run tests with coverage report
make fmt Format code
make lint Run linter
make vet Run go vet
make clean Clean build artifacts
make deps Download and tidy dependencies
make install Install the application
make run Run the application
make dev-setup Set up development environment
make all Run clean, fmt, lint, test, build
make help Show help message
make version Show version information

Project Structure

gs4-tui/
├── cmd/
│   └── gs4-tui/          # Main application entry point
├── internal/
│   └── app/              # Core application logic
├── pkg/
│   └── version/          # Version information
├── configs/              # Configuration files
├── docs/                 # Documentation
├── .github/
│   └── workflows/        # GitHub Actions CI/CD
├── Makefile             # Build system
├── go.mod               # Go module definition
└── README.md            # This file

Testing

Run the test suite:

make test

Generate coverage report:

make test-coverage

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass: make test
  6. Format and lint your code: make fmt && make lint
  7. Submit a pull request

Pre-commit Hooks

This project uses pre-commit hooks to ensure code quality. To install them:

pip install pre-commit
pre-commit install

CI/CD

The project uses GitHub Actions for continuous integration:

  • Tests: Run on Go 1.23 and 1.24
  • Linting: Code formatting and style checks
  • Build: Multi-platform builds (Linux, macOS, Windows)
  • Coverage: Test coverage reporting

License

This project is licensed under the MIT License - see the LICENSE file for details.

Version

Current version: 0.1.0-dev

To check the version:

./bin/gs4-tui --version

Contributors

TrevorS

Issues