Skip to content

Require GeometricOptimizers 0.9 and ReducedComplexityModeling 0.5 - #38

Merged
michakraus merged 5 commits into
mainfrom
compat/go-0.9-rcm-0.5
Nov 1, 2026
Merged

michakraus merged 5 commits into
mainfrom
compat/go-0.9-rcm-0.5

Conversation

@michakraus

@michakraus michakraus commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

What changes and why

[compat] moves to GeometricOptimizers 0.9 and ReducedComplexityModeling 0.5:

package before after
GeometricOptimizers "0.7, 0.8" "0.9"
ReducedComplexityModeling "0.3" "0.5"
GeometricBase "0.14.9, 0.15" "0.15"
SimpleSolvers "0.13.2, 0.14" "0.14.2"
GeometricEquations "0.21" "0.21.5"
GeometricSolutions "0.6.5" "0.6.6"

The two main bounds move together. ReducedComplexityModeling 0.3 requires NeuralNetworkParameters 0.3, and GeometricOptimizers 0.9 requires NeuralNetworkParameters 0.5, so no environment holds both.

Four floors rise because of the General registry:

  • Every GeometricOptimizers 0.9 release requires GeometricBase 0.15 and SimpleSolvers 0.14.2 - 0.14. The old floors of GeometricBase and SimpleSolvers can therefore not resolve beside it, and the Downgrade job fails on them.
  • GeometricEquations 0.21.0–0.21.4 and GeometricSolutions 0.6.0–0.6.5 require GeometricBase 0.14. With GeometricBase at 0.15, their floors rise to 0.21.5 and 0.6.6.

The floor set resolves on Julia 1.12: GeometricBase 0.15.0, GeometricEquations 0.21.5, GeometricOptimizers 0.9.0, GeometricSolutions 0.6.6, ReducedComplexityModeling 0.5.0, RuntimeGeneratedFunctions 0.5.12, SimpleSolvers 0.14.2, Symbolics 7.0.0.

No source or test file changes. The package uses Optimizer, OptimizerState, BFGS and Backtracking from GeometricOptimizers, and TrainingData and IntrinsicSpace from ReducedComplexityModeling; the tests also use ObservableSpace. Both releases keep these names. The CHANGELOG [Unreleased] section gets one entry for the bounds and floors, and the Julia 1.12 floor entry now names GeometricOptimizers 0.9 and ReducedComplexityModeling 0.5 as its reason. No release.

Supersedes #35 and #37.

Test suite

A fresh resolve gives GeometricOptimizers v0.9.2, ReducedComplexityModeling v0.5.0 and NeuralNetworkParameters v0.5.4; the base resolves GeometricOptimizers v0.8.0 and ReducedComplexityModeling v0.3.1.

Pkg.test() passes 261 assertions on the branch, the same count as on the base: Aqua 9, Basis 30, Extended Bases 60, Training Data 15, Solvers 11, SINDy 12, Hamiltonian SINDy 37, RCM 38, Conformance 49. The last two commits of the branch change only CHANGELOG text.

Critic verdict: PASS

clause evidence verdict
1. [compat] reads GO "0.9" and RCM "0.5"; no other line changes unless the resolve needs it only the two [compat] hunks at the judged head; the four floors that follow are the decisions below met
2. fresh resolve shows GO 0.9.x and RCM 0.5.x, and Pkg.test() passes GO v0.9.2, RCM v0.5.0, NNP v0.5.4; base GO v0.8.0, RCM v0.3.1; 261 = 261 met
3. no GradientOptimizer, MomentumOptimizer, AdamOptimizer or optimize_for_one_epoch! git grep has no hits on the base or the branch met
4. one [Unreleased] entry for the bounds; the Julia 1.12 sentence names GO 0.9 / RCM 0.5 confirmed against the registry met
edge: RCM 0.5 call sites the package uses only TrainingData, IntrinsicSpace, ObservableSpace met
edge: default stays BFGS() with Backtracking() unchanged met

Mutant survival

The named mutant replaces the default algorithm = BFGS() of OptimizerSolver() with GradientMethod(). It survives the OPTIMIZER_ATOL tests at test/solvers.jl:34 and :42: the errors are 6.19e-8 and 5.47e-8 with GradientMethod(), against 2.78e-9 and 7.00e-9 with BFGS(), all below the tolerance 1e-6. The suite still catches the mutant at test/reducedcomplexitymodeling.jl:134.

Decisions taken without the user

  • The floors that the new GeometricOptimizers bound makes unreachable rise with it: GeometricBase "0.15" and SimpleSolvers "0.14.2", because every GeometricOptimizers 0.9 release requires GeometricBase "0.15" and SimpleSolvers "0.14.2 - 0.14", so the Downgrade job cannot resolve the old floors. Clause 1's "no other [compat] line" does not cover these two; the CHANGELOG entry names them.
  • GeometricEquations rises to "0.21.5" and GeometricSolutions to "0.6.6", because GeometricEquations 0.21.0–0.21.4 and GeometricSolutions 0.6.0–0.6.5 need GeometricBase 0.14, and the floor set then resolves on Julia 1.12.

