Skip to content

feat(release): prepare version 0.2.0 - #47

Draft
amaurigmartins wants to merge 323 commits into
mainfrom
release/v0.2.0
Draft

amaurigmartins wants to merge 323 commits into
mainfrom
release/v0.2.0

Conversation

@amaurigmartins

Copy link
Copy Markdown
Member

Summary

Prepare LineCableModels.jl 0.2.0 for General registration with package extensions, bounded repository cleanup, strict documentation and CI, and a release-only FEM/GetDP gate.

Scope

  • move Makie backends and Gmsh behind package extensions
  • retain the deprecated FEM/GetDP compatibility facade
  • remove Binder and the accidental standalone cable-builder subsystem
  • adopt Aqua, TestItemRunner, SciML formatting, scoped gitlint, and modular documentation
  • add release metadata, audit evidence, and the KU Leuven OSS checklist

Verification

The release snapshot has previously passed:

  • 1,734 core assertions
  • 1,744 CairoMakie-enabled assertions
  • 19 FEM integration assertions with checksum-verified GetDP 3.5.0
  • Aqua, SciML formatting, gitlint, strict docs/doctests, and clean installation
  • core-only import without Makie backends, Gmsh, or GetDP loaded

Registration and tagging are explicitly excluded. The package owner will trigger JuliaRegistrator after the release review and institutional approvals.

@codecov

codecov Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.22%. Comparing base (470ed61) to head (7ef5d96).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main      #47       +/-   ##
===========================================
+ Coverage   39.96%   95.22%   +55.26%     
===========================================
  Files         129      268      +139     
  Lines        8686    22610    +13924     
===========================================
+ Hits         3471    21530    +18059     
+ Misses       5215     1080     -4135     
Files with missing lines Coverage Δ
ext/LineCableModelsCairoMakieExt.jl 50.00% <ø> (+50.00%) ⬆️
ext/LineCableModelsDistributionsExt.jl 87.80% <ø> (ø)
ext/LineCableModelsGLMakieExt.jl 20.00% <ø> (+20.00%) ⬆️
ext/LineCableModelsGmshExt/compute.jl 93.71% <ø> (ø)
ext/LineCableModelsGmshExt/formulations.jl 100.00% <ø> (ø)
ext/LineCableModelsGmshExt/geometry.jl 96.66% <ø> (ø)
ext/LineCableModelsGmshExt/getdp.jl 97.88% <ø> (ø)
ext/LineCableModelsGmshExt/mesh.jl 93.47% <ø> (ø)
ext/LineCableModelsGmshExt/model.jl 93.35% <ø> (ø)
ext/LineCableModelsGmshExt/onelab.jl 96.25% <ø> (ø)
... and 74 more

... and 265 files with indirect coverage changes

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

