Files
euchre_camp/CHANGELOG.md
T
david 501e1b7e23
Release / release (push) Failing after 1m9s
Test / unit-tests (push) Successful in 2m5s
fix: version bumping and Docker registry authentication (#17)
## Summary

This PR fixes the release workflow to properly handle version bumping on PR merge and uses the new Docker registry authentication secrets.

## Changes

### Release Workflow (release.yml)
- **Version Bumping**: Now automatically bumps version on PR merge
  - Determines bump type from commit messages (major/minor/patch)
  - Commits version bump to `package.json` and `CHANGELOG.md`
  - Creates git tag for the release
- **Docker Registry Auth**: Uses `DOCKER_LOGIN` and `DOCKER_PASSWORD` secrets
  - Falls back gracefully if secrets are not configured
- **Tag Handling**: Checks if tag exists before creating (prevents failures)

### PR Workflow (pr.yml) - NEW
- Runs unit tests on every PR
- Analyzes commits to suggest bump type
- Comments the suggested bump type on the PR

### Documentation
- Added `WORKFLOW_ARCHITECTURE.md` explaining the workflow design

## Workflow Architecture

**Two-step process:**
1. **PR Workflow** (on PR): Analyzes commits and suggests bump type
2. **Release Workflow** (on merge): Bumps version, creates tag, builds Docker image

## Benefits

1. **No CI Loops**: Version bump commits are detected and skipped
2. **Clear Communication**: PR comments inform developers of version impact
3. **Semantic Versioning**: Automated adherence to semver rules
4. **Traceability**: Git tags and changelog reflect all changes

## Testing

The new workflows will be tested when this PR is merged.

Closes #13 (Add database test safety configuration)

Reviewed-on: #17
Co-authored-by: David Gwilliam <dhgwilliam@gmail.com>
Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
2026-04-01 05:03:14 +00:00

4.5 KiB

[0.1.2] - 2026-04-01

Patch Changes

  • fix: handle Docker registry authentication gracefully in release workflow
  • fix: run unit tests on branch commits, skip main branch
  • feat: add test workflow for every commit
  • trigger: release with test-capable image
  • feat: build test-capable image, run tests, then build production image
  • trigger: release workflow
  • fix: release workflow should not commit, only tag
  • trigger: manual workflow trigger for docker.notsosm.art
  • fix: update Docker build script to use docker.notsosm.art registry
  • fix: update workflow to use docker.notsosm.art registry
  • trigger: manual workflow trigger
  • fix: update workflow to use correct Docker registries
  • feat: add Gitea Actions release workflow
  • feat: add view match link to admin matches page

[0.1.1] - 2026-04-01

Patch Changes

  • Merge branch 'feat/database-test-safety' of ssh://git.notsosm.art/david/euchre_camp
  • fix: use ELO change instead of win rate for best partner calculation
  • fix: remove hardcoded passwords from docker-compose generation
  • fix: load .env.development in test setup files
  • fix: remove hardcoded database URLs and use environment variables
  • fix: set DATABASE_URL for acceptance tests
  • feat: add database test safety configuration
  • fix: allowTies not saved when editing tournaments (closes #6)
  • docs: add development database and testing documentation
  • feat: set up development database and test cleanup utilities
  • fix: improve availablePlayers query to handle undefined playerId
  • fix: handle empty playerId string in user edit API

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.0] - 2026-03-31

Added

  • Authentication System: Complete Better Auth integration with session management
  • Authorization (RBAC): Role-based access control with player, tournament_admin, club_admin, and site_admin roles
  • Tournament Management: Full CRUD operations with multiple formats (round-robin, single/double elimination, Swiss)
  • Rating Systems: Support for Elo, Glicko2, and OpenSkill rating calculations
  • Admin Panel: Comprehensive admin interface for managing players, tournaments, and matches
  • Player Profiles: Detailed player statistics with partnership analytics
  • Match Recording: CSV upload functionality for batch match entry
  • Development Database: Isolated development database for testing
  • Test Cleanup System: Automatic cleanup of test records
  • Production Database Cleanup: Tools to remove test data while preserving real data
  • Semantic Versioning: Git tagging and Docker image tagging system

Fixed

  • Session Refresh: Fixed navigation not updating immediately after login (closes #6)
  • allowTies Save Bug: Fixed "Allow Ties" checkbox not being saved when editing tournaments
  • Next.js 16 Compatibility: Fixed params Promise handling across all API routes and pages
  • Match Diagram Positioning: Fixed player positioning in match diagrams

Changed

  • Database: Migrated from SQLite to PostgreSQL with production-ready configuration
  • Docker: Updated image tagging to use versioned tags (e.g., v0.1.0, latest)
  • Testing: Improved test coverage with 103 passing unit tests
  • Documentation: Added comprehensive README with development setup instructions

Removed

  • N/A

[0.0.1] - Initial Development

Added

  • Basic database schema for Euchre tournament management
  • Initial Next.js application structure
  • Basic navigation and layout
  • Player rankings page

Release Process

This project follows semantic versioning (Semver):

  1. Version Format: MAJOR.MINOR.PATCH

    • MAJOR: Breaking changes (API changes, database migrations requiring data migration)
    • MINOR: New features (backward compatible)
    • PATCH: Bug fixes, security updates
  2. Pre-release Versions: MAJOR.MINOR.PATCH-alpha.N, MAJOR.MINOR.PATCH-beta.N, MAJOR.MINOR.PATCH-rc.N

  3. Creating a Release:

    # Bump version
    npm run version:patch  # or version:minor, version:major
    
    # Create git tag
    git tag -a v0.1.0 -m "Release v0.1.0"
    
    # Push changes and tag
    git push origin main
    git push origin v0.1.0
    
    # Build and push Docker images
    npm run docker:build:push
    
    # Create release in Gitea
    tea release create v0.1.0 --title "Release v0.1.0" --note-file CHANGELOG.md