Changelog¶
Historial de versiones del proyecto (formato Keep a Changelog).
Changelog¶
Formato basado en Keep a Changelog y SemVer.
[No publicado]¶
Added¶
- Sitio de documentación con MkDocs Material + mkdocstrings: referencia API
auto-generada de los 4 módulos, guías, changelog integrado y aviso legal
como snippet reutilizable. Despliegue a GitHub Pages vía
.github/workflows/docs.yml(build--strict). Extra[docs]enpyproject.tomly URLDocumentationen los metadatos. - Galería de ejemplos
examples/(6 scripts ejecutables: cálculo básico, tasa secundaria, tabla API personalizada, ingesta CSV/JSON, manejo de errores y serialización JSON) con test anti-drift (tests/test_ejemplos.py) que verifica su salida en cada commit. - Documentación completada:
docs/quickstart.md(instalación, primer cálculo, lectura del resultado campo a campo) ydocs/contributing.md(calidad, convenciones y proceso de PR).
Security¶
- Endurecido el pipeline CI/CD: todas las GitHub Actions ancladas a SHA de
commit (antes tags mutables;
pypa/gh-action-pypi-publishapuntaba a la ramarelease/v1), permisoscontents: readde mínimo privilegio enci.yml/release.ymly versiones exactas fijadas parabuildytwineen el job que produce el artefacto publicado. - Cadena de suministro reproducible: lockfile
uv.lockcon hashes SHA256, instalación de dependencias en CI víauv sync --locked, nuevo jobauditconpip-audit --strictsobre las dependencias exportadas del lockfile y.github/dependabot.yml(ecosistemaspipygithub-actions). - Validación fail-fast de
gravedad_api: se rechazan valores no finitos (Infinity/NaN, aceptados antes porjson.loads) y fuera del rango físico(0, 80]; previamente un crudo con gravedad infinita producía una liquidación silenciosa. Cubierto por tests negativos vía dict y JSON.
[0.1.0] - 2026-08-23¶
Added¶
FluidoCrudo: validación física (BS&W, gravedad API) y cálculo de volumen neto.TasaLegal: tasas de regalía ordinaria (20 %, art. 42 LOH), banda secundaria (30 %, art. 43 LOH) y extrapesado (10 %, Faja Petrolífera del Orinoco).TablaAjusteApi: factores de ajuste API configurables (tabla oficial referencial).MotorRegalias: orden de liquidación inalterable (impurezas → precio ajustado → ingreso bruto → regalía) con aritméticaDecimal.- Adaptadores CSV/JSON (
ingesta.py) y marcadorpy.typed.