Earth and equivalent-earth equations resolve through the Commons bindings generic and one formulation_options projection, which replaces three copies of the option merge. Law-result, compare, XLSX, Unified and earth checks take their subject first; the dielectric conversion moves to its consumer. PSCAD checks take the PSCAD formulation as context. Allocation ceilings fall and are recorded.
Commons owns the validate generic, its docstring and the AbstractProblemDefinition interface. The InputValidation module is removed; the root export of validate is unchanged. The validate tests move under test/unit/commons, and the docs, the module order and the test taxonomy drop InputValidation.
check_core_result becomes validate(element, result space), whose context is the result space being built. The uncertain grids and AbsoluteError check their errors and nominal values through validate methods with the same messages. The root definitions fall from 67 to 65.
Engine owns AbstractModalOperators; ModalOperators subtypes it with Base.size, and ModalDomain validates itself on construction, so Engine no longer names a ModalAnalysis type. The basis, operator, ring, material-role, shunt-model and MonteCarloResult checks take their subject first. check_eigenpairs! becomes the predicate diagonalizes!, which documents its three acceptance conditions.
The Gmsh material, shape, partition, interface, mesh, completion, field-map and checksum checks become validate methods whose context is the FEM model being built or the FEM run. The live GetDP attempt becomes a query whose caller raises the error. Makie guide attributes are validated for the Legend or Colorbar being built. PSCAD frequencies and solver identities become validate methods, and the standalone runner defines its own validate. Only the observation-layer reserved verbs remain in the baseline.
A validate method that does work must use its subject in it; identity methods still pass. The controls plant the rejected shape and keep an identity method clean. The emptied validate baseline table is deleted, so the guard fails on any finding. The validate docstring states the subject and context contract, and the changelog records the moved, added and removed names.
The validate baseline table returns as an empty table, so the ratchet keeps comparing it, and the developer guide states that emptied tables stay. Prose added in this PR is rewritten to pass Vale.
The workspace Manifest.toml is committed, so a worktree of a later revision already holds one and the copy failed before the equivalence check and the timing comparison ran.
TextDisplay.@showfields attaches the caller source location to the methods it generates, so they no longer claim to live in TextDisplay.jl. Removes the five TextDisplay placement baseline entries.
PSCAD is a core submodule, so its sources and the standalone remote runner project move to src/pscad. The root include, CI, the remote Manifest exception and the tests take the new paths. Removes the eleven PSCAD placement baseline entries; the other PSCAD baseline keys follow the rename.
ModalAnalysis owns the positional modal composition for line-parameter problems, their Gridspace and Gridpoint, with any formulation. ParametricBuilder owns the ParametricProblem variant. The root delegation file is deleted. A test-owned formulation shows that the keyword, the positional form and a parametric study compose like the explicit two-step form. Clears the last placement baseline entry and lowers the root count.
A lowered or removed inferred floor passes when the @inferred lines removed from its file appear again, unchanged apart from indentation, as added lines of another file and cover the drop. Controls cover a move, a deletion, an edited line, a line kept in its file and a drop beyond the moved lines.
The logging, VDE parser and Grid and Gridspace tests move under the directories of the code they exercise and take matching names and owner tags. The modal test formula leaves FormulaFixtures for its own test module, so seven Engine items take the engine owner. The PSCAD parser test defines its transport methods in the test item. A Commons unit test covers nominal for deterministic, complex and array values. The inferred floors follow the moved assertions.
uncertainty mirrors nominal: a deterministic number returns the zero of its own type, a complex value the uncertainty of each part and an array the uncertainty of each element. The fallback that returned 0.0 for any value is removed, so a value that is not a number throws a MethodError. The Makie numeric line data maps missing observations to a zero error.
The modal analysis page says where the modal keyword exists and how the positional form composes any formulation that returns LineParameters. The conventions page records that ext holds package extensions only and that PSCAD lives in src/pscad. The changelog records the PSCAD move and the call-site location of showfields methods.
The shadowing guard compares the names that using LineCableModels brings into scope with Base and the standard libraries. DataFrames leaves the list. The shadowing baseline is empty.
Commons owns initialize_buffers. Each formula and shared component builds its storage in its own method, and the separate storage builders are removed. The workspace fields are input, plan, buffers and trace. SpectralIntegral is a formulation and integrate takes it first. The boundary shunt builds its kernel buffers through the hook. Monte Carlo runs a pilot stage, allocates its sample buffers once and runs the other trials in their own stage. The baseline ratchet treats an owner change of an extended function as a rename.
TextDisplay.quantity and the Conductor, Insulator and Semiconductor modules are removed. Their callers use core, sheath, insulation and screen. Pose2 is callable on a point and replaces both private point transforms.
A workspace struct holds exactly input, plan and buffers, and optionally trace. Storage builders other than initialize_buffers, Buffers types outside Commons, storage-suffixed type names, and fields or locals named work, scratch, storage or cache fail. The baseline lists the two workspaces that keep other fields for now.
The developer guide states the buffers rule, the narrowed shadowing guard, the storage vocabulary guard and the owner renames that the baseline ratchet accepts. The user guides say buffers, plan and trace. The changelog lists the callable Pose2, the Commons-owned initialize_buffers, the SpectralIntegral formulation and the removed TextDisplay.quantity, alias modules and integration_workspace.
Measurements stores a partial derivative only when it is nonzero, so last-bit differences between machines move the counts of uncertain scenarios. Each row may now move by its allowance, the uncertain real scalars of its result, which the allocation tool computes live. Plain-number scenarios compare exactly. The relative tolerance is removed.
Vale reports stacked sentence openings in the built developer guide.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

1 participant