SecInterp - Maintenance & Release Log
This document serves as the central record for project history, release procedures, and past refactoring analysis.
[v2.10.0 Plan - Phase 1] - 2026-02-01
Focus: Quality Score > 60, QGIS 4.x Prep (PyQt5 cleanup), ExportService Refactor.
Goals: Eliminate technical debt in resources.py and reduce cyclomatic complexity in 3D exporters.
[Phase Closure v2.9.0] - ARCHITECTURAL CONSOLIDATION
Date: 2026-02-01
Focus: Core Domain Migration, Drillhole Service Decomposition, v2.9.0 Release Stabilization.
Outcome: 199 Tests Passing (100%). Quality Score: 54.3/100 (+9 pts). Official release published.
Reference: Phase Closure Document | Technical Analysis
[Phase Closure v2.8.0] - DEBT REDUCTION & UI IMPROVEMENTS
Date: 2026-01-25
Focus: Core Decoupling, Async Safety, Legend Visibility.
Outcome: 359 Tests Passing, Core-QGIS Decoupling finalized with WKT/DTO pattern.
Reference: Phase Closure Document
[v2.8.0 Plan - Phase 2] - 2026-01-24
[v2.7.0 Plan - Phase 1] - 2026-01-15
Mock Infrastructure Overhaul: Implemented
ModuleProxyandMockSignalto stabilize the QGIS test environment. Resolved attribute errors and reference loss during mock resets. AddedindexFromNametoMockQgsFieldsfor better API parity.Config Fix: Completed missing
reset_defaults()logic inConfigService.Workflow Update: Simplified
inicia-sesionby removingmake deployand standardizing the test execution command.
🚀 Release Process
[Unreleased]
Process
Follow these steps to prepare and release a new version of SecInterp.
1. Preparation
Update Metadata: Increment
versioninmetadata.txt.Sync AI Context: Update
AI_CONTEXT.mdandproject_context.json.Update Changelog: Add the new version to the top of the Project History section below.
Update User Guide: Ensure screenshots and feature descriptions in
docs/USER_GUIDE.mdare current.
2. Packaging (Clean Build)
To ensure no development files (like tests or .git) are included in the distribution zip, use the git archive method:
# Check exports-ignore in .gitattributes first
# Then run the package command
make package VERSION=main
mv sec_interp.zip sec_interp_vX.Y.Z.zip
3. Distribution & QGIS Repository
Tagging:
git tag vX.Y.Z -m "Release description"GitHub: Create a new Release and attach the ZIP.
QGIS Repo: Upload the ZIP to plugins.qgis.org.
⚠️ CRITICAL: The ZIP MUST contain a
LICENSEfile and NO__pycache__folders.The repository will reject any package with
.pycfiles for security reasons.Verified ZIP structure with
unzip -t sec_interp.zip.
📜 Project History
[2.7.0] - 2026-01-18
Operational Excellence & Documentation Overhaul:
Sphinx Integration: Automated documentation generation with
conf.py(autodoc/napoleon) andbuild_docs.sh.Link Recovery: Fixed 50+ broken links in
README.mdand aligned terminology with the new Sidebar-driven UI.Architecture Documentation: Added detailed records for the 3-Level Validation Architecture and
DialogInterpretationManager.i18n Cleanup: Wrapped all user-facing strings in
tr()and audited English/Spanish source.
Refactorización de Interfaz (Fase 2):
Introducción de
MessageManager,CacheHandler, ySettingsManagerpara fragmentar el diálogo principal (Reducción de ~700 líneas de código boilerplate).Bug Fix: Restaurados métodos proxy
_load_interpretationsy_load_user_settingspara retrocompatibilidad.
Testing Infrastructure (Dockerization):
Implemented
Dockerfileoptimized for QGIS headless testing.Added
make docker-buildandmake docker-testfor reproducible CI/CD environments.
Data Integrity & Core:
3-Level Validation: Hierarchical system (Type/Logic/Domain) ensuring data safety across all layers.
Centralized Logging: Refactored
logger_config.pyfor hierarchical propagation.
Enhanced 3D Export:
Implemented high-fidelity 3D output for drillhole traces and geological intervals (PolygonZ/LineStringZ).
[2.7.0] - (Planning) 2026-01-09
Infrastructure Planning:
Native Validation: Transition to
dataclassesbased models (replacing Pydantic proposal).External Sphinx: Strategy for out-of-repo documentation build and repository HTML cleanup.
Docker Consolidation: Planned
make docker-testintegration.
Enhanced 3D Export:
Design for Original and Projected 3D exports for Drillhole Traces and Intervals.
Planned UI integration in Settings/Advanced.
[2.6.1] - 2026-01-09
Stabilization:
Test Suite: Resolved major mock pollution issues and finalized 312 stable tests.
Mock Infrastructure: Implemented explicit
MockQListWidgetfor stable GUI inheritance.
Internationalization:
Translated Measure tool results and default interpretation naming.
[2.6.0] - 2026-01-05
Quality Assurance:
Native Integration Tests: Implementation of
BaseIntegrationTestfor headless QGIS execution.Workflow Validation: New automated tests for Interpretation, Measurement, and 3D Export using real QGIS API.
Docker Integration:
Full containerization of the test environment for CI/CD readiness.
Automated dependency management via
uvwithin Docker.Optimized build workflows with
.dockerignoreand permission handling.
Performance:
Benchmarks Suite: Implementation of performance tests for Geometry and Exports using
unittest.SLA Verification: Established baseline metrics for critical operations (Shapefile Write < 5s, Projection < 0.1s).
Architecture & Refactoring (2026-01-08):
Async Evolution: Refactored threading model to use
QgsTaskfor background geology generation, improving stability and preventing UI freezes.Exporter Modularization: Deep refactoring of all vector exporters (
shp,drillhole,profile,interpretation_3d) to reduce complexity (mccabe < 7) and improve modularity.Quality & Debt Cleanup: Significant improvement in type hint coverage (Params: 62.1% -> 76.4%) and documentation style across core services, tools, and UI pages.
Workflow Security: Implemented
conventional-pre-commitand restoredCOMMIT_GUIDELINES.mdto guarantee high-quality, parsable commits.Test Stability: Enhanced mocking infrastructure for asynchronous tasks and QGIS ecosystem components.
[2.5.0] - 2026-01-03
Major Features:
3D Export: Interpretation export as real 3D Shapefiles (PolygonZ).
Settings Hub: New sidebar page for plugin configuration management.
Documentation: User Guide fully integrated with screenshots.
Critical Fixes (Hotfixes):
Attribute Inheritance: Resolved regression in drillhole processing (tuple handling) and
GeologySegmentpolymorphism.Serialization: Fixed
QVariantJSON serialization error.
Workflow Optimization:
Context Awareness: Enhanced
.agent/workflows/(start/close) to mandate context analysis and logging, ensuring continuity.
Data Persistence: Overhauled
DialogSettingsManagerfor robust restoration with multi-scope support (SecInterp/SecInterpUI) and layer name fallback.Stability & QA:
Enabled project-wide Ruff rules (
F401,F841,I001).Implemented proactive auto-save on Preview and Dialog Accept.
Resolved critical
AttributeErrorin validation logic and Geology Rendering.Forced disk synchronization for configs (
sync()).
Test Infrastructure: Enhanced
MockQgsProjectandMockQWidgetto support persistence and modern Qt patterns.
[2.2.0] - 2025-12-22
Documentation Globalization: 100% of documentation (including Architecture) translated to English.
Build Optimization: Slimmed final ZIP package and removed redundant source code views from help.
Architectural Evolution: Moved main
SecInterpclass tosec_interp_plugin.py.Validation Refactor: Modularized
core/validation/package.GUI Decoupling: Fragmented
SecInterpDialoginto specialized managers.LOD Optimization: Implemented adaptive Level of Detail for previews.
[2.1.0] - 2025-12-17
Feature: Snap-Enabled Measurement Tool.
Fix: Resolved Snapping configuration attribute errors.
[2.0.0] - 2025-12-14
Feature: Full Drillhole Integration (Projection & Intervals).
Export: Added drillhole trace and interval Shapefile exporters.
[1.1.0] - 2025-12-12
Performance: Asynchronous parallel processing for geology.
Feature: Adaptive Sampling and Measurement Tool.
📁 Historical Refactoring Notes
For detailed information on past major refactoring sessions, refer to the following summaries:
Refactoring 2025-12-21: Significant reduction of
main_dialog.pysize (from 1k to ~300 lines) by moving logic to managers and core services. Seedocs/docsec/archive/for original walkthroughs if deep historical context is needed.
[Phase Closure v3.0.0] - RELEASE & INTERNATIONALIZATION
Date: 2026-02-14
Focus: Internationalization (i18n), Modular Services, Release Optimization.
Outcome: 8 Languages Supported, Package Size Reduced 99.6% (218KB), 361 Tests Passing.
Key Infra:
.qgisignore, GitHub Actions Security Scan (100/100).Reference: Phase Closure Document
[Phase Closure v2.7.0] - REFACTOR & STABILIZATION
Date: 2026-01-18
Focus: Validation Architecture, Docker Infrastructure, Sphinx Docs.
Outcome: 361 Tests Passing, 100% Mock Stability.
Reference: Phase Closure Document