diff --git a/CLAUDE.md b/CLAUDE.md index ea2c9ca..82c8d32 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,9 +13,15 @@ comprimido (versión antigua)**. - **Versión actual: 2.1.15.0** (rama `limpieza-2.1.8.0`; `main` = 2.1.7.0) (`Net.Business.Services.csproj`: `Version`, `AssemblyVersion`, `FileVersion`). Cada versión tiene su commit; al publicar se sube la versión (ver `publicar.ps1`). +- **Semver** (desde la 2.1.15): `MAJOR.MINOR.PATCH`; el cuarto número del `csproj` (.NET lo pide) va siempre en `0`. + `MAJOR` = cambia el contrato de la API y el WMS debe adaptarse (campo obligatorio nuevo, ruta distinta); + `MINOR` = funcionalidad nueva compatible (endpoint o campo opcional nuevo, aviso en `Message`); + `PATCH` = corrección o limpieza sin cambio de contrato. Etiquetas de git nuevas sin el cuarto número (`v2.1.15`; + las anteriores, como `v2.1.7.0`, no se tocan). Una versión de prueba para QA puede ir en `Version` como + `2.2.0-rc.1`, pero `AssemblyVersion`/`FileVersion` solo aceptan dígitos (`2.2.0.0`). - **Git**: rama `main`, remoto `origin` = - `http://100.68.242.27:30000/george/itca_api_sap_wms.git` (HTTP sin cifrar, - red interna; confirmar que el repositorio sea **privado**). Etiqueta + `https://unasgeorge.vaquita-hadar.ts.net/george/itca_api_sap_wms.git` (cambiado desde + `http://100.68.242.27:30000/...`; confirmar que el repositorio sea **privado**). Etiqueta `v2.1.7.0` = último estado antes de la limpieza de código. - `appsettings.json` y `appsettings.*.json` están en `.gitignore` (solo se versiona `appsettings.example.json`); las credenciales no están en el diff --git a/README.md b/README.md index fed41b2..5f25afd 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,10 @@ dotnet publish Net.Business.Services/Net.Business.Services.csproj -c Release -r ## Versión y script de publish - La versión sale de ``/``/`` en - `Net.Business.Services/Net.Business.Services.csproj` (actual: **2.1.10.0** en la rama de limpieza; `main` = 2.1.7.0); - súbela en cada publish. + `Net.Business.Services/Net.Business.Services.csproj` (actual: **2.1.15.0** en la rama de limpieza; `main` = 2.1.7.0); + súbela en cada publish. Se usa **semver** (`MAJOR.MINOR.PATCH`, cuarto número del + `csproj` siempre `0`): `MAJOR` cambia el contrato de la API, `MINOR` agrega funcionalidad + compatible, `PATCH` corrige o limpia sin cambio de contrato (detalle en `CLAUDE.md`). - `publicar.ps1` (solo Windows) genera `dist\ITCA_API_SAP_WMS_v.zip` sin `appsettings.json`. Desde macOS se hace el mismo `dotnet publish` a mano con `-p:HanaDll=...`, se borran `appsettings.json`/`appsettings.Development.json` de diff --git a/publicar.ps1 b/publicar.ps1 index d27bbca..0355e58 100644 --- a/publicar.ps1 +++ b/publicar.ps1 @@ -8,6 +8,8 @@ Set-Location $PSScriptRoot $csproj = 'Net.Business.Services\Net.Business.Services.csproj' $version = ([xml](Get-Content $csproj)).Project.PropertyGroup.AssemblyVersion | Where-Object { $_ } | Select-Object -First 1 if (-not $version) { throw "No se encontró AssemblyVersion en $csproj" } +# Semver: el nombre lleva 3 numeros (2.1.15.0 -> 2.1.15); el cuarto del csproj siempre es 0 +$version = ($version -replace '\.0$', '') $out = "dist\ITCA_API_SAP_WMS_v$version" $zip = "dist\ITCA_API_SAP_WMS_v$version.zip"