Conversation
…dels center_to_com!, calculate_inertia_tensor and calc_inertia_y_rotation are removed from ObjAdapter with their export, tests and docs entry. read_faces stays. Also drops the test scaffolding only they used: the serialized _info.bin, the .obj the alignment test read back, and the Serialization test dependency. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1-Bort-1
left a comment
There was a problem hiding this comment.
Independent review (advisory)
Verdict: APPROVE · 0 inline, 0 off the diff
Good
- The diff matches the card: all three functions are removed along with their export, tests and docs entry, and
read_facesstays. The commit stat is +11/−213 across 7 files, as the card says. - No uses remain: grepping
src/,test/,docs/and*.tomlfinds no reference tocenter_to_com!,calculate_inertia_tensororcalc_inertia_y_rotation. Only the untracked.agent/notes mention them. using NonlinearSolveis still needed becausefind_circle_center_and_radiuscallsNewtonRaphsonatobj_geometry.jl:89.LinearAlgebrais still needed fornormatobj_geometry.jl:211and inobj_slice.jl.- It is safe to drop
Serializationfromtest/Project.toml: no test usesserializenow, and the rootProject.toml:31still lists it, so the manifest does not change. - The cleanup in the "Interpolation Creation" testset keeps behaviour: the
faces,.objwrite and_info.binit removes are not used later in the testset. Theread_aero_matrixandcreate_interpolationsassertions are unchanged. - No test was weakened: the only removed assertions tested the deleted functions, and the existing
@test_skipis untouched. - This is removal the rubric asks for: §2 wants one source per equation and nothing kept in case, and the other copy lives in SymbolicAWEModels, which takes only
read_facesfrom here. - The
BREAKING:changelog entry goes under a new## Unreleased, and the version inProject.tomlis not bumped.
Not good
- The changelog line says the names are no longer exported and then "they are gone", which says the same thing twice. "
ObjAdapterdropscenter_to_com!, …" would be enough. - The docs build was not run locally, so the CI Documentation job is the only check. The risk is low: only two
@docsentries were removed, andcalc_inertia_y_rotationhad no docstring or docs entry. test_obj_pathis now written and read only by the "OBJ File Reading" testset. It could move inside that testset, but that is optional.
claude, rubric CLEAN_CODE.md. A different lab from the implementer
on purpose: a reviewer sharing its blind spots would not flag its mistakes.
|
Local full suite: PASS (9 min, Julia 1.12.7, one cell of the matrix) |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
||
| ### Changed | ||
|
|
||
| - BREAKING: `ObjAdapter` no longer exports `center_to_com!`, `calculate_inertia_tensor` |
There was a problem hiding this comment.
Keep the functions, mark them deprecated, and rm them in the next breaking release, because otherwise we have too many breaking changes.
There was a problem hiding this comment.
Done in e344c8e: the three functions are back with their export, tests and docs, each emits a deprecation warning, and the changelog entry is a deprecation instead of BREAKING.
Per review, center_to_com!, calculate_inertia_tensor and calc_inertia_y_rotation come back with their export, tests and docs entry, and each now emits a deprecation warning naming SymbolicAWEModels. Their tests assert the warning with @test_deprecated. The changelog entry is a deprecation rather than BREAKING; removal waits for the next breaking release. The dead _info.bin serialization in test_kite_geometry.jl and the Serialization test dependency stay removed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
TL;DR
center_to_com!,calculate_inertia_tensorandcalc_inertia_y_rotationstay inObjAdapterbut now emit a deprecation warning pointing at SymbolicAWEModels, and are to be removed in the next breaking release. SymbolicAWEModels computes mesh mass properties with its own copies, so two copies of one inertia integral live in two packages; deprecating rather than deleting keeps this release non-breaking, as asked in review.What changes for a caller
Nothing, apart from the warning. With
--depwarn=yes(whatPkg.testand CI use) each call site warns once:`center_to_com!` is deprecated and will be removed in the next breaking release; SymbolicAWEModels computes mesh mass properties.With Julia's default--depwarn=noit is silent. The three docstrings say they are deprecated,calc_inertia_y_rotationgets the docstring it never had and joins the other two onprivate_functions.md. The changelog entry under## Unreleased→### Changedis a deprecation, notBREAKING:.The message is built in one helper,
depwarn_inertia(name), so the three functions cannot word it differently.Who uses them
Nobody outside this repo.
gh search codeon OpenSourceAWE and 1-Bart-1, plus a shallow clone and grep of the repos where code search came back empty, found no import or call of VortexStepMethod's copies. SymbolicAWEModels (src/obj_adapter.jl:50,src/system_structure/rigid_body.jl:191) and StableAWEModels (rigid_body.jl:180) define their own, and SymbolicAWEModels takes onlyObjAdapter.read_facesfrom here. BeyondTheSimexamples/neuralfoil.jl:67doesusing VortexStepMethod.ObjAdapterand never calls them. So the warning should reach nobody, and removal in the next breaking release should break nobody either.Tests
The existing tests of the three functions stay and now wrap one call of each in
@test_deprecated, so they assert the warning as well as the result. Intest_kite_geometry.jlthe "Interpolation Creation" testset also serialized an_info.binof inertia tensor, COM and interpolants that nothing read; that block is gone, and with itSerializationfromtest/Project.toml. The.objit writes stays, because "Alignment to principal frame" reads it back.Found on the way, not changed here
find_circle_center_and_radiusandcreate_interpolations, the other twoObjWingleftovers inobj_geometry.jl, have no caller insrc/orext/: only their own testsets call them. They are unexported, and deleting them wants its own importer search; with the aim of keeping breaking changes down, they could be deprecated alongside these three in a follow-up.Verification
test_kite_geometry.jlunder--depwarn=yesagainst main'sobj_geometry.jlfails 3 ×Log Test Failed … Log Pattern: (:warn, r"deprecated"i, Ignored(), :depwarn)(21 pass, 3 fail, 1 broken).@test_skip), exit 0.test/obj_adapter/test_obj_adapter.jl: 52/52 pass (juliaserver, test env, default depwarn)agent ci-local)docs/environment has no manifest; the CI Documentation job builds itread_faces(git merge-tree)--depwarn=errorsomewhere downstream would now error on these calls; the search above found no caller for that to hit.Scope
+29 / −17 across 5 files against main: the helper, three
depwarn_inertiacalls, docstring lines, oneprivate_functions.mdline, the changelog entry, three@test_deprecatedwrappers, and the dead_info.binblock with itsSerializationdependency. Most open PRs also add toCHANGELOG.md, and #320, #340, #346, #351 and #352 todocs/src/private_functions.md; #350 editstest_obj_adapter.jl. Whichever merges later may need a small textual merge.Closes #324 · task
VortexStepMethod.jl-324