Skip to content

Package maintenance: Aqua, ExplicitImports, struct mutability, coverage, docstrings, README#43

Merged
kdw503 merged 11 commits into
masterfrom
dwk/mng
May 20, 2026
Merged

Package maintenance: Aqua, ExplicitImports, struct mutability, coverage, docstrings, README#43
kdw503 merged 11 commits into
masterfrom
dwk/mng

Conversation

@kdw503
Copy link
Copy Markdown
Member

@kdw503 kdw503 commented May 20, 2026

Summary

  • Add Aqua.jl quality checks
  • Add ExplicitImports.jl and make all module imports explicit
  • Mark all mutable struct fields const
  • Fix _optimize! dispatch for BSpline{Linear{...}} (Interpolations v0.15+ broke the linear/subgradient path silently)
  • Improve test coverage (~35% → ~55%): new testsets for to_float, p2rigid, to_full, grid_rotations, fit_sigmoid/sigpenalty, optimize_rigid
  • Rewrite all public docstrings: fix auto_λ 6-element return (was 5, silently misassigned λ_all to datapenalty), fix fit_sigmoid method signatures, add return descriptions, add jldoctest examples
  • Add Documenter doctest runner to test suite
  • Add README with installation, ecosystem table, concepts, and usage examples

Test plan

  • CI passes on ubuntu + windows, Julia min + 1
  • Codecov shows coverage improvement
  • Doctest testset passes

🤖 Generated with Claude Code

kdw503 and others added 10 commits May 19, 2026 14:35
- Remove stale RegisterMismatch from [deps] (only appeared in a warning string)
- Add missing compat entries for stdlib and test-only deps
- Add Aqua testset with treat_as_own for the intentional RegisterCore.maxshift extension

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
No fields are ever reassigned after construction — only their internal
contents are mutated in-place (e.g. ap.λ, ϕ.u). Adding const enforces
this invariant and helps the compiler.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…_rotations

Fix _optimize! dispatch for BSpline{Linear{...}} (Interpolations v0.15+ changed
the type from BSpline{Linear} to BSpline{Linear{Throw{OnGrid}}}), so the
subgradient path was silently bypassed. Add new testsets for to_float, p2rigid,
to_full, grid_rotations, fit_sigmoid/sigpenalty, and optimize_rigid. Also declare
RegisterMismatch as an explicit test dependency (it was already used but unlisted).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Module: remove nonexistent qd_rigid, list unexported helpers separately
- auto_λ: fix 6-element return signature (was 5, silently misassigned λ_all
  to datapenalty); two-signature header; Returns: bullet list
- auto_λt: fix "fix"→"fit"; document λts/datapenalty return types
- fixed_λ: clarify mmis must be "produced by interpolate_mm!" (not "already
  interpolating"); document ϕ and penalty types
- initial_deformation: qualify "globally-optimal" as w.r.t. the quadratic
  approximation; document converged=false meaning and fallback behavior; add
  jldoctest example
- fit_sigmoid: replace misleading [optional-arg] notation with two explicit
  signatures; add return description including objective_value; add jldoctest;
  imperative mood
- Add Documenter as test dependency; run doctests via doctest(; manual=false)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers: HolyLabRegistry installation, ecosystem table, concepts
(mismatch data, regularization, rigid vs deformable), and usage
examples for fixed_λ, auto_λ, optimize_rigid, and temporal sequences.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The _optimize! dispatch was widened to BSpline{<:Interpolations.Linear},
which uses the qualified name rather than the imported symbol.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 61.89%. Comparing base (2188ba3) to head (a7be6c5).

Additional details and impacted files
@@             Coverage Diff             @@
##           master      #43       +/-   ##
===========================================
+ Coverage   36.22%   61.89%   +25.67%     
===========================================
  Files           1        1               
  Lines         577      580        +3     
===========================================
+ Hits          209      359      +150     
+ Misses        368      221      -147     

☔ View full report in Codecov by Sentry.
📢 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.

Comment thread src/RegisterOptimize.jl Outdated
const wfixed::A
const moving::I
const SD::SDT
const thresh
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If all fields are const you can just delete the mutable instead. Did the agent not suggest this?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't suggest.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try to change the agent instructions, thanks

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I've updated the skill. Hopefully it won't happen again.

Do let me know of any weird things like this you see.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I will.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@kdw503 kdw503 merged commit e3c94cc into master May 20, 2026
6 checks passed
@kdw503 kdw503 deleted the dwk/mng branch May 20, 2026 16:14
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.

2 participants