SecInterp - Maintenance & Release Log¶
This document serves as the central record for project history, release procedures, and past refactoring analysis.
🚀 Release Process¶
Follow these steps to prepare and release a new version of SecInterp.
1. Preparation¶
Update Metadata: Increment
versioninmetadata.txt.Sync Project Brain: Update
.ai-context/project_brain.md.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.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:
[!NOTE] 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.