Skip to content

Package modernization: deprecations, type widening, Aqua, ExplicitImports, coverage, docstrings, docs - #45

Merged
kdw503 merged 13 commits into
masterfrom
dwk/mng
May 4, 2026
Merged

Package modernization: deprecations, type widening, Aqua, ExplicitImports, coverage, docstrings, docs#45
kdw503 merged 13 commits into
masterfrom
dwk/mng

Conversation

@kdw503

@kdw503 kdw503 commented May 1, 2026

Copy link
Copy Markdown
Member

Summary

Comprehensive package maintenance pass covering all major quality dimensions:

  • API modernization (v0.5.0): widened type signatures, renamed similarϕsimilar_deformation, named-tuple compose, removed all deprecated methods
  • Tooling: added Aqua.jl quality checks, ExplicitImports.jl (no implicit using), runic formatting, .git-blame-ignore-revs
  • Test coverage: significantly expanded test suite, fixed latent bugs uncovered by new tests
  • Docstrings: full indented-signature style docstrings on all exported symbols
  • Documentation: updated README badges (Travis → GitHub Actions, added codecov), HolyLab registry installation instructions, Quick start example; fixed broken sentences and non-deterministic jldoctest blocks in docs/src/index.md; corrected stale symbol names in api.md (similarϕ, medfilt); modernized CI workflows (checkout@v4, codecov-action@v5, added setup-julia to Documenter job); updated Documenter compat to "1", added checkdocs=:exports

Test plan

  • CI passes on min and 1 Julia versions
  • Documenter build succeeds and deploys docs
  • Codecov coverage report uploads correctly

🤖 Generated with Claude Code

kdw503 and others added 12 commits April 30, 2026 14:29
… (v0.5.0)

Breaking:
- warp!(::Type{T}, dest, img, ϕs) → warp!(dest, img, ϕs; eltype=Float32)

Non-breaking:
- tformtranslate/tformrotate/rotation3/rotationparameters: Vector/Matrix → AbstractVector/AbstractMatrix
- translate: DimsLike → Union{AbstractVector{<:Integer}, Dims}
- compose(f::Function, ϕ) restricted to compose(::typeof(identity), ϕ)
- warpgrid: add ϕ::AbstractDeformation annotation
- Add tmedfilt!(out, ϕs, n) in-place variant

Internal consistency:
- similarϕ → similar_deformation (deprecated shim kept)
- medfilt → tmedfilt (deprecated shim kept)
- compose returns named tuple (; ϕ, gradient) — positional destructuring unchanged
- Export NodeIterator
- Add docstrings to rotation2/rotation3 clarifying return types

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>
- .git-blame-ignore-revs: marks the runic formatting commit so git blame skips it
- .claude/settings.json: auto-formats .jl files with runic after each Edit/Write

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Delete src/deprecated.jl and all deprecated shims (knots→nodes,
  integer-size GridDeformation constructors, old tform2deformation
  signature, eachknot/knotgrid bindings, similarϕ, medfilt,
  compose(f::Function,ϕ), warp!(T,dest,...))
- Add Aqua.jl to test dependencies; mark intentional warp! piracy as broken
- Update Project.toml compat entries for test deps and stdlib

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Convert all bare `using Module` statements to explicit named imports,
remove the unused IdentityUnitRange import, replace Base._unsafe_getindex!
with copyto!/view and Base.dims2string with join(..., "×"), and add
test_explicit_imports to the test suite.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add NodeIterator length/size/IteratorSize so collect(eachnode(...)) works
- Fix TransformedArray: make callable and fix Base.similar (undef, dims)
- Add new testsets: AbstractDeformation interface, WarpedArray interface,
  Error paths, translate, 3D rotations, warp with AffineMap, warp_type,
  TransformedArray 3D, transform! identity fast path, compose vector,
  tmedfilt window>=5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add docstrings for all previously undocumented exported symbols:
  AbstractDeformation, NodeIterator, arraysize, getindex!, rotationparameters,
  tformeye, tformtranslate, tformrotate, vecindex, vecgradient!
- Fix compose(vector) docstring: replace stub with proper description
- Fix griddeformations: typo "seqeuential" -> "sequential"
- Fix tinterpolate: update to standard indented-signature format
- Fix WarpedArray: update first-arg description (accepts any array, not just
  AbstractExtrapolation); add julia tag to code block
- Fix TransformedArray: modernize docstring style, add julia tag
- Fix transform: add missing closing paren in signature
- Fix transform!: remove phantom tfm argument from signature
- Expand eachnode docstring to cover eachnode(nodes) overload

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Convert backtick-inline signature docstrings in warp.jl and griddeformation.jl
to the standard Julia indented format with return-type annotations. Clarifies
the two distinct compose forms (functor vs ∘/compose with gradient).

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

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@kdw503
kdw503 force-pushed the dwk/mng branch 4 times, most recently from 6395de2 to dfde718 Compare May 1, 2026 18:48
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@kdw503
kdw503 merged commit 723aaf4 into master May 4, 2026
3 checks passed
@kdw503
kdw503 deleted the dwk/mng branch May 4, 2026 21:29
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