solarwindpy 0.0.1.dev0__py3-none-any.whl → 0.1.0__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.

Files changed (412) hide show
  1. plans/.velocity/metrics.json +96 -0
  2. plans/0-overview-template.md +268 -0
  3. plans/N-phase-template.md +106 -0
  4. plans/PLAN_AUDIT_SUMMARY.md +173 -0
  5. plans/TEMPLATE-USAGE-GUIDE.md +198 -0
  6. plans/__init__.py +1 -0
  7. plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
  8. plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
  9. plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
  10. plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
  11. plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
  12. plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
  13. plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
  14. plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
  15. plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
  16. plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
  17. plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
  18. plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
  19. plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
  20. plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
  21. plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
  22. plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
  23. plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
  24. plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
  25. plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
  26. plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
  27. plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
  28. plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
  29. plans/cicd-architecture-redesign/0-Overview.md +193 -0
  30. plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
  31. plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
  32. plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
  33. plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
  34. plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
  35. plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
  36. plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
  37. plans/cicd-architecture-redesign/8-Documentation.md +285 -0
  38. plans/cicd-architecture-redesign/Closeout.md +225 -0
  39. plans/closeout-template.md +259 -0
  40. plans/completed/circular-import-audit/0-Overview.md +152 -0
  41. plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
  42. plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
  43. plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
  44. plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
  45. plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
  46. plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
  47. plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
  48. plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
  49. plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
  50. plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
  51. plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
  52. plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
  53. plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
  54. plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
  55. plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
  56. plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
  57. plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
  58. plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
  59. plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
  60. plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
  61. plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
  62. plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
  63. plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
  64. plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
  65. plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
  66. plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
  67. plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
  68. plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
  69. plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
  70. plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
  71. plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
  72. plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
  73. plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
  74. plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
  75. plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
  76. plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
  77. plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
  78. plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
  79. plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
  80. plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
  81. plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
  82. plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
  83. plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
  84. plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
  85. plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
  86. plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
  87. plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
  88. plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
  89. plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
  90. plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
  91. plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
  92. plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
  93. plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
  94. plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
  95. plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
  96. plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
  97. plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
  98. plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
  99. plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
  100. plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
  101. plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
  102. plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
  103. plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
  104. plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
  105. plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
  106. plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
  107. plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
  108. plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
  109. plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
  110. plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
  111. plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
  112. plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
  113. plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
  114. plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
  115. plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
  116. plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
  117. plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
  118. plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
  119. plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
  120. plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
  121. plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
  122. plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
  123. plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
  124. plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
  125. plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
  126. plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
  127. plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
  128. plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
  129. plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
  130. plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
  131. plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
  132. plans/completed/pr-review-remediation/0-Overview.md +138 -0
  133. plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
  134. plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
  135. plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
  136. plans/completed/pr-review-remediation/compacted_state.md +66 -0
  137. plans/completed/python-310-migration/0-Overview.md +390 -0
  138. plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
  139. plans/completed/python-310-migration/2-Implementation.md +256 -0
  140. plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
  141. plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
  142. plans/completed/python-310-migration/5-Closeout.md +252 -0
  143. plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
  144. plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
  145. plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
  146. plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
  147. plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
  148. plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
  149. plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
  150. plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
  151. plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
  152. plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
  153. plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
  154. plans/completed/test-directory-consolidation/0-Overview.md +51 -0
  155. plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
  156. plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
  157. plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
  158. plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
  159. plans/completed/test-directory-consolidation/5-Validation.md +152 -0
  160. plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
  161. plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
  162. plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
  163. plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
  164. plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
  165. plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
  166. plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
  167. plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
  168. plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
  169. plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
  170. plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
  171. plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
  172. plans/documentation-code-audit/0-Overview.md +393 -0
  173. plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
  174. plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
  175. plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
  176. plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
  177. plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
  178. plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
  179. plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
  180. plans/documentation-code-audit/8-Closeout.md +456 -0
  181. plans/documentation-rebuild-session/compacted_state.md +109 -0
  182. plans/documentation-rendering-fixes/0-Overview.md +104 -0
  183. plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
  184. plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
  185. plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
  186. plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
  187. plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
  188. plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
  189. plans/documentation-rendering-fixes/compacted_state.md +132 -0
  190. plans/documentation-template-fix/0-Overview.md +197 -0
  191. plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
  192. plans/documentation-template-fix/2-Template-Modification.md +609 -0
  193. plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
  194. plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
  195. plans/documentation-template-fix/5-Documentation-Training.md +602 -0
  196. plans/documentation-workflow-fix/0-Overview.md +222 -0
  197. plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
  198. plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
  199. plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
  200. plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
  201. plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
  202. plans/duplicate-object-warnings-fix-plan.md +130 -0
  203. plans/github-issues-migration/0-Overview.md +510 -0
  204. plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
  205. plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
  206. plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
  207. plans/github-issues-migration/4-Validated-Migration.md +252 -0
  208. plans/github-issues-migration/5-Documentation-Training.md +171 -0
  209. plans/github-issues-migration/6-Closeout.md +179 -0
  210. plans/github-workflows-repair/repair-plan.md +299 -0
  211. plans/issues_from_plans.py +342 -0
  212. plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
  213. plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
  214. plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
  215. plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
  216. plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
  217. plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
  218. plans/python-310-migration/0-Overview.md +390 -0
  219. plans/python-310-migration/1-Planning-Setup.md +164 -0
  220. plans/python-310-migration/2-Implementation.md +256 -0
  221. plans/python-310-migration/3-Testing-Validation.md +335 -0
  222. plans/python-310-migration/4-Documentation-Release.md +274 -0
  223. plans/python-310-migration/5-Closeout.md +252 -0
  224. plans/readthedocs-simplified/0-Overview.md +243 -0
  225. plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
  226. plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
  227. plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
  228. plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
  229. plans/readthedocs-simplified/5-Closeout.md +231 -0
  230. plans/readthedocs-simplified/compacted_state.md +127 -0
  231. plans/session-compaction-2025-08-12/compacted_state.md +114 -0
  232. plans/session-compaction-2025-08-13/compacted_state.md +145 -0
  233. plans/session-continuity-protocol/0-Overview.md +35 -0
  234. plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
  235. plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
  236. plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
  237. plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
  238. plans/sphinx-warnings-analysis.md +222 -0
  239. plans/systemprompt-optimization/0-Overview.md +447 -0
  240. plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
  241. plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
  242. plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
  243. plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
  244. plans/systemprompt-optimization/9-Closeout.md +165 -0
  245. plans/systemprompt-optimization/compacted_state.md +143 -0
  246. plans/template-value-propositions/0-Overview.md +357 -0
  247. plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
  248. plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
  249. plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
  250. plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
  251. plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
  252. plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
  253. plans/tests-audit/0-Overview.md +410 -0
  254. plans/tests-audit/1-Discovery-Inventory.md +170 -0
  255. plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
  256. plans/tests-audit/3-Architecture-Compliance.md +195 -0
  257. plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
  258. plans/tests-audit/5-Documentation-Enhancement.md +220 -0
  259. plans/tests-audit/6-Audit-Deliverables.md +220 -0
  260. plans/tests-audit/7-Closeout.md +252 -0
  261. plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
  262. plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
  263. plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
  264. plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
  265. plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
  266. plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
  267. plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
  268. plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
  269. plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
  270. plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
  271. plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
  272. plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
  273. plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
  274. plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
  275. plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
  276. plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
  277. plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
  278. plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
  279. plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
  280. plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
  281. plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
  282. plans/tests-audit/artifacts/test_parser.py +395 -0
  283. solarwindpy/README.md +3 -0
  284. solarwindpy/Untitled.ipynb +54 -0
  285. solarwindpy/__init__.py +74 -0
  286. solarwindpy/core/__init__.py +23 -0
  287. solarwindpy/core/alfvenic_turbulence.py +804 -0
  288. solarwindpy/core/base.py +267 -0
  289. solarwindpy/core/ions.py +309 -0
  290. solarwindpy/core/plasma.py +2133 -0
  291. solarwindpy/core/spacecraft.py +256 -0
  292. solarwindpy/core/tensor.py +90 -0
  293. solarwindpy/core/units_constants.py +199 -0
  294. solarwindpy/core/vector.py +328 -0
  295. solarwindpy/fitfunctions/__init__.py +20 -0
  296. solarwindpy/fitfunctions/core.py +734 -0
  297. solarwindpy/fitfunctions/exponentials.py +188 -0
  298. solarwindpy/fitfunctions/gaussians.py +264 -0
  299. solarwindpy/fitfunctions/lines.py +116 -0
  300. solarwindpy/fitfunctions/moyal.py +71 -0
  301. solarwindpy/fitfunctions/plots.py +751 -0
  302. solarwindpy/fitfunctions/power_laws.py +209 -0
  303. solarwindpy/fitfunctions/tex_info.py +568 -0
  304. solarwindpy/fitfunctions/trend_fits.py +482 -0
  305. solarwindpy/instabilities/__init__.py +16 -0
  306. solarwindpy/instabilities/beta_ani.py +82 -0
  307. solarwindpy/instabilities/verscharen2016.py +631 -0
  308. solarwindpy/plotting/__init__.py +33 -0
  309. solarwindpy/plotting/agg_plot.py +489 -0
  310. solarwindpy/plotting/base.py +465 -0
  311. solarwindpy/plotting/hist1d.py +405 -0
  312. solarwindpy/plotting/hist2d.py +1035 -0
  313. solarwindpy/plotting/histograms.py +1845 -0
  314. solarwindpy/plotting/labels/__init__.py +104 -0
  315. solarwindpy/plotting/labels/base.py +686 -0
  316. solarwindpy/plotting/labels/chemistry.py +19 -0
  317. solarwindpy/plotting/labels/composition.py +100 -0
  318. solarwindpy/plotting/labels/datetime.py +235 -0
  319. solarwindpy/plotting/labels/elemental_abundance.py +73 -0
  320. solarwindpy/plotting/labels/special.py +794 -0
  321. solarwindpy/plotting/orbits.py +515 -0
  322. solarwindpy/plotting/scatter.py +99 -0
  323. solarwindpy/plotting/select_data_from_figure.py +329 -0
  324. solarwindpy/plotting/spiral.py +980 -0
  325. solarwindpy/plotting/tools.py +434 -0
  326. solarwindpy/scripts/__init__.py +1 -0
  327. solarwindpy/scripts/logs/.gitignore +1 -0
  328. solarwindpy/solar_activity/__init__.py +53 -0
  329. solarwindpy/solar_activity/base.py +605 -0
  330. solarwindpy/solar_activity/lisird/__init__.py +3 -0
  331. solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
  332. solarwindpy/solar_activity/lisird/lisird.py +319 -0
  333. solarwindpy/solar_activity/plots.py +116 -0
  334. solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
  335. solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
  336. solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
  337. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
  338. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
  339. solarwindpy/tools/__init__.py +162 -0
  340. solarwindpy-0.1.0.dist-info/METADATA +181 -0
  341. solarwindpy-0.1.0.dist-info/RECORD +409 -0
  342. {solarwindpy-0.0.1.dev0.dist-info → solarwindpy-0.1.0.dist-info}/WHEEL +1 -1
  343. solarwindpy-0.1.0.dist-info/licenses/LICENSE.rst +32 -0
  344. solarwindpy-0.1.0.dist-info/top_level.txt +3 -0
  345. tests/__init__.py +1 -0
  346. tests/conftest.py +10 -0
  347. tests/core/__init__.py +1 -0
  348. tests/core/test_alfvenic_turbulence.py +544 -0
  349. tests/core/test_base.py +112 -0
  350. tests/core/test_base_head_tail.py +29 -0
  351. tests/core/test_base_mi_tuples.py +11 -0
  352. tests/core/test_core_verify_datetimeindex.py +32 -0
  353. tests/core/test_ions.py +325 -0
  354. tests/core/test_plasma.py +2581 -0
  355. tests/core/test_plasma_io.py +12 -0
  356. tests/core/test_quantities.py +507 -0
  357. tests/core/test_spacecraft.py +210 -0
  358. tests/core/test_units_constants.py +22 -0
  359. tests/data/epoch.csv +4 -0
  360. tests/data/plasma.csv +4 -0
  361. tests/data/spacecraft.csv +4 -0
  362. tests/fitfunctions/conftest.py +60 -0
  363. tests/fitfunctions/test_core.py +193 -0
  364. tests/fitfunctions/test_exponentials.py +342 -0
  365. tests/fitfunctions/test_gaussians.py +142 -0
  366. tests/fitfunctions/test_lines.py +349 -0
  367. tests/fitfunctions/test_moyal.py +258 -0
  368. tests/fitfunctions/test_plots.py +258 -0
  369. tests/fitfunctions/test_power_laws.py +365 -0
  370. tests/fitfunctions/test_tex_info.py +183 -0
  371. tests/fitfunctions/test_trend_fit_properties.py +31 -0
  372. tests/fitfunctions/test_trend_fits.py +244 -0
  373. tests/plotting/__init__.py +1 -0
  374. tests/plotting/labels/__init__.py +1 -0
  375. tests/plotting/labels/test_chemistry.py +243 -0
  376. tests/plotting/labels/test_composition.py +345 -0
  377. tests/plotting/labels/test_datetime.py +445 -0
  378. tests/plotting/labels/test_elemental_abundance.py +366 -0
  379. tests/plotting/labels/test_init.py +66 -0
  380. tests/plotting/labels/test_labels_base.py +347 -0
  381. tests/plotting/labels/test_special.py +550 -0
  382. tests/plotting/test_agg_plot.py +602 -0
  383. tests/plotting/test_base.py +752 -0
  384. tests/plotting/test_fixtures_utilities.py +775 -0
  385. tests/plotting/test_histograms.py +546 -0
  386. tests/plotting/test_integration.py +675 -0
  387. tests/plotting/test_orbits.py +435 -0
  388. tests/plotting/test_performance.py +708 -0
  389. tests/plotting/test_scatter.py +752 -0
  390. tests/plotting/test_select_data_from_figure.py +1209 -0
  391. tests/plotting/test_spiral.py +573 -0
  392. tests/plotting/test_tools.py +607 -0
  393. tests/plotting/test_visual_validation.py +465 -0
  394. tests/solar_activity/__init__.py +1 -0
  395. tests/solar_activity/lisird/__init__.py +1 -0
  396. tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
  397. tests/solar_activity/lisird/test_lisird_id.py +187 -0
  398. tests/solar_activity/sunspot_number/__init__.py +1 -0
  399. tests/solar_activity/sunspot_number/test_init.py +399 -0
  400. tests/solar_activity/sunspot_number/test_sidc.py +465 -0
  401. tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
  402. tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
  403. tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
  404. tests/solar_activity/test_base.py +656 -0
  405. tests/solar_activity/test_init.py +396 -0
  406. tests/solar_activity/test_plots.py +371 -0
  407. tests/test_circular_imports.py +408 -0
  408. tests/test_issue_titles.py +25 -0
  409. tests/test_statusline.py +298 -0
  410. solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
  411. solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
  412. solarwindpy-0.0.1.dev0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,123 @@