Clause 1 as written ("no other [compat] line changes") is therefore not met: four more lines change, for the registry reasons above.

Pre-PR verification

  • Fixed: nothing needed a fix. After the verifier ran, one CHANGELOG sentence with two colons was joined with "because"; this one-word change is the only text that the verifier has not read.
  • Unresolved: none.
  • Pre-existing: one [Unreleased] entry says test/Project.toml lists GeometricBase, GeometricEquations and Symbolics with the root's bounds. An earlier entry says they were removed, and the file agrees with the earlier one. This is a nit, and this branch did not cause it.
  • Checked and clean:
    • Every new [compat] bound and every registry claim in the new CHANGELOG entry agrees with General.
    • The floor set is consistent with itself, and the test-only and docs-only bounds (GeometricIntegrators 0.18, GeometricProblems 0.8/0.9) still admit it.
    • The names the package imports still exist in GeometricOptimizers 0.9.2, and its re-export of solve, which two source comments describe, is still there.
    • No file other than CHANGELOG.md names an old bound.
    • Both changed files are NFC.
  • Not checked: piracy, type stability and allocations, because no executable line changed. The Downgrade resolve was not run locally; CI runs it.
  • Release: no bump needed. Nothing has been released, and the package stays at 0.1.0.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Compatibility
    • Updated the minimum supported Julia version to 1.12 and revised minimum version requirements for compatible packages.
  • Documentation
    • Updated the unreleased 0.1.0 changelog to reflect the current compatibility requirements.

michakraus and others added 5 commits November 1, 2026 12:24
The two bounds move together: RCM 0.3 needs NeuralNetworkParameters 0.3
and GO 0.9 needs 0.5, so no environment holds both. No code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every GeometricOptimizers 0.9 release requires GeometricBase 0.15 and
SimpleSolvers 0.14.2 - 0.14, so the old floors cannot resolve beside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and 0.6.6

GeometricEquations 0.21.0-0.21.4 and GeometricSolutions 0.6.0-0.6.5
require GeometricBase 0.14, so beside the GeometricBase floor of 0.15
the Downgrade floor set cannot resolve. With these floors it resolves
on Julia 1.12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1ee6f75b-3a78-457c-869e-dbae5d64990c
Commits

Reviewing files that changed from the base of the PR and between 5794199 and d198339.

Files selected for processing: 2
  • CHANGELOG.md
  • Project.toml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

The project raises its Julia minimum to 1.12 and updates compatibility bounds for several dependencies. The changelog records the updated requirements and related compatibility history.

Changes: Compatibility bounds

Layer / File(s) Summary
Julia and dependency compatibility bounds
Project.toml, CHANGELOG.md
Project.toml updates minimum versions for six dependencies. The changelog records the Julia 1.12 minimum and explains the revised dependency bounds and compatibility history.

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Possibly related PRs

Suggested labels: dependencies

Merge Risk: Minimal · up to d1983

No actionable merge-blocking issue is established by the reviewed changes.

Architecture risk: Low · up to d1983

The change affects 2 systems.

Changed systems: CHANGELOG.md, Project.toml

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — CHANGELOG.md (service) was modified; 1 changed file maps to changed impact.
  • observed — Project.toml (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in CHANGELOG.md: The changelog changes the stated Julia minimum from 1.11 to 1.12 and updates the compatibility explanation to name GeometricOptimizers 0.9 and ReducedComplexityModeling 0.5 as requiring that version.
  • observed — Modified behavior in CHANGELOG.md: The changelog replaces the prior dependency bounds with GeometricOptimizers 0.9 and ReducedComplexityModeling 0.5 only, explaining that their NeuralNetworkParameters requirements prevent the older versions from resolving together. It updates the associated minimums for GeometricBase and SimpleSolvers, then raises GeometricEquations and GeometricSolutions minimums to versions compatible with GeometricBase 0.15.
  • observed — Modified behavior in CHANGELOG.md: The changelog updates the ReducedComplexityModeling dependency version from 0.3 to 0.5 and revises the compatibility history accordingly. It retains the statements that no names are re-exported or added and that the conversion between RCM TrainingData and package TrajectoryData is private.
  • observed — Modified behavior in CHANGELOG.md: The changelog updates the minimum-version consequences: environments below the prior GeometricBase, SimpleSolvers, and RuntimeGeneratedFunctions floors cannot resolve the release, and the related dependency-bound entry raises GeometricBase, SimpleSolvers, and GeometricSolutions floors again.
Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely identifies the main compatibility changes: requiring GeometricOptimizers 0.9 and ReducedComplexityModeling 0.5.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)

Finishing Touches
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@codecov

codecov Bot commented Nov 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.91%. Comparing base (5794199) to head (d198339).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #38   +/-   ##
=======================================
  Coverage   89.91%   89.91%           
=======================================
  Files          10       10           
  Lines         357      357           
=======================================
  Hits          321      321           
  Misses         36       36           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@michakraus
michakraus merged commit 333e932 into main Nov 1, 2026
14 checks passed
@michakraus
michakraus deleted the compat/go-0.9-rcm-0.5 branch November 1, 2026 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant