Files
Mimante/Mimante/VERSIONING_IMPLEMENTATO.md
Alberto Balbo ef1bc92e67 fix: container ascolta su porta 8080 (non 5000)
Rimosso override esplicito porta HTTP in Program.cs: ora la porta è gestita solo da ASPNETCORE_URLS (default 8080), risolvendo il bug che impediva l’accesso web al container. Aggiornati Dockerfile, docker-compose.yml e documentazione per riflettere la nuova configurazione. Versione incrementata a 1.1.1 (PATCH). HTTPS resta disabilitato di default; configurazione centralizzata e override semplice via env. Aggiunti changelog, troubleshooting e script bump-version aggiornato.
2026-01-20 23:06:01 +01:00

7.1 KiB

?? SISTEMA VERSIONAMENTO IMPLEMENTATO

? Versione Corrente: 1.1.0

Data: 2025-01-18
Tipo: MINOR (nuove feature + bug fix)
Modifiche: Docker/Gitea Publishing Workflow + HTTPS Fix


?? File Creati/Aggiornati

Nuovi File

  1. CHANGELOG.md

    • Storico completo modifiche
    • Formato Keep a Changelog
    • Documentazione v1.1.0 completa
  2. VERSIONING.md

    • Guida sistema versionamento
    • Workflow di rilascio
    • Esempi pratici
    • Automazione
  3. bump-version.ps1

    • Script PowerShell automatico
    • Incrementa MAJOR/MINOR/PATCH
    • Aggiorna tutti i file coinvolti
    • Genera template CHANGELOG

File Aggiornati

  1. AutoBidder.csproj

    <!-- v1.1.0: Docker/Gitea publishing workflow + HTTPS fix -->
    <Version>1.1.0</Version>
    <AssemblyVersion>1.1.0.0</AssemblyVersion>
    <FileVersion>1.1.0.0</FileVersion>
    <InformationalVersion>1.1.0</InformationalVersion>
    
  2. Dockerfile

    LABEL org.opencontainers.image.version="1.1.0"
    

?? Come Usare il Sistema

Metodo 1: Script Automatico (CONSIGLIATO)

# Bug fix (1.1.0 ? 1.1.1)
.\bump-version.ps1 -Type patch

# Nuova feature (1.1.0 ? 1.2.0)
.\bump-version.ps1 -Type minor

# Breaking change (1.1.0 ? 2.0.0)
.\bump-version.ps1 -Type major

Lo script fa automaticamente:

  1. ? Incrementa versione in AutoBidder.csproj
  2. ? Aggiorna Dockerfile labels
  3. ? Aggiunge template in CHANGELOG.md
  4. ? Mostra prossimi passi

Metodo 2: Manuale

  1. Modifica AutoBidder.csproj:

    <Version>1.2.0</Version>
    
  2. Modifica Dockerfile:

    LABEL org.opencontainers.image.version="1.2.0"
    
  3. Aggiorna CHANGELOG.md:

    ## [1.2.0] - 2025-01-19
    
    ### ? Aggiunte
    - Nuova feature X
    
  4. Pubblica:

    dotnet publish /p:PublishProfile=GiteaRegistry
    

?? Workflow Completo di Rilascio

Step 1: Incrementa Versione

.\bump-version.ps1 -Type minor

Step 2: Compila CHANGELOG

Apri CHANGELOG.md e completa il template:

## [1.2.0] - 2025-01-19

### ? Aggiunte
- Feature notifiche email per aste vinte
- Configurazione SMTP in Settings

### ?? Modifiche
- Migliorato algoritmo calcolo statistiche

### ?? Correzioni
- Fix bug crash su asta annullata

Step 3: Commit Modifiche

git add AutoBidder.csproj Dockerfile CHANGELOG.md
git commit -m "chore: bump version to v1.2.0

- Feature notifiche email
- Fix bug crash asta annullata"

Step 4: Tag Git

git tag v1.2.0
git push origin docker --tags

Step 5: Pubblica Docker su Gitea

Da Visual Studio:

  • Tasto destro ? Pubblica ? GiteaRegistry

Da CLI:

dotnet publish /p:PublishProfile=GiteaRegistry

Step 6: Verifica Pubblicazione

# Controlla su Gitea
https://gitea.encke-hake.ts.net/Alby96/-/packages/container/autobidder

# Verifica tag creati
docker pull gitea.encke-hake.ts.net/alby96/autobidder:latest
docker pull gitea.encke-hake.ts.net/alby96/autobidder:1.2.0

