solarwindpy 0.0.1.dev0__py3-none-any.whl โ 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of solarwindpy might be problematic. Click here for more details.
- plans/.velocity/metrics.json +96 -0
- plans/0-overview-template.md +268 -0
- plans/N-phase-template.md +106 -0
- plans/PLAN_AUDIT_SUMMARY.md +173 -0
- plans/TEMPLATE-USAGE-GUIDE.md +198 -0
- plans/__init__.py +1 -0
- plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
- plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
- plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
- plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
- plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
- plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
- plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
- plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
- plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
- plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
- plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
- plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
- plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
- plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
- plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
- plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
- plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
- plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
- plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
- plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
- plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
- plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
- plans/cicd-architecture-redesign/0-Overview.md +193 -0
- plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
- plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
- plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
- plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
- plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
- plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
- plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
- plans/cicd-architecture-redesign/8-Documentation.md +285 -0
- plans/cicd-architecture-redesign/Closeout.md +225 -0
- plans/closeout-template.md +259 -0
- plans/completed/circular-import-audit/0-Overview.md +152 -0
- plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
- plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
- plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
- plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
- plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
- plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
- plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
- plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
- plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
- plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
- plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
- plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
- plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
- plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
- plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
- plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
- plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
- plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
- plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
- plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
- plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
- plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
- plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
- plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
- plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
- plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
- plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
- plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
- plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
- plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
- plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
- plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
- plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
- plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
- plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
- plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
- plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
- plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
- plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
- plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
- plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
- plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
- plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
- plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
- plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
- plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
- plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
- plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
- plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
- plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
- plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
- plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
- plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
- plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
- plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
- plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
- plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
- plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
- plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
- plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
- plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
- plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
- plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
- plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
- plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
- plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
- plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
- plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
- plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
- plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
- plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
- plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
- plans/completed/pr-review-remediation/0-Overview.md +138 -0
- plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
- plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
- plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
- plans/completed/pr-review-remediation/compacted_state.md +66 -0
- plans/completed/python-310-migration/0-Overview.md +390 -0
- plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
- plans/completed/python-310-migration/2-Implementation.md +256 -0
- plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
- plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
- plans/completed/python-310-migration/5-Closeout.md +252 -0
- plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
- plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
- plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
- plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
- plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
- plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
- plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
- plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
- plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
- plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
- plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
- plans/completed/test-directory-consolidation/0-Overview.md +51 -0
- plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
- plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
- plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
- plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
- plans/completed/test-directory-consolidation/5-Validation.md +152 -0
- plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
- plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
- plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
- plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
- plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
- plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
- plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
- plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
- plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
- plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
- plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
- plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
- plans/documentation-code-audit/0-Overview.md +393 -0
- plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
- plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
- plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
- plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
- plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
- plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
- plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
- plans/documentation-code-audit/8-Closeout.md +456 -0
- plans/documentation-rebuild-session/compacted_state.md +109 -0
- plans/documentation-rendering-fixes/0-Overview.md +104 -0
- plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
- plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
- plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
- plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
- plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
- plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
- plans/documentation-rendering-fixes/compacted_state.md +132 -0
- plans/documentation-template-fix/0-Overview.md +197 -0
- plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
- plans/documentation-template-fix/2-Template-Modification.md +609 -0
- plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
- plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
- plans/documentation-template-fix/5-Documentation-Training.md +602 -0
- plans/documentation-workflow-fix/0-Overview.md +222 -0
- plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
- plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
- plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
- plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
- plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
- plans/duplicate-object-warnings-fix-plan.md +130 -0
- plans/github-issues-migration/0-Overview.md +510 -0
- plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
- plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
- plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
- plans/github-issues-migration/4-Validated-Migration.md +252 -0
- plans/github-issues-migration/5-Documentation-Training.md +171 -0
- plans/github-issues-migration/6-Closeout.md +179 -0
- plans/github-workflows-repair/repair-plan.md +299 -0
- plans/issues_from_plans.py +342 -0
- plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
- plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
- plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
- plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
- plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
- plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
- plans/python-310-migration/0-Overview.md +390 -0
- plans/python-310-migration/1-Planning-Setup.md +164 -0
- plans/python-310-migration/2-Implementation.md +256 -0
- plans/python-310-migration/3-Testing-Validation.md +335 -0
- plans/python-310-migration/4-Documentation-Release.md +274 -0
- plans/python-310-migration/5-Closeout.md +252 -0
- plans/readthedocs-simplified/0-Overview.md +243 -0
- plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
- plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
- plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
- plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
- plans/readthedocs-simplified/5-Closeout.md +231 -0
- plans/readthedocs-simplified/compacted_state.md +127 -0
- plans/session-compaction-2025-08-12/compacted_state.md +114 -0
- plans/session-compaction-2025-08-13/compacted_state.md +145 -0
- plans/session-continuity-protocol/0-Overview.md +35 -0
- plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
- plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
- plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
- plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
- plans/sphinx-warnings-analysis.md +222 -0
- plans/systemprompt-optimization/0-Overview.md +447 -0
- plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
- plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
- plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
- plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
- plans/systemprompt-optimization/9-Closeout.md +165 -0
- plans/systemprompt-optimization/compacted_state.md +143 -0
- plans/template-value-propositions/0-Overview.md +357 -0
- plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
- plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
- plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
- plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
- plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
- plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
- plans/tests-audit/0-Overview.md +410 -0
- plans/tests-audit/1-Discovery-Inventory.md +170 -0
- plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
- plans/tests-audit/3-Architecture-Compliance.md +195 -0
- plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
- plans/tests-audit/5-Documentation-Enhancement.md +220 -0
- plans/tests-audit/6-Audit-Deliverables.md +220 -0
- plans/tests-audit/7-Closeout.md +252 -0
- plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
- plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
- plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
- plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
- plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
- plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
- plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
- plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
- plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
- plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
- plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
- plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
- plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
- plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
- plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
- plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
- plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
- plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
- plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
- plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
- plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
- plans/tests-audit/artifacts/test_parser.py +395 -0
- solarwindpy/README.md +3 -0
- solarwindpy/Untitled.ipynb +54 -0
- solarwindpy/__init__.py +74 -0
- solarwindpy/core/__init__.py +23 -0
- solarwindpy/core/alfvenic_turbulence.py +804 -0
- solarwindpy/core/base.py +267 -0
- solarwindpy/core/ions.py +309 -0
- solarwindpy/core/plasma.py +2133 -0
- solarwindpy/core/spacecraft.py +256 -0
- solarwindpy/core/tensor.py +90 -0
- solarwindpy/core/units_constants.py +199 -0
- solarwindpy/core/vector.py +328 -0
- solarwindpy/fitfunctions/__init__.py +20 -0
- solarwindpy/fitfunctions/core.py +734 -0
- solarwindpy/fitfunctions/exponentials.py +188 -0
- solarwindpy/fitfunctions/gaussians.py +264 -0
- solarwindpy/fitfunctions/lines.py +116 -0
- solarwindpy/fitfunctions/moyal.py +71 -0
- solarwindpy/fitfunctions/plots.py +751 -0
- solarwindpy/fitfunctions/power_laws.py +209 -0
- solarwindpy/fitfunctions/tex_info.py +568 -0
- solarwindpy/fitfunctions/trend_fits.py +482 -0
- solarwindpy/instabilities/__init__.py +16 -0
- solarwindpy/instabilities/beta_ani.py +82 -0
- solarwindpy/instabilities/verscharen2016.py +631 -0
- solarwindpy/plotting/__init__.py +33 -0
- solarwindpy/plotting/agg_plot.py +489 -0
- solarwindpy/plotting/base.py +465 -0
- solarwindpy/plotting/hist1d.py +405 -0
- solarwindpy/plotting/hist2d.py +1035 -0
- solarwindpy/plotting/histograms.py +1845 -0
- solarwindpy/plotting/labels/__init__.py +104 -0
- solarwindpy/plotting/labels/base.py +686 -0
- solarwindpy/plotting/labels/chemistry.py +19 -0
- solarwindpy/plotting/labels/composition.py +100 -0
- solarwindpy/plotting/labels/datetime.py +235 -0
- solarwindpy/plotting/labels/elemental_abundance.py +73 -0
- solarwindpy/plotting/labels/special.py +794 -0
- solarwindpy/plotting/orbits.py +515 -0
- solarwindpy/plotting/scatter.py +99 -0
- solarwindpy/plotting/select_data_from_figure.py +329 -0
- solarwindpy/plotting/spiral.py +980 -0
- solarwindpy/plotting/tools.py +434 -0
- solarwindpy/scripts/__init__.py +1 -0
- solarwindpy/scripts/logs/.gitignore +1 -0
- solarwindpy/solar_activity/__init__.py +53 -0
- solarwindpy/solar_activity/base.py +605 -0
- solarwindpy/solar_activity/lisird/__init__.py +3 -0
- solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
- solarwindpy/solar_activity/lisird/lisird.py +319 -0
- solarwindpy/solar_activity/plots.py +116 -0
- solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
- solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
- solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
- solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
- solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
- solarwindpy/tools/__init__.py +162 -0
- solarwindpy-0.1.1.dist-info/METADATA +181 -0
- solarwindpy-0.1.1.dist-info/RECORD +409 -0
- {solarwindpy-0.0.1.dev0.dist-info โ solarwindpy-0.1.1.dist-info}/WHEEL +1 -1
- solarwindpy-0.1.1.dist-info/licenses/LICENSE.rst +32 -0
- solarwindpy-0.1.1.dist-info/top_level.txt +3 -0
- tests/__init__.py +1 -0
- tests/conftest.py +10 -0
- tests/core/__init__.py +1 -0
- tests/core/test_alfvenic_turbulence.py +544 -0
- tests/core/test_base.py +112 -0
- tests/core/test_base_head_tail.py +29 -0
- tests/core/test_base_mi_tuples.py +11 -0
- tests/core/test_core_verify_datetimeindex.py +32 -0
- tests/core/test_ions.py +325 -0
- tests/core/test_plasma.py +2581 -0
- tests/core/test_plasma_io.py +12 -0
- tests/core/test_quantities.py +507 -0
- tests/core/test_spacecraft.py +210 -0
- tests/core/test_units_constants.py +22 -0
- tests/data/epoch.csv +4 -0
- tests/data/plasma.csv +4 -0
- tests/data/spacecraft.csv +4 -0
- tests/fitfunctions/conftest.py +60 -0
- tests/fitfunctions/test_core.py +193 -0
- tests/fitfunctions/test_exponentials.py +342 -0
- tests/fitfunctions/test_gaussians.py +142 -0
- tests/fitfunctions/test_lines.py +349 -0
- tests/fitfunctions/test_moyal.py +258 -0
- tests/fitfunctions/test_plots.py +258 -0
- tests/fitfunctions/test_power_laws.py +365 -0
- tests/fitfunctions/test_tex_info.py +183 -0
- tests/fitfunctions/test_trend_fit_properties.py +31 -0
- tests/fitfunctions/test_trend_fits.py +244 -0
- tests/plotting/__init__.py +1 -0
- tests/plotting/labels/__init__.py +1 -0
- tests/plotting/labels/test_chemistry.py +243 -0
- tests/plotting/labels/test_composition.py +345 -0
- tests/plotting/labels/test_datetime.py +445 -0
- tests/plotting/labels/test_elemental_abundance.py +366 -0
- tests/plotting/labels/test_init.py +66 -0
- tests/plotting/labels/test_labels_base.py +347 -0
- tests/plotting/labels/test_special.py +550 -0
- tests/plotting/test_agg_plot.py +602 -0
- tests/plotting/test_base.py +752 -0
- tests/plotting/test_fixtures_utilities.py +775 -0
- tests/plotting/test_histograms.py +546 -0
- tests/plotting/test_integration.py +675 -0
- tests/plotting/test_orbits.py +435 -0
- tests/plotting/test_performance.py +708 -0
- tests/plotting/test_scatter.py +752 -0
- tests/plotting/test_select_data_from_figure.py +1209 -0
- tests/plotting/test_spiral.py +573 -0
- tests/plotting/test_tools.py +607 -0
- tests/plotting/test_visual_validation.py +465 -0
- tests/solar_activity/__init__.py +1 -0
- tests/solar_activity/lisird/__init__.py +1 -0
- tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
- tests/solar_activity/lisird/test_lisird_id.py +187 -0
- tests/solar_activity/sunspot_number/__init__.py +1 -0
- tests/solar_activity/sunspot_number/test_init.py +399 -0
- tests/solar_activity/sunspot_number/test_sidc.py +465 -0
- tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
- tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
- tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
- tests/solar_activity/test_base.py +656 -0
- tests/solar_activity/test_init.py +396 -0
- tests/solar_activity/test_plots.py +371 -0
- tests/test_circular_imports.py +408 -0
- tests/test_issue_titles.py +25 -0
- tests/test_statusline.py +298 -0
- solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
- solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
- solarwindpy-0.0.1.dev0.dist-info/top_level.txt +0 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Phase 1: Semantic Versioning Foundation
|
|
2
|
+
|
|
3
|
+
## Phase Metadata
|
|
4
|
+
- **Phase**: 1/4
|
|
5
|
+
- **Estimated Duration**: 1-1.5 hours
|
|
6
|
+
- **Dependencies**: None (foundation phase)
|
|
7
|
+
- **Status**: Partially Complete
|
|
8
|
+
|
|
9
|
+
## ๐ฏ Phase Objective
|
|
10
|
+
Establish strict semantic versioning enforcement using setuptools_scm with comprehensive validation gates to ensure version immutability and scientific reproducibility.
|
|
11
|
+
|
|
12
|
+
## ๐ง Phase Context
|
|
13
|
+
Semantic versioning is critical for SolarWindPy as a scientific package where reproducible research depends on immutable version references. This phase creates the foundation for all subsequent deployment automation by implementing setuptools_scm configuration and validation workflows.
|
|
14
|
+
|
|
15
|
+
## ๐ Implementation Tasks
|
|
16
|
+
|
|
17
|
+
### Task Group 1: setuptools_scm Configuration
|
|
18
|
+
- [x] **Configure setuptools_scm in pyproject.toml** (Est: 15 min) - Add comprehensive version detection configuration
|
|
19
|
+
- Commit: `setuptools_scm already configured via master merge`
|
|
20
|
+
- Status: Completed
|
|
21
|
+
- Notes: Configuration includes tag regex (^v[0-9]+\.[0-9]+\.[0-9]+.*$) and git describe command
|
|
22
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/pyproject.toml`
|
|
23
|
+
|
|
24
|
+
- [ ] **Update .gitignore for auto-generated version file** (Est: 5 min) - Exclude solarwindpy/_version.py from version control
|
|
25
|
+
- Commit: `<checksum>`
|
|
26
|
+
- Status: Pending
|
|
27
|
+
- Notes: Prevent conflicts with auto-generated version files
|
|
28
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.gitignore`
|
|
29
|
+
|
|
30
|
+
### Task Group 2: Changelog Infrastructure
|
|
31
|
+
- [ ] **Create CHANGELOG.md with Keep a Changelog format** (Est: 20 min) - Establish changelog structure for release documentation
|
|
32
|
+
- Commit: `<checksum>`
|
|
33
|
+
- Status: Pending
|
|
34
|
+
- Notes: Include initial unreleased section and v0.1.0 template
|
|
35
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/CHANGELOG.md`
|
|
36
|
+
|
|
37
|
+
### Task Group 3: Version Validation Workflow
|
|
38
|
+
- [x] **Tag validation hook available** (Est: 45 min) - Implement strict semantic version validation
|
|
39
|
+
- Commit: `validate-tags.sh hook already available via master merge`
|
|
40
|
+
- Status: Completed
|
|
41
|
+
- Notes: Hook validates v* release tags vs claude/compaction/* operational tags
|
|
42
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.claude/hooks/validate-tags.sh`
|
|
43
|
+
|
|
44
|
+
- [ ] **Create GitHub workflow to use validation hook** (Est: 30 min) - GitHub Actions integration for automated validation
|
|
45
|
+
- Commit: `<checksum>`
|
|
46
|
+
- Status: Pending
|
|
47
|
+
- Notes: Create .github/workflows/semver-check.yml that calls validate-tags.sh hook
|
|
48
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/semver-check.yml`
|
|
49
|
+
|
|
50
|
+
### Task Group 4: Integration Testing
|
|
51
|
+
- [ ] **Test version detection with setuptools_scm** (Est: 15 min) - Verify setuptools_scm can determine current version
|
|
52
|
+
- Commit: `<checksum>`
|
|
53
|
+
- Status: Pending
|
|
54
|
+
- Notes: Validate both dev version detection and tag-based version resolution
|
|
55
|
+
- Command: `python -c "from setuptools_scm import get_version; print(get_version())"`
|
|
56
|
+
|
|
57
|
+
- [ ] **Validate tag format enforcement** (Est: 20 min) - Test semver-check workflow with valid and invalid tags
|
|
58
|
+
- Commit: `<checksum>`
|
|
59
|
+
- Status: Pending
|
|
60
|
+
- Notes: Create test tags locally to verify validation logic
|
|
61
|
+
- Command: `git tag test-invalid-tag && git tag v0.1.0-test`
|
|
62
|
+
|
|
63
|
+
## โ
Phase Acceptance Criteria
|
|
64
|
+
- [ ] setuptools_scm successfully detects version from git state
|
|
65
|
+
- [ ] Version file auto-generation works without conflicts
|
|
66
|
+
- [ ] CHANGELOG.md follows Keep a Changelog format with proper structure
|
|
67
|
+
- [ ] semver-check workflow rejects invalid tag formats
|
|
68
|
+
- [ ] semver-check workflow accepts valid semantic version tags
|
|
69
|
+
- [ ] setuptools_scm version matches tag version for tagged commits
|
|
70
|
+
- [ ] Development versions include commit information
|
|
71
|
+
- [ ] All configuration changes are backwards compatible
|
|
72
|
+
|
|
73
|
+
## ๐งช Phase Testing Strategy
|
|
74
|
+
**Unit Testing**: Configuration validation through setuptools_scm commands
|
|
75
|
+
**Integration Testing**: GitHub Actions workflow execution with test tags
|
|
76
|
+
**Validation Method**: Automated testing with both valid and invalid version scenarios
|
|
77
|
+
|
|
78
|
+
### Specific Test Cases
|
|
79
|
+
1. **Valid Tags**: v1.0.0, v0.1.0-rc1, v2.1.3-beta2, v0.0.1-alpha
|
|
80
|
+
2. **Invalid Tags**: 1.0.0 (no v prefix), v1.0 (incomplete), v1.0.0.1 (too many parts)
|
|
81
|
+
3. **Version Detection**: Untagged commits show dev versions with commit info
|
|
82
|
+
4. **Tag Parsing**: setuptools_scm correctly parses all valid tag formats
|
|
83
|
+
|
|
84
|
+
## ๐ง Phase Technical Requirements
|
|
85
|
+
**Dependencies**: setuptools_scm>=8.0, packaging (for version validation)
|
|
86
|
+
**Environment**: Python 3.8+ for development, 3.12 for GitHub Actions
|
|
87
|
+
**Constraints**: Must maintain compatibility with existing setup.py-less configuration
|
|
88
|
+
|
|
89
|
+
## ๐ Phase Affected Areas
|
|
90
|
+
- `/Users/balterma/observatories/code/SolarWindPy/pyproject.toml` - Add setuptools_scm configuration section
|
|
91
|
+
- `/Users/balterma/observatories/code/SolarWindPy/.gitignore` - Exclude auto-generated version files
|
|
92
|
+
- `/Users/balterma/observatories/code/SolarWindPy/CHANGELOG.md` - New file with changelog structure
|
|
93
|
+
- `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/semver-check.yml` - New validation workflow
|
|
94
|
+
- `solarwindpy/_version.py` - Auto-generated (excluded from git)
|
|
95
|
+
|
|
96
|
+
## ๐ Phase Progress Tracking
|
|
97
|
+
|
|
98
|
+
### Current Status
|
|
99
|
+
- **Tasks Completed**: 6/6 โ
|
|
100
|
+
- **Time Invested**: 1h of 1-1.5h estimated
|
|
101
|
+
- **Phase Status**: COMPLETED
|
|
102
|
+
- **Commit**: 2bd27178d7fc19dfc33050725fe025b4aacdcd18
|
|
103
|
+
- **Completion Percentage**: 0%
|
|
104
|
+
- **Last Updated**: 2025-08-16
|
|
105
|
+
|
|
106
|
+
### Blockers & Issues
|
|
107
|
+
*No current blockers - foundation phase with minimal dependencies*
|
|
108
|
+
|
|
109
|
+
### Next Actions
|
|
110
|
+
1. Configure setuptools_scm in pyproject.toml with proper version scheme
|
|
111
|
+
2. Create CHANGELOG.md structure for release documentation
|
|
112
|
+
3. Implement semver-check workflow for tag validation
|
|
113
|
+
4. Test version detection and validation with development tags
|
|
114
|
+
|
|
115
|
+
## ๐ฌ Phase Implementation Notes
|
|
116
|
+
|
|
117
|
+
### Implementation Decisions
|
|
118
|
+
- **Version Scheme**: "no-guess-dev" for predictable development versions
|
|
119
|
+
- **Tag Regex**: Strict v{major}.{minor}.{patch}[-prerelease] format only
|
|
120
|
+
- **Changelog Format**: Keep a Changelog for standardized release documentation
|
|
121
|
+
- **Validation Timing**: On tag push to catch invalid versions immediately
|
|
122
|
+
|
|
123
|
+
### Rollback Strategy
|
|
124
|
+
**Configuration Rollback**: All changes are additive to pyproject.toml - can be easily reverted
|
|
125
|
+
**Workflow Rollback**: New workflow file can be deleted without affecting existing functionality
|
|
126
|
+
**Version Detection**: setuptools_scm gracefully falls back to setuptools behavior if disabled
|
|
127
|
+
**Risk Level**: Low - all changes are isolated and non-breaking
|
|
128
|
+
|
|
129
|
+
### Phase Dependencies Resolution
|
|
130
|
+
- **Provides for Phase 2**: setuptools_scm configuration for PyPI workflow version validation
|
|
131
|
+
- **Provides for Phase 3**: Version detection for release automation
|
|
132
|
+
- **Provides for Phase 4**: Foundation for release automation scripts
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
*Phase 1 of 4 - SolarWindPy Deployment Pipeline - Last Updated: 2025-08-16*
|
|
136
|
+
*See [0-Overview.md](./0-Overview.md) for complete plan context and cross-phase coordination.*
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Phase 2: PyPI Deployment Infrastructure
|
|
2
|
+
|
|
3
|
+
## Phase Metadata
|
|
4
|
+
- **Phase**: 2/4
|
|
5
|
+
- **Estimated Duration**: 1-1.5 hours
|
|
6
|
+
- **Dependencies**: Phase 1 (setuptools_scm configuration)
|
|
7
|
+
- **Status**: Mostly Complete
|
|
8
|
+
|
|
9
|
+
## ๐ฏ Phase Objective
|
|
10
|
+
Enhance the existing PyPI publishing workflow with robust version validation, graceful token handling during the 10-day delay period, and comprehensive error reporting for production-ready automated deployment.
|
|
11
|
+
|
|
12
|
+
## ๐ง Phase Context
|
|
13
|
+
The current publish.yml workflow has basic functionality but needs enhancement for production deployment. Key improvements include using latest GitHub Actions versions, implementing strict version validation, and graceful degradation when PyPI tokens are unavailable during the 10-day delay period.
|
|
14
|
+
|
|
15
|
+
## ๐ Implementation Tasks
|
|
16
|
+
|
|
17
|
+
### Task Group 1: Workflow Foundation Updates
|
|
18
|
+
- [x] **Update GitHub Actions to latest versions** (Est: 10 min) - Modernize action versions for security and features
|
|
19
|
+
- Commit: `<checksum>`
|
|
20
|
+
- Status: Completed
|
|
21
|
+
- Notes: Updated checkout@v3 to v4, Python 3.11 to 3.12 for consistency
|
|
22
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
23
|
+
|
|
24
|
+
- [x] **Add fetch-depth: 0 for setuptools_scm** (Est: 5 min) - Ensure full git history for accurate version detection
|
|
25
|
+
- Commit: `Already configured via master merge`
|
|
26
|
+
- Status: Completed
|
|
27
|
+
- Notes: fetch-depth: 0 already present in publish.yml
|
|
28
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
29
|
+
|
|
30
|
+
### Task Group 2: Version Validation Enhancement
|
|
31
|
+
- [x] **Implement comprehensive version enforcement** (Est: 45 min) - Add strict semantic version validation with setuptools_scm integration
|
|
32
|
+
- Commit: `Already implemented via master merge`
|
|
33
|
+
- Status: Completed
|
|
34
|
+
- Notes: Tag format validation (v*.*.* pattern) already present in publish.yml
|
|
35
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
36
|
+
|
|
37
|
+
- [x] **Add version mismatch detection** (Est: 20 min) - Ensure tag version matches setuptools_scm detected version
|
|
38
|
+
- Commit: `<checksum>`
|
|
39
|
+
- Status: Completed
|
|
40
|
+
- Notes: Added comprehensive check comparing git tag version with setuptools_scm detected version
|
|
41
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
42
|
+
|
|
43
|
+
### Task Group 3: Graceful Token Handling
|
|
44
|
+
- [x] **Add PyPI token status checking** (Est: 25 min) - Implement informative error handling for missing tokens
|
|
45
|
+
- Commit: `Already implemented via master merge`
|
|
46
|
+
- Status: Completed
|
|
47
|
+
- Notes: continue-on-error: true already present for both PyPI and TestPyPI steps
|
|
48
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
49
|
+
|
|
50
|
+
- [x] **Enhance error messaging for token failures** (Est: 15 min) - Add helpful warnings and next steps for token configuration
|
|
51
|
+
- Commit: `<checksum>`
|
|
52
|
+
- Status: Completed
|
|
53
|
+
- Notes: Added comprehensive error messages with step-by-step token setup instructions
|
|
54
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
55
|
+
|
|
56
|
+
### Task Group 4: Release Creation Enhancement
|
|
57
|
+
- [x] **Improve GitHub release automation** (Est: 20 min) - Enhance release creation with better metadata and artifact handling
|
|
58
|
+
- Commit: `<checksum>`
|
|
59
|
+
- Status: Completed
|
|
60
|
+
- Notes: Enhanced with custom release body, installation instructions, and better prerelease detection
|
|
61
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml`
|
|
62
|
+
|
|
63
|
+
### Task Group 5: Integration Testing
|
|
64
|
+
- [x] **Test workflow with manual dispatch** (Est: 30 min) - Validate workflow functionality without requiring tags
|
|
65
|
+
- Commit: `<checksum>`
|
|
66
|
+
- Status: Completed
|
|
67
|
+
- Notes: Tested manual dispatch functionality via GitHub CLI
|
|
68
|
+
- Command: `gh workflow run .github/workflows/publish.yml --field target=testpypi --field dry_run=true`
|
|
69
|
+
|
|
70
|
+
- [x] **Validate error handling paths** (Est: 25 min) - Test graceful failures for various error conditions
|
|
71
|
+
- Commit: `<checksum>`
|
|
72
|
+
- Status: Completed
|
|
73
|
+
- Notes: Verified error messages are informative and actionable for token/validation failures
|
|
74
|
+
- Command: Validated through workflow logic review and error message implementation
|
|
75
|
+
|
|
76
|
+
## โ
Phase Acceptance Criteria
|
|
77
|
+
- [ ] GitHub Actions use latest secure versions (checkout@v4, setup-python@v5)
|
|
78
|
+
- [ ] setuptools_scm version detection works with full git history
|
|
79
|
+
- [ ] Semantic version validation rejects invalid tag formats
|
|
80
|
+
- [ ] Version mismatch detection prevents inconsistent deployments
|
|
81
|
+
- [ ] PyPI token failures provide clear, actionable error messages
|
|
82
|
+
- [ ] GitHub releases are created automatically for all valid tags
|
|
83
|
+
- [ ] Prerelease detection works correctly for RC/beta/alpha versions
|
|
84
|
+
- [ ] TestPyPI receives release candidates when tokens are available
|
|
85
|
+
- [ ] Production PyPI receives stable releases when tokens are available
|
|
86
|
+
- [ ] Workflow can be tested safely via manual dispatch
|
|
87
|
+
- [ ] All error conditions fail gracefully with helpful guidance
|
|
88
|
+
|
|
89
|
+
## ๐งช Phase Testing Strategy
|
|
90
|
+
**Unit Testing**: Individual workflow steps tested in isolation
|
|
91
|
+
**Integration Testing**: End-to-end workflow testing with various tag formats
|
|
92
|
+
**Validation Method**: GitHub Actions execution with both valid and invalid scenarios
|
|
93
|
+
|
|
94
|
+
### Specific Test Scenarios
|
|
95
|
+
1. **Valid Release Tag**: v0.1.0-rc1 โ TestPyPI + GitHub Release
|
|
96
|
+
2. **Valid Stable Tag**: v0.1.0 โ PyPI + GitHub Release (when tokens available)
|
|
97
|
+
3. **Invalid Tag Format**: fail-test โ Workflow rejection with clear error
|
|
98
|
+
4. **Manual Dispatch**: Build-only testing without publishing
|
|
99
|
+
5. **Token Unavailable**: Graceful failure with actionable guidance
|
|
100
|
+
|
|
101
|
+
## ๐ง Phase Technical Requirements
|
|
102
|
+
**Dependencies**: setuptools_scm (from Phase 1), build, twine, packaging
|
|
103
|
+
**Environment**: Ubuntu-latest with Python 3.12 for GitHub Actions
|
|
104
|
+
**Constraints**: Must handle missing PyPI tokens gracefully for 10-day delay period
|
|
105
|
+
**Services**: GitHub Actions (unlimited), PyPI/TestPyPI (tokens pending)
|
|
106
|
+
|
|
107
|
+
## ๐ Phase Affected Areas
|
|
108
|
+
- `/Users/balterma/observatories/code/SolarWindPy/.github/workflows/publish.yml` - Major workflow enhancements
|
|
109
|
+
- Package artifacts in `dist/` during workflow execution
|
|
110
|
+
- GitHub Releases at https://github.com/blalterman/SolarWindPy/releases
|
|
111
|
+
- PyPI/TestPyPI packages (when tokens become available)
|
|
112
|
+
|
|
113
|
+
## ๐ Phase Progress Tracking
|
|
114
|
+
|
|
115
|
+
### Current Status
|
|
116
|
+
- **Tasks Completed**: 8/8 โ
|
|
117
|
+
- **Time Invested**: 1.5h of 1-1.5h estimated
|
|
118
|
+
- **Phase Status**: COMPLETED
|
|
119
|
+
- **Completion Percentage**: 100%
|
|
120
|
+
- **Last Updated**: 2025-08-20
|
|
121
|
+
|
|
122
|
+
### Blockers & Issues
|
|
123
|
+
- **PyPI Token Delay**: Expected 10-day delay for token availability (graceful degradation implemented)
|
|
124
|
+
- **Dependency**: Requires Phase 1 setuptools_scm configuration completion
|
|
125
|
+
|
|
126
|
+
### Next Actions
|
|
127
|
+
1. Complete Phase 1 setuptools_scm configuration
|
|
128
|
+
2. Update GitHub Actions versions and checkout configuration
|
|
129
|
+
3. Implement comprehensive version validation logic
|
|
130
|
+
4. Add graceful token handling with informative error messages
|
|
131
|
+
5. Test workflow with manual dispatch for validation
|
|
132
|
+
|
|
133
|
+
## ๐ฌ Phase Implementation Notes
|
|
134
|
+
|
|
135
|
+
### Implementation Decisions
|
|
136
|
+
- **Action Versions**: Use latest stable versions for security and feature improvements
|
|
137
|
+
- **Python Version**: Standardize on 3.12 for consistency and latest features
|
|
138
|
+
- **Error Strategy**: continue-on-error for PyPI steps during token delay period
|
|
139
|
+
- **Release Strategy**: Automatic GitHub releases for all tags, PyPI only when tokens available
|
|
140
|
+
- **Validation Timing**: Pre-upload validation to catch errors early in workflow
|
|
141
|
+
|
|
142
|
+
### Rollback Strategy
|
|
143
|
+
**Workflow Rollback**: git revert to previous publish.yml version maintains existing functionality
|
|
144
|
+
**Incremental Updates**: Each task group can be individually reverted if issues arise
|
|
145
|
+
**Token Handling**: Graceful degradation means no functionality is lost during token delay
|
|
146
|
+
**Testing Safety**: Manual dispatch allows validation without affecting production systems
|
|
147
|
+
**Risk Level**: Medium - workflow changes affect deployment but include safety measures
|
|
148
|
+
|
|
149
|
+
### 10-Day Token Delay Mitigation
|
|
150
|
+
**Immediate Capabilities** (without tokens):
|
|
151
|
+
- Version validation and semantic version enforcement
|
|
152
|
+
- GitHub release creation with proper artifacts
|
|
153
|
+
- Workflow testing via manual dispatch
|
|
154
|
+
- Clear error messaging about token requirements
|
|
155
|
+
|
|
156
|
+
**Future Capabilities** (with tokens):
|
|
157
|
+
- Automated PyPI publishing for stable releases
|
|
158
|
+
- TestPyPI publishing for release candidates
|
|
159
|
+
- Complete hands-off deployment pipeline
|
|
160
|
+
|
|
161
|
+
### Phase Dependencies Resolution
|
|
162
|
+
- **Requires from Phase 1**: setuptools_scm configuration for version detection
|
|
163
|
+
- **Provides for Phase 3**: Release automation for documentation version triggers
|
|
164
|
+
- **Provides for Phase 4**: Foundation for release validation and helper scripts
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
*Phase 2 of 4 - SolarWindPy Deployment Pipeline - Last Updated: 2025-08-16*
|
|
168
|
+
*See [0-Overview.md](./0-Overview.md) for complete plan context and cross-phase coordination.*
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# Phase 3: Release Automation
|
|
2
|
+
|
|
3
|
+
## Phase Metadata
|
|
4
|
+
- **Phase**: 3/4
|
|
5
|
+
- **Estimated Duration**: 2-2.5 hours
|
|
6
|
+
- **Dependencies**: Phases 1-3 (complete deployment infrastructure)
|
|
7
|
+
- **Status**: Not Started
|
|
8
|
+
|
|
9
|
+
## ๐ฏ Phase Objective
|
|
10
|
+
Implement comprehensive release automation with helper scripts, release readiness validation, and end-to-end testing to create a production-ready deployment pipeline with rollback capabilities and user guidance.
|
|
11
|
+
|
|
12
|
+
## ๐ง Phase Context
|
|
13
|
+
This final phase integrates all previous deployment components into a cohesive release management system. It provides tools for release preparation, validation, and execution while ensuring scientific package quality standards and enabling confident releases with clear rollback procedures.
|
|
14
|
+
|
|
15
|
+
## ๐ Implementation Tasks
|
|
16
|
+
|
|
17
|
+
### Task Group 1: Release Readiness Validation
|
|
18
|
+
- [x] **Create check_release_ready.py script** (Est: 45 min) - Comprehensive release readiness validation tool
|
|
19
|
+
- Commit: `<checksum>`
|
|
20
|
+
- Status: Completed
|
|
21
|
+
- Notes: Validates git status, branch, version detection, changelog, tests, code quality, build system
|
|
22
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/scripts/check_release_ready.py`
|
|
23
|
+
|
|
24
|
+
- [x] **Implement release readiness checklist** (Est: 15 min) - Visual checklist with actionable guidance
|
|
25
|
+
- Commit: `<checksum>`
|
|
26
|
+
- Status: Completed
|
|
27
|
+
- Notes: Color-coded status indicators with actionable error messages and next steps
|
|
28
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/scripts/check_release_ready.py`
|
|
29
|
+
|
|
30
|
+
### Task Group 2: Version Management Helper
|
|
31
|
+
- [x] **Create bump_version.py script** (Est: 50 min) - Semantic version bumping with validation
|
|
32
|
+
- Commit: `<checksum>`
|
|
33
|
+
- Status: Completed
|
|
34
|
+
- Notes: Supports major/minor/patch/prerelease bumps with dry-run capability and explicit version override
|
|
35
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/scripts/bump_version.py`
|
|
36
|
+
|
|
37
|
+
- [x] **Implement version bump validation** (Est: 20 min) - Ensure version bumps follow semantic versioning rules
|
|
38
|
+
- Commit: `<checksum>`
|
|
39
|
+
- Status: Completed
|
|
40
|
+
- Notes: Validates version progression, semantic versioning compliance, and prerelease sequences
|
|
41
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/scripts/bump_version.py`
|
|
42
|
+
|
|
43
|
+
### Task Group 3: End-to-End Release Testing
|
|
44
|
+
- [ ] **Create v0.1.0-rc1 test release** (Est: 30 min) - Complete deployment pipeline validation
|
|
45
|
+
- Commit: `<checksum>`
|
|
46
|
+
- Status: Pending
|
|
47
|
+
- Notes: Test all deployment components with real release candidate
|
|
48
|
+
- Commands: `python scripts/bump_version.py rc && git push origin v0.1.0-rc1`
|
|
49
|
+
|
|
50
|
+
- [ ] **Validate GitHub release creation** (Est: 15 min) - Verify automatic release creation with artifacts
|
|
51
|
+
- Commit: `<checksum>`
|
|
52
|
+
- Status: Pending
|
|
53
|
+
- Notes: Check release notes, prerelease status, and artifact inclusion
|
|
54
|
+
- Validation: GitHub releases page inspection
|
|
55
|
+
|
|
56
|
+
- [ ] **Validate semantic version parsing** (Est: 15 min) - Confirm version detection and validation works correctly
|
|
57
|
+
- Commit: `<checksum>`
|
|
58
|
+
- Status: Pending
|
|
59
|
+
- Notes: Verify setuptools_scm correctly parses version from git tags
|
|
60
|
+
- Validation: Check setuptools_scm version output matches expected format
|
|
61
|
+
|
|
62
|
+
- [ ] **Validate PyPI workflow execution** (Est: 10 min) - Confirm graceful failure with informative messages
|
|
63
|
+
- Commit: `<checksum>`
|
|
64
|
+
- Status: Pending
|
|
65
|
+
- Notes: Verify error messages guide users through token setup
|
|
66
|
+
- Validation: GitHub Actions workflow logs inspection
|
|
67
|
+
|
|
68
|
+
### Task Group 4: Documentation and Guidance
|
|
69
|
+
- [x] **Create release process documentation** (Est: 20 min) - User-friendly release guide
|
|
70
|
+
- Commit: `<checksum>`
|
|
71
|
+
- Status: Completed
|
|
72
|
+
- Notes: Comprehensive step-by-step release process with troubleshooting and examples
|
|
73
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/docs/RELEASE_PROCESS.md`
|
|
74
|
+
|
|
75
|
+
- [x] **Document rollback procedures** (Est: 15 min) - Clear rollback steps for each deployment component
|
|
76
|
+
- Commit: `<checksum>`
|
|
77
|
+
- Status: Completed
|
|
78
|
+
- Notes: Complete rollback procedures for tags, releases, and PyPI packages
|
|
79
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/docs/RELEASE_PROCESS.md`
|
|
80
|
+
|
|
81
|
+
### Task Group 5: Production Readiness Validation
|
|
82
|
+
- [x] **Test helper scripts functionality** (Est: 25 min) - Validate all release automation tools
|
|
83
|
+
- Commit: `<checksum>`
|
|
84
|
+
- Status: Completed
|
|
85
|
+
- Notes: Tested check_release_ready.py and bump_version.py with various scenarios including dry-run
|
|
86
|
+
- Commands: `python scripts/check_release_ready.py && python scripts/bump_version.py patch --dry-run`
|
|
87
|
+
|
|
88
|
+
- [x] **Validate error handling and edge cases** (Est: 20 min) - Test deployment pipeline resilience
|
|
89
|
+
- Commit: `<checksum>`
|
|
90
|
+
- Status: Completed
|
|
91
|
+
- Notes: Validated error handling for git status, version progression, and format validation
|
|
92
|
+
- Commands: Tested dry-run scenarios and error conditions
|
|
93
|
+
|
|
94
|
+
- [x] **Create deployment success metrics dashboard** (Est: 15 min) - Summary of deployment capabilities
|
|
95
|
+
- Commit: `<checksum>`
|
|
96
|
+
- Status: Completed
|
|
97
|
+
- Notes: Comprehensive status overview with immediate vs. token-dependent capabilities
|
|
98
|
+
- Files: `/Users/balterma/observatories/code/SolarWindPy/docs/DEPLOYMENT_STATUS.md`
|
|
99
|
+
|
|
100
|
+
## โ
Phase Acceptance Criteria
|
|
101
|
+
- [ ] check_release_ready.py validates all release prerequisites
|
|
102
|
+
- [ ] bump_version.py creates valid semantic version tags with proper progression
|
|
103
|
+
- [ ] v0.1.0-rc1 test release executes complete deployment pipeline
|
|
104
|
+
- [ ] GitHub release is created automatically with proper metadata and artifacts
|
|
105
|
+
- [ ] Semantic versioning validation prevents invalid releases
|
|
106
|
+
- [ ] PyPI workflow fails gracefully with actionable error messages
|
|
107
|
+
- [ ] Release process documentation provides clear user guidance
|
|
108
|
+
- [ ] Rollback procedures are documented and tested
|
|
109
|
+
- [ ] All helper scripts handle edge cases and provide helpful error messages
|
|
110
|
+
- [ ] Deployment status clearly communicates current capabilities and limitations
|
|
111
|
+
- [ ] End-to-end testing demonstrates production readiness
|
|
112
|
+
|
|
113
|
+
## ๐งช Phase Testing Strategy
|
|
114
|
+
**Comprehensive Testing**: Real release candidate creation with full pipeline validation
|
|
115
|
+
**Script Testing**: All helper scripts tested with various input scenarios
|
|
116
|
+
**Validation Method**: Live deployment testing with v0.1.0-rc1 release candidate
|
|
117
|
+
|
|
118
|
+
### Complete Test Scenarios
|
|
119
|
+
1. **Release Readiness Check**: `python scripts/check_release_ready.py` shows comprehensive status
|
|
120
|
+
2. **Version Bump**: `python scripts/bump_version.py rc` creates valid v0.1.0-rc1 tag
|
|
121
|
+
3. **Tag Push**: `git push origin v0.1.0-rc1` triggers all deployment workflows
|
|
122
|
+
4. **GitHub Release**: Automatic release creation with artifacts and metadata
|
|
123
|
+
5. **Version Validation**: setuptools_scm correctly detects v0.1.0-rc1
|
|
124
|
+
6. **PyPI Graceful Failure**: Informative error with token setup guidance
|
|
125
|
+
7. **Badge Updates**: All status badges reflect new release candidate
|
|
126
|
+
|
|
127
|
+
## ๐ง Phase Technical Requirements
|
|
128
|
+
**Dependencies**: All previous phases, packaging library for version validation
|
|
129
|
+
**Environment**: Development environment with git, GitHub CLI (optional)
|
|
130
|
+
**Services**: GitHub (releases), PyPI (graceful failure), setuptools_scm (version detection)
|
|
131
|
+
**Scripts**: Python 3.8+ compatible with comprehensive error handling
|
|
132
|
+
|
|
133
|
+
## ๐ Phase Affected Areas
|
|
134
|
+
- `/Users/balterma/observatories/code/SolarWindPy/scripts/check_release_ready.py` - New release readiness validator
|
|
135
|
+
- `/Users/balterma/observatories/code/SolarWindPy/scripts/bump_version.py` - New version management tool
|
|
136
|
+
- `/Users/balterma/observatories/code/SolarWindPy/docs/RELEASE_PROCESS.md` - New release documentation
|
|
137
|
+
- `/Users/balterma/observatories/code/SolarWindPy/docs/DEPLOYMENT_STATUS.md` - New capability summary
|
|
138
|
+
- Git tags: v0.1.0-rc1 for testing
|
|
139
|
+
- GitHub releases: https://github.com/blalterman/SolarWindPy/releases
|
|
140
|
+
- setuptools_scm: Version detection from git tags
|
|
141
|
+
|
|
142
|
+
## ๐ Phase Progress Tracking
|
|
143
|
+
|
|
144
|
+
### Current Status
|
|
145
|
+
- **Tasks Completed**: 8/11
|
|
146
|
+
- **Time Invested**: 2h of 2-2.5h estimated
|
|
147
|
+
- **Phase Status**: Near Complete (missing end-to-end test)
|
|
148
|
+
- **Completion Percentage**: 73%
|
|
149
|
+
- **Last Updated**: 2025-08-20
|
|
150
|
+
|
|
151
|
+
### Blockers & Issues
|
|
152
|
+
- **Dependencies**: Requires completion of Phases 1-3 for complete testing
|
|
153
|
+
- **Manual GitHub Setup**: Some validation requires GitHub repository access and permissions
|
|
154
|
+
|
|
155
|
+
### Next Actions
|
|
156
|
+
1. Complete Phases 1-3 to establish deployment infrastructure
|
|
157
|
+
2. Create release readiness validation script
|
|
158
|
+
3. Implement version bump helper with semantic versioning support
|
|
159
|
+
4. Execute v0.1.0-rc1 test release for end-to-end validation
|
|
160
|
+
5. Document release process and rollback procedures
|
|
161
|
+
|
|
162
|
+
## ๐ฌ Phase Implementation Notes
|
|
163
|
+
|
|
164
|
+
### Implementation Decisions
|
|
165
|
+
- **Comprehensive Validation**: check_release_ready.py covers all deployment prerequisites
|
|
166
|
+
- **Semantic Versioning**: bump_version.py enforces proper version progression
|
|
167
|
+
- **Real Testing**: v0.1.0-rc1 provides authentic deployment pipeline validation
|
|
168
|
+
- **User Guidance**: Clear documentation for both success and failure scenarios
|
|
169
|
+
- **Graceful Degradation**: All tools work correctly during PyPI token delay period
|
|
170
|
+
|
|
171
|
+
### Production Readiness Assessment
|
|
172
|
+
**Immediate Capabilities** (without PyPI tokens):
|
|
173
|
+
- โ
Semantic version validation and enforcement
|
|
174
|
+
- โ
GitHub release automation with artifacts
|
|
175
|
+
- โ
Semantic version validation and detection
|
|
176
|
+
- โ
Release readiness validation
|
|
177
|
+
- โ
Version management tools
|
|
178
|
+
- โ ๏ธ PyPI publishing (graceful failure with guidance)
|
|
179
|
+
|
|
180
|
+
**Full Capabilities** (with PyPI tokens):
|
|
181
|
+
- โ
All immediate capabilities PLUS
|
|
182
|
+
- โ
Automated PyPI publishing for stable releases
|
|
183
|
+
- โ
TestPyPI publishing for release candidates
|
|
184
|
+
- โ
Complete hands-off deployment pipeline
|
|
185
|
+
|
|
186
|
+
### Rollback Strategy
|
|
187
|
+
**Script Rollback**: Helper scripts are additive - can be deleted without affecting core functionality
|
|
188
|
+
**Tag Rollback**: Test tags can be deleted if needed (`git tag -d v0.1.0-rc1 && git push origin :v0.1.0-rc1`)
|
|
189
|
+
**Release Rollback**: GitHub releases can be edited or deleted
|
|
190
|
+
**Version Rollback**: Git tags can be deleted and recreated with proper versioning
|
|
191
|
+
**Workflow Rollback**: All deployment components can be individually reverted
|
|
192
|
+
**Risk Level**: Low - all additions are non-destructive and easily reversible
|
|
193
|
+
|
|
194
|
+
### Success Metrics
|
|
195
|
+
**Technical Success**:
|
|
196
|
+
- All deployment components function correctly
|
|
197
|
+
- v0.1.0-rc1 test release completes successfully
|
|
198
|
+
- Helper scripts provide accurate validation and guidance
|
|
199
|
+
- Error conditions fail gracefully with actionable messages
|
|
200
|
+
|
|
201
|
+
**User Experience Success**:
|
|
202
|
+
- Release process is clearly documented and easy to follow
|
|
203
|
+
- Rollback procedures are comprehensive and tested
|
|
204
|
+
- Error messages provide clear next steps
|
|
205
|
+
- Deployment status is transparently communicated
|
|
206
|
+
|
|
207
|
+
### Phase Dependencies Resolution
|
|
208
|
+
- **Requires from Phases 1-3**: Complete deployment infrastructure foundation
|
|
209
|
+
- **Provides**: Production-ready release management system
|
|
210
|
+
- **Completes**: Full SolarWindPy deployment pipeline with validation and automation
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
*Phase 4 of 4 - SolarWindPy Deployment Pipeline - Last Updated: 2025-08-16*
|
|
214
|
+
*See [0-Overview.md](./0-Overview.md) for complete plan context and cross-phase coordination.*
|