From 34e0ea81c2801fe6fdb3b1d392df6513854dfbbc Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 19 Sep 2026 09:39:15 +0000 Subject: [PATCH] refactor(root): relocate the contributing guide into .github/ The estate canonical location is .github/CONTRIBUTING.md, which GitHub auto-discovers; the root copy is removed and references are updated in the same change. * .github/CONTRIBUTING.md (new) * CONTRIBUTING.adoc (deleted) * Justfile * README.adoc * REVERSIBILITY.adoc * bootstrap.sh --- .github/CONTRIBUTING.md | 304 ++++++++++++++++++++++++++++++++++++++++ CONTRIBUTING.adoc | 248 -------------------------------- Justfile | 2 +- README.adoc | 2 +- REVERSIBILITY.adoc | 2 +- bootstrap.sh | 2 +- 6 files changed, 308 insertions(+), 252 deletions(-) create mode 100644 .github/CONTRIBUTING.md delete mode 100644 CONTRIBUTING.adoc diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..86b34c5 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,304 @@ +# Contributing to Candy Crash + +Thank you for your interest in contributing to Candy Crash! This +document provides guidelines for contributing to the project. + +## Table of Contents + +- [Code of Conduct](#code-of-conduct) + +- [Getting Started](#getting-started) + +- [Development Workflow](#development-workflow) + +- [Coding Standards](#coding-standards) + +- [Testing Requirements](#testing-requirements) + +- [Commit Guidelines](#commit-guidelines) + +- [Pull Request Process](#pull-request-process) + +- [Security Vulnerabilities](#security-vulnerabilities) + +## Code of Conduct + +This project adheres to a Code of Conduct that all contributors are +expected to follow. Please read +CODE_OF_CONDUCT before +contributing. + +## Getting Started + +### Prerequisites + +- Ruby 3.3.6 + +- Rails 7.1.3 + +- SQLite3 + +- Node.js (for asset compilation) + +- Git + +### Setup Development Environment + +``` bash +# Clone the repository +git clone https://github.com/Hyperpolymath/candy-crash.git +cd candy-crash + +# Install dependencies +bundle install + +# Setup database +rails db:create db:migrate db:seed + +# Run tests +rspec + +# Start development server +rails server +``` + +## Development Workflow + +1. **Fork the repository** and create your branch from `main` + +2. **Make your changes** following our coding standards + +3. **Write tests** for new functionality + +4. **Update documentation** as needed + +5. **Run the test suite** and ensure all tests pass + +6. **Submit a pull request** + +### Branch Naming Convention + +- `feature/description` - New features + +- `fix/description` - Bug fixes + +- `docs/description` - Documentation updates + +- `refactor/description` - Code refactoring + +- `test/description` - Test additions/improvements + +## Coding Standards + +### Ruby Style Guide + +We follow the [Ruby Style Guide](https://rubystyle.guide/) with these +conventions: + +- **Indentation**: 2 spaces (no tabs) + +- **Line length**: 120 characters maximum + +- **Method length**: Keep methods under 10 lines when possible + +- **Class length**: Keep classes focused and under 100 lines + +### Rails Conventions + +- Keep controllers thin, models fat + +- Use service objects for complex business logic + +- Follow RESTful routing conventions + +- Use strong parameters for security + +- Write self-documenting code with clear naming + +### Code Quality Tools + +``` bash +# Run RuboCop for style checking +rubocop + +# Auto-fix violations +rubocop -a + +# Run Brakeman for security analysis +brakeman + +# Check for vulnerable dependencies +bundle audit check +``` + +## Testing Requirements + +### Test Coverage + +- All new features must include tests + +- Bug fixes should include regression tests + +- Aim for \>80% code coverage + +- Test both happy paths and error cases + +### Running Tests + +``` bash +# Run all tests +rspec + +# Run specific test file +rspec spec/models/user_spec.rb + +# Run with coverage report +COVERAGE=true rspec +``` + +### Test Structure + +- **Unit tests**: Test individual methods and classes + +- **Integration tests**: Test component interactions + +- **Request tests**: Test HTTP endpoints + +- **System tests**: Test user workflows (optional) + +## Commit Guidelines + +### Commit Message Format + + (): + + + +