?? Semantic Versioning

Versione Tipo Quando Usare Esempio
1.0.0 ? 2.0.0 MAJOR Breaking changes API cambiata, porta diversa
1.0.0 ? 1.1.0 MINOR Nuove feature Notifiche email, esportazione dati
1.0.0 ? 1.0.1 PATCH Bug fix Fix crash, correzione calcoli

Esempi Pratici

Bug Fix (PATCH):

.\bump-version.ps1 -Type patch
# 1.1.0 ? 1.1.1

Nuova Feature (MINOR):

.\bump-version.ps1 -Type minor
# 1.1.1 ? 1.2.0

Breaking Change (MAJOR):

.\bump-version.ps1 -Type major
# 1.2.0 ? 2.0.0

?? Tag Docker Generati

Dopo Pubblicazione v1.1.0

# Tag su Gitea
gitea.encke-hake.ts.net/alby96/autobidder:latest  ? v1.1.0
gitea.encke-hake.ts.net/alby96/autobidder:1.1.0   ? immutabile
gitea.encke-hake.ts.net/alby96/autobidder:1.0.0   ? ancora disponibile

Production Best Practice

? NON USARE latest in production:

# ERRATO
image: gitea.../autobidder:latest

? USA versione specifica:

# CORRETTO
image: gitea.../autobidder:1.1.0

Motivo: latest cambia ad ogni release, versione specifica è immutabile.


?? Gestione Hotfix

Scenario: Bug critico in production

Production usa: v1.1.0
Development è a: v1.2.0-dev

Workflow:

  1. Crea branch hotfix:

    git checkout -b hotfix/1.1.1 v1.1.0
    
  2. Applica fix:

    # Fix bug
    .\bump-version.ps1 -Type patch  # 1.1.0 ? 1.1.1
    
  3. Pubblica hotfix:

    git commit -m "fix: critical bug in auction monitoring"
    git tag v1.1.1
    git push origin hotfix/1.1.1 --tags
    dotnet publish /p:PublishProfile=GiteaRegistry
    
  4. Merge in main:

    git checkout docker
    git merge hotfix/1.1.1
    
  5. Aggiorna development:

    # Se necessario, cherry-pick il fix in v1.2.0-dev
    git cherry-pick <commit-hash>
    

?? Dashboard Versioni

Versioni Attive

Versione Stato Tag Docker Ambiente
1.1.0 ? Latest latest, 1.1.0 Production
1.0.0 ?? Deprecated 1.0.0 Legacy

Roadmap

Versione Tipo Piano Data Target
1.2.0 MINOR Notifiche email Feb 2025
1.3.0 MINOR API REST Mar 2025
2.0.0 MAJOR Refactor architettura Q2 2025

? Checklist Release

Prima di ogni release:

  • Versione incrementata in AutoBidder.csproj
  • Versione aggiornata in Dockerfile
  • CHANGELOG.md compilato con modifiche
  • Build locale testata
  • Container Docker testato localmente
  • Pubblicazione Gitea completata
  • Tag Git creato (v1.1.0)
  • Documentazione aggiornata (se necessario)
  • Migration guide scritta (per breaking changes)
  • Communication team/utenti (se applicabile)

Dopo la release:

  • Verifica immagine su Gitea
  • Test pull e deploy
  • Monitoraggio errori prime 24h
  • Aggiornamento deployment production

?? Benefici del Sistema

Prima (senza versioning)

  • ? Versioni non tracciate
  • ? Modifiche non documentate
  • ? Impossibile rollback a versione specifica
  • ? Difficile capire cosa è cambiato

Dopo (con versioning)

  • ? Ogni modifica tracciata con versione
  • ? CHANGELOG completo e leggibile
  • ? Rollback facile (docker pull .../:1.0.0)
  • ? Deploy controllati e verificabili
  • ? Automazione con script PowerShell
  • ? Tag Docker immutabili per production

?? Documenti di Riferimento

File Scopo
CHANGELOG.md Storico modifiche per utenti
VERSIONING.md Guida sistema per sviluppatori
bump-version.ps1 Automazione incremento versione
AutoBidder.csproj Fonte unica della verità (versione)
Dockerfile Metadata versione immagine

?? Versione attuale: 1.1.0 - Docker/Gitea Publishing Workflow

? Sistema di versionamento completamente implementato e operativo!