1
+ # Phase 2: Version Detection Configuration
2
+
3
+ ## Overview
4
+ Implement intelligent version tag detection logic to differentiate between release candidates and production releases, enabling conditional deployment workflows.
5
+
6
+ ## Objectives
7
+ - Configure RC vs production tag detection logic
8
+ - Set up conditional deployment based on version type
9
+ - Validate version detection accuracy
10
+ - Ensure proper GitHub output variable handling
11
+
12
+ ## Tasks
13
+
14
+ ### Task 2.1: Implement Tag Detection Logic (20 minutes)
15
+ **Implementation Steps:**
16
+ Add this bash logic to the release-pipeline.yml workflow:
17
+
18
+ ```bash
19
+ # Detect if tag is release candidate
20
+ if [[ "$LATEST_TAG" =~ -rc[0-9]+$ ]]; then
21
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
22
+ echo "📦 Release candidate detected: $LATEST_TAG"
23
+ else
24
+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
25
+ echo "🚀 Production release detected: $LATEST_TAG"
26
+ fi
27
+ ```
28
+
29
+ **Logic Details:**
30
+ - **Pattern**: `-rc[0-9]+$` matches release candidates (e.g., v1.0.0-rc1, v2.1.0-rc15)
31
+ - **Output Variable**: `is_prerelease` used by subsequent steps
32
+ - **Logging**: Clear indication of detection result
33
+
34
+ ### Task 2.2: Configure Deployment Gates (10 minutes)
35
+ **Deployment Matrix:**
36
+
37
+ | Component | Release Candidate | Production Release |
38
+ |-----------|-------------------|-------------------|
39
+ | TestPyPI | Always ✅ | Always ✅ |
40
+ | PyPI | Never ❌ | Always ✅ |
41
+ | Conda | Never ❌ | Always ✅ |
42
+ | GitHub Release | Never ❌ | Always ✅ |
43
+
44
+ **Conditional Logic:**
45
+ ```yaml
46
+ # TestPyPI deployment (always runs)
47
+ - name: Deploy to TestPyPI
48
+ # No condition - always runs
49
+
50
+ # PyPI deployment (production only)
51
+ - name: Deploy to PyPI
52
+ if: steps.detect_version.outputs.is_prerelease == 'false'
53
+
54
+ # Conda deployment (production only)
55
+ - name: Open conda-forge issue
56
+ if: steps.detect_version.outputs.is_prerelease == 'false'
57
+
58
+ # GitHub Release (production only)
59
+ - name: Create GitHub Release
60
+ if: steps.detect_version.outputs.is_prerelease == 'false'
61
+ ```
62
+
63
+ ## Test Cases
64
+
65
+ ### Valid Release Candidate Tags
66
+ - `v0.1.0-rc1` → `is_prerelease=true`
67
+ - `v1.2.3-rc15` → `is_prerelease=true`
68
+ - `v2.0.0-rc999` → `is_prerelease=true`
69
+
70
+ ### Valid Production Tags
71
+ - `v0.1.0` → `is_prerelease=false`
72
+ - `v1.2.3` → `is_prerelease=false`
73
+ - `v10.15.20` → `is_prerelease=false`
74
+
75
+ ### Edge Cases
76
+ - `v1.0.0-alpha1` → `is_prerelease=false` (not RC pattern)
77
+ - `v1.0.0-beta2` → `is_prerelease=false` (not RC pattern)
78
+ - `v1.0.0-rc` → `is_prerelease=false` (missing number)
79
+
80
+ ## Acceptance Criteria
81
+ - [ ] Version detection regex correctly identifies RC tags
82
+ - [ ] Production tags properly identified as non-prerelease
83
+ - [ ] GitHub output variables set correctly
84
+ - [ ] Deployment conditionals reference correct output variable
85
+ - [ ] Edge cases handled appropriately
86
+ - [ ] Logic integrated into release-pipeline.yml
87
+
88
+ ## Risk Mitigation
89
+ - **Regex Validation**: Test pattern against expected tag formats
90
+ - **Output Variables**: Ensure proper GitHub Actions variable syntax
91
+ - **Default Behavior**: Production deployment as fallback for ambiguous cases
92
+ - **Logging**: Clear output to debug detection issues
93
+
94
+ ## Progress Tracking
95
+ - [x] Task 2.1: Tag detection logic implemented (completed in Phase 1)
96
+ - [x] Task 2.2: Deployment gates configured (completed in Phase 1)
97
+ - [x] Logic tested against expected tag patterns (regex validated)
98
+ - [x] Integration with workflow completed (commit: 0c646c5)
99
+ - [x] Ready for Phase 3: Deployment Gates
100
+
101
+ ## Implementation Checksum
102
+ **Commit**: `0c646c5` - Version detection logic already implemented in release-pipeline.yml
103
+ **Implementation Details**:
104
+ - RC detection pattern: `-rc[0-9]+$` plus additional `-alpha`, `-beta` support
105
+ - Output variable: `is_rc` (true for release candidates, false for production)
106
+ - Deployment conditionals: All production-only jobs check `needs.version-analysis.outputs.is_rc == 'false'`
107
+
108
+ ## Phase 2 Completion Notes
109
+ - Version detection was implemented proactively during Phase 1
110
+ - Current implementation exceeds Phase 2 requirements by supporting alpha/beta patterns
111
+ - All deployment gates properly configured with correct conditional logic
112
+ - Ready to proceed directly to Phase 3 (actually just validation of existing implementation)
113
+
114
+ ## Time Estimate
115
+ **Total: 30 minutes**
116
+ - Task 2.1: 20 minutes
117
+ - Task 2.2: 10 minutes
118
+
119
+ ## Notes
120
+ - RC detection is conservative - only exact `-rc[0-9]+` pattern triggers prerelease
121
+ - Other prerelease formats (alpha, beta) deploy to production by design
122
+ - This ensures SolarWindPy v0.1.0-rc5 testing works correctly
123
+ - Production deployment is the safe default for ambiguous cases
@@ -0,0 +1,169 @@
1
+ # Phase 3: Deployment Gates Configuration
2
+
3
+ ## Overview
4
+ Configure progressive deployment stages with proper validation gates to ensure safe release candidate testing and reliable production deployments.
5
+
6
+ ## Objectives
7
+ - Set up TestPyPI as universal deployment target
8
+ - Configure PyPI deployment for production releases only
9
+ - Implement conda-forge automation for stable releases
10
+ - Configure GitHub Release creation with proper conditions
11
+ - Ensure proper stage sequencing and validation
12
+
13
+ ## Tasks
14
+
15
+ ### Task 3.1: Configure TestPyPI Deployment (15 minutes)
16
+ **Purpose**: Universal deployment target for all version tags
17
+
18
+ **Configuration:**
19
+ ```yaml
20
+ - name: Deploy to TestPyPI
21
+ uses: pypa/gh-action-pypi-publish@release/v1
22
+ with:
23
+ repository-url: https://test.pypi.org/legacy/
24
+ password: ${{ secrets.TEST_PYPI_API_TOKEN }}
25
+ # No condition - always runs for any version tag
26
+ ```
27
+
28
+ **Benefits:**
29
+ - Validates package building process
30
+ - Tests deployment mechanisms
31
+ - Safe environment for RC validation
32
+ - No risk to production PyPI
33
+
34
+ ### Task 3.2: Configure PyPI Production Deployment (10 minutes)
35
+ **Purpose**: Production deployment for stable releases only
36
+
37
+ **Configuration:**
38
+ ```yaml
39
+ - name: Deploy to PyPI
40
+ if: steps.detect_version.outputs.is_prerelease == 'false'
41
+ uses: pypa/gh-action-pypi-publish@release/v1
42
+ with:
43
+ password: ${{ secrets.PYPI_API_TOKEN }}
44
+ ```
45
+
46
+ **Validation Requirements:**
47
+ - TestPyPI deployment must succeed first
48
+ - Version detection must identify as production release
49
+ - PyPI secrets must be configured in repository
50
+
51
+ ### Task 3.3: Configure Conda-Forge Integration (5 minutes)
52
+ **Purpose**: Automatic conda-forge PR creation for stable releases
53
+
54
+ **Configuration:**
55
+ ```yaml
56
+ - name: Open conda-forge issue
57
+ if: steps.detect_version.outputs.is_prerelease == 'false'
58
+ uses: actions/github-script@v7
59
+ with:
60
+ github-token: ${{ secrets.GITHUB_TOKEN }}
61
+ script: |
62
+ github.rest.issues.create({
63
+ owner: 'conda-forge',
64
+ repo: 'solarwindpy-feedstock',
65
+ title: `Update solarwindpy to ${process.env.GITHUB_REF_NAME}`,
66
+ body: `Please update solarwindpy to version ${process.env.GITHUB_REF_NAME}\n\nPyPI: https://pypi.org/project/solarwindpy/${process.env.GITHUB_REF_NAME}/`
67
+ });
68
+ ```
69
+
70
+ **Requirements:**
71
+ - Only runs for production releases
72
+ - Requires conda-forge feedstock repository to exist
73
+ - Uses standard GitHub issue creation
74
+
75
+ ## Deployment Flow Sequence
76
+
77
+ ### Release Candidate Flow (e.g., v0.1.0-rc5)
78
+ 1. **Tag Detection** → `is_prerelease=true`
79
+ 2. **Quality Checks** → Run full test matrix
80
+ 3. **Release Branch** → Create `release/v0.1.0-rc5`
81
+ 4. **TestPyPI** → Deploy package ✅
82
+ 5. **PyPI** → Skip ❌
83
+ 6. **Conda** → Skip ❌
84
+ 7. **GitHub Release** → Skip ❌
85
+
86
+ ### Production Release Flow (e.g., v0.1.0)
87
+ 1. **Tag Detection** → `is_prerelease=false`
88
+ 2. **Quality Checks** → Run full test matrix
89
+ 3. **Release Branch** → Create `release/v0.1.0`
90
+ 4. **TestPyPI** → Deploy package ✅
91
+ 5. **PyPI** → Deploy package ✅
92
+ 6. **Conda** → Open feedstock issue ✅
93
+ 7. **GitHub Release** → Create release ✅
94
+
95
+ ## Validation Gates
96
+
97
+ ### Gate 1: Quality Checks
98
+ **Requirements:**
99
+ - All tests pass across matrix
100
+ - Code formatting validation
101
+ - Linting checks pass
102
+ - Package builds successfully
103
+
104
+ ### Gate 2: TestPyPI Success
105
+ **Requirements:**
106
+ - Package uploads successfully
107
+ - Metadata is valid
108
+ - Dependencies resolve correctly
109
+ - Installation test passes
110
+
111
+ ### Gate 3: Production Validation (Production Only)
112
+ **Requirements:**
113
+ - TestPyPI deployment succeeded
114
+ - Version is not prerelease
115
+ - PyPI secrets are available
116
+ - No conflicts with existing versions
117
+
118
+ ## Acceptance Criteria
119
+ - [ ] TestPyPI deployment configured for all version tags
120
+ - [ ] PyPI deployment conditional on production releases
121
+ - [ ] Conda-forge integration configured properly
122
+ - [ ] GitHub Release creation conditional
123
+ - [ ] Proper stage sequencing implemented
124
+ - [ ] Validation gates enforce requirements
125
+ - [ ] Error handling prevents partial deployments
126
+
127
+ ## Risk Mitigation
128
+ - **Sequential Deployment**: TestPyPI validates before PyPI
129
+ - **Conditional Logic**: Production deployments only when appropriate
130
+ - **Rollback Capability**: Release branches provide recovery points
131
+ - **Secret Management**: Proper token isolation and access control
132
+ - **Failure Isolation**: Failures in later stages don't affect earlier ones
133
+
134
+ ## Progress Tracking
135
+ - [x] Task 3.1: TestPyPI deployment configured (completed in Phase 1)
136
+ - [x] Task 3.2: PyPI production deployment configured (completed in Phase 1)
137
+ - [x] Task 3.3: Conda-forge integration configured (completed in Phase 1)
138
+ - [x] Deployment flow sequence validated (progressive deployment implemented)
139
+ - [x] Validation gates implemented (quality checks → TestPyPI → PyPI → GitHub Release)
140
+ - [x] Ready for Phase 4: RC Testing
141
+
142
+ ## Implementation Checksum
143
+ **Commit**: `0c646c5` - Deployment gates already implemented in release-pipeline.yml
144
+
145
+ **Actual Implementation Details**:
146
+ - **TestPyPI**: Always deploys, includes installation validation test
147
+ - **PyPI**: Production only (`if: needs.version-analysis.outputs.is_rc == 'false'`)
148
+ - **Conda-forge**: Production only, currently logs manual step (can be enhanced later)
149
+ - **GitHub Release**: Production only with automatic release notes generation
150
+ - **Validation**: Progressive gates with quality checks → build → TestPyPI → production stages
151
+
152
+ ## Phase 3 Completion Notes
153
+ - All deployment gates implemented proactively during Phase 1
154
+ - Implementation exceeds requirements with installation testing and release notes
155
+ - Progressive deployment flow ensures safe RC testing and reliable production releases
156
+ - Ready to proceed to Phase 4: Release Candidate Testing
157
+
158
+ ## Time Estimate
159
+ **Total: 30 minutes**
160
+ - Task 3.1: 15 minutes
161
+ - Task 3.2: 10 minutes
162
+ - Task 3.3: 5 minutes
163
+
164
+ ## Notes
165
+ - Progressive deployment ensures each stage validates the next
166
+ - Release candidates provide safe testing environment
167
+ - Production releases get full deployment pipeline
168
+ - Conda-forge integration automates community package updates
169
+ - Clear separation between testing and production environments
@@ -0,0 +1,194 @@
1
+ # Phase 4: Release Candidate Testing
2
+
3
+ ## Overview
4
+ Test the new CI/CD workflows using v0.1.0-rc5 release candidate to validate tag detection, deployment gates, and TestPyPI integration before production deployment.
5
+
6
+ ## Objectives
7
+ - Commit new workflows to master branch
8
+ - Create and test v0.1.0-rc5 release candidate
9
+ - Verify RC-specific deployment behavior
10
+ - Validate TestPyPI deployment process
11
+ - Confirm production gates remain closed
12
+ - Document any issues for resolution
13
+
14
+ ## Tasks
15
+
16
+ ### Task 4.1: Commit New Workflows (15 minutes)
17
+ **Implementation Steps:**
18
+ ```bash
19
+ # Ensure workflows are ready
20
+ ls -la .github/workflows/
21
+ # Should show: release-pipeline.yml, continuous-integration.yml
22
+
23
+ # Add and commit new workflows
24
+ git add .github/workflows/release-pipeline.yml
25
+ git add .github/workflows/continuous-integration.yml
26
+ git commit -m "feat: add new CI/CD workflows with RC support
27
+
28
+ - release-pipeline.yml: Progressive deployment with RC detection
29
+ - continuous-integration.yml: Lightweight PR validation
30
+ - Bypasses GitHub cache corruption in legacy workflows
31
+ - Enables v0.1.0 release to PyPI"
32
+
33
+ # Push to master
34
+ git push origin master
35
+ ```
36
+
37
+ ### Task 4.2: Create v0.1.0-rc5 Tag (10 minutes)
38
+ **Implementation Steps:**
39
+ ```bash
40
+ # Ensure on master with latest changes
41
+ git checkout master
42
+ git pull origin master
43
+
44
+ # Create release candidate tag
45
+ git tag -a v0.1.0-rc5 -m "Release candidate 5 for SolarWindPy v0.1.0
46
+
47
+ - Test new CI/CD workflows
48
+ - Validate TestPyPI deployment
49
+ - Verify RC-specific behavior"
50
+
51
+ # Push tag to trigger workflow
52
+ git push origin v0.1.0-rc5
53
+ ```
54
+
55
+ ### Task 4.3: Monitor Workflow Execution (20 minutes)
56
+ **Verification Checklist:**
57
+
58
+ **GitHub Actions Monitoring:**
59
+ 1. Navigate to repository Actions tab
60
+ 2. Verify `release-pipeline` workflow triggered
61
+ 3. Monitor job progression:
62
+ - Tag detection identifies RC correctly
63
+ - Quality checks run across full matrix
64
+ - Release branch created
65
+ - TestPyPI deployment executes
66
+ - Production deployments skip
67
+
68
+ **Expected Workflow Behavior:**
69
+ ```
70
+ ✅ Tag Detection: "Release candidate detected: v0.1.0-rc5"
71
+ ✅ Quality Checks: 12 jobs (3 OS × 4 Python versions)
72
+ ✅ Release Branch: Creates "release/v0.1.0-rc5"
73
+ ✅ TestPyPI: Package deployment succeeds
74
+ ❌ PyPI: Skipped (RC detected)
75
+ ❌ Conda: Skipped (RC detected)
76
+ ❌ GitHub Release: Skipped (RC detected)
77
+ ```
78
+
79
+ ### Task 4.4: Validate Release Branch Creation (5 minutes)
80
+ **Verification Steps:**
81
+ ```bash
82
+ # Check if release branch was created
83
+ git fetch origin
84
+ git branch -r | grep release/v0.1.0-rc5
85
+
86
+ # Should return: origin/release/v0.1.0-rc5
87
+
88
+ # Inspect branch content
89
+ git checkout release/v0.1.0-rc5
90
+ git log --oneline -3
91
+ # Should show recent commits leading to RC tag
92
+ ```
93
+
94
+ ### Task 4.5: Verify TestPyPI Deployment (10 minutes)
95
+ **Validation Steps:**
96
+ 1. **Check TestPyPI Package Page:**
97
+ - Visit: https://test.pypi.org/project/solarwindpy/
98
+ - Confirm v0.1.0rc5 appears in version history
99
+ - Verify metadata and description
100
+
101
+ 2. **Test Installation:**
102
+ ```bash
103
+ # Create clean test environment
104
+ conda create -n test-rc python=3.12 -y
105
+ conda activate test-rc
106
+
107
+ # Install from TestPyPI
108
+ pip install --index-url https://test.pypi.org/simple/ \
109
+ --extra-index-url https://pypi.org/simple/ \
110
+ solarwindpy==0.1.0rc5
111
+
112
+ # Verify installation
113
+ python -c "import solarwindpy; print(solarwindpy.__version__)"
114
+ # Expected output: 0.1.0rc5
115
+
116
+ # Cleanup
117
+ conda deactivate
118
+ conda env remove -n test-rc
119
+ ```
120
+
121
+ ## Success Validation
122
+
123
+ ### Must Succeed ✅
124
+ - [ ] Workflows commit successfully to master
125
+ - [ ] v0.1.0-rc5 tag creation triggers workflow
126
+ - [ ] Version detection identifies as release candidate
127
+ - [ ] Quality checks pass across all platforms
128
+ - [ ] Release branch `release/v0.1.0-rc5` created
129
+ - [ ] TestPyPI deployment completes successfully
130
+ - [ ] Package installable from TestPyPI
131
+ - [ ] Version number reports correctly (0.1.0rc5)
132
+
133
+ ### Must Skip ⚠️
134
+ - [ ] PyPI deployment skipped (conditional logic works)
135
+ - [ ] Conda-forge issue creation skipped
136
+ - [ ] GitHub Release creation skipped
137
+ - [ ] No production environment changes
138
+
139
+ ## Acceptance Criteria
140
+ - [ ] New workflows operational without GitHub cache issues
141
+ - [ ] RC detection logic working correctly
142
+ - [ ] TestPyPI deployment pipeline functional
143
+ - [ ] Production deployment gates properly closed
144
+ - [ ] Release branch audit trail created
145
+ - [ ] Package installation validates successfully
146
+ - [ ] Ready for production release testing
147
+
148
+ ## Risk Mitigation
149
+ - **Workflow Monitoring**: Real-time observation of execution
150
+ - **Branch Protection**: Release branches preserve state for debugging
151
+ - **TestPyPI Safety**: No impact on production PyPI
152
+ - **Version Validation**: Confirm correct RC number format
153
+ - **Installation Testing**: Verify package functionality
154
+
155
+ ## Troubleshooting
156
+
157
+ ### If Workflow Fails to Trigger
158
+ - Check tag format matches `v*` pattern
159
+ - Verify tag pushed to correct repository
160
+ - Review GitHub Actions permissions
161
+
162
+ ### If Quality Checks Fail
163
+ - Review test matrix configuration
164
+ - Check for platform-specific issues
165
+ - Validate conda environment setup
166
+
167
+ ### If TestPyPI Deployment Fails
168
+ - Verify TEST_PYPI_API_TOKEN secret configured
169
+ - Check package build process
170
+ - Review upload permissions
171
+
172
+ ## Progress Tracking
173
+ - [ ] Task 4.1: New workflows committed to master
174
+ - [ ] Task 4.2: v0.1.0-rc5 tag created and pushed
175
+ - [ ] Task 4.3: Workflow execution monitored and validated
176
+ - [ ] Task 4.4: Release branch creation confirmed
177
+ - [ ] Task 4.5: TestPyPI deployment verified
178
+ - [ ] All success criteria met
179
+ - [ ] Ready for Phase 5: TestPyPI Validation
180
+
181
+ ## Time Estimate
182
+ **Total: 1 hour**
183
+ - Task 4.1: 15 minutes
184
+ - Task 4.2: 10 minutes
185
+ - Task 4.3: 20 minutes
186
+ - Task 4.4: 5 minutes
187
+ - Task 4.5: 10 minutes
188
+
189
+ ## Notes
190
+ - This phase proves the new workflow architecture works
191
+ - RC testing provides safe validation before production
192
+ - TestPyPI deployment confirms packaging process
193
+ - Release branch creation establishes audit trail
194
+ - Success here enables confident v0.1.0 production release