joss: address reviewer Tangi - #813
Open
jbcaillau wants to merge 16 commits into
Open
Conversation
Apply the 12 editorial suggestions from JOSS review issue #802 to joss/paper.md. No content changes; paper.pdf is regenerated by the Compile JOSS paper workflow. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Uniform styling: hyperlink and cite every .jl package / tool at its first mention in each section (ForwardDiff.jl, DifferentiationInterface.jl, NonlinearSolve.jl, ADNLPModels, ExaModels, MadNLP, Knitro, IPOPT, NLPModelsIpopt.jl, DifferentialEquations.jl, and the Julia packages bullet of State of the Field). - Add a MINPACK citation (More, Garbow & Hillstrom 1980, ANL-80-74). - Cite IPOPT directly in the "Modelers and solvers" paragraph. - joss-oc-example: point at the Zenodo all-versions (concept) DOI 10.5281/zenodo.19663649 so the reference always resolves to the latest release; drop the now-misleading version field. - Add a "Problem Class" section making the supported problem class explicit (Bolza/Mayer/Lagrange, free initial/final time, boundary, variable, path and mixed constraints, box constraints, autonomous and non-autonomous dynamics) and stating what is out of scope (multiphase, DAEs, hybrid/nonsmooth systems). - Cite the previously unused QuantumControl.jl bib entry. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Every package / tool is hyperlinked at each of its occurrences, while the bibliography tag [@key] is given only at the first occurrence. Adds the missing hyperlinks (InfiniteOpt.jl, JuMP, ADNLPModels, ExaModels, MadNLP, CUDSS) and drops the duplicated tags (@Patterson2014, @Verschueren2021, @Andersson2019, @arnstrom2022daqp, @Gagnon_*, @pulsipher2022unifying, @QuantumControl_jl, @shin2023accelerating, @shin*, @ADNLPModels_jl, @OptimalControlProblems_jl, @Wachter2006, @rackauckas2017*). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Align .zenodo.json DOI with the concept DOI already used in CITATION.bib/CITATION.cff (10.5281/zenodo.13336563) - Remove unused Documenter/NLPModels/SolverCore from Project.toml; move ADNLPModels to [extras]/[targets] since it is only needed by tests for now (CTSolversADNLPModels extension not yet in the pinned CTSolvers version) - Remove unused DataFrames dependency from docs/Project.toml - Explain why NLPModelsIpopt/Plots must be loaded (extension triggers) in README.md and docs/src/index.md basic usage examples - Drop pinned Julia versions in CI.yml so CPU and GPU jobs both use the reusable workflow's default (1.10 and 1.12) instead of diverging (1.12 vs floating 1) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ocots
marked this pull request as ready for review
July 27, 2026 16:16
9 tasks
SolverCore was fully removed as unused, but it is used by test/suite/reexport/test_ctsolvers.jl (AbstractExecutionStats signature check) — same situation as ADNLPModels. Move it to [extras]/[targets] instead of dropping it entirely, and loosen its compat bound to "0.3" to match the other extras entries. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…1.11
On Julia 1.10, type inference for _extract_kwarg gives the wider
Union{Nothing, AbstractDiscretizer} instead of the concrete runtime
type, making @inferred fail — a compiler precision difference, not
a logic bug. Same pattern already used in CTFlows.jl for an
analogous allocation check.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Member
Author
|
@tmigot can you please review? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Addresses the JOSS review comments of @tmigot, connected to openjournals/joss-reviews#10630. This PR collects all of the reviewer's issues; it is kept as a draft until they are all covered.
All changes so far are in
joss/(paper.md,paper.bib).joss/paper.pdfis rebuilt and auto-committed by theCompile JOSS paperworkflow (.github/workflows/JOSS.yml) on push.The reviewer's line numbers refer to the rendered PDF; the mapping to
joss/paper.mdsource lines is given below where relevant.Issue #802 — minor typos / wording
All 12 suggestions applied verbatim; editorial only, no technical content changed.
paper.mdIn contrast with InfiniteOpt.jl that is designed→In contrast to InfiniteOpt.jl, which is designedBesides, contributing to…→Moreover, contributing to…Pontryagin's Maximum Principle and that heavily rely→Pontryagin's Maximum Principle, which heavily relyDirect method tools→Direct-method toolsStrong direct method implementations:→Strong direct-method implementations:PDE's→PDEsarbitrary user defined functions→arbitrary user-defined functionsNon-regression on complex problems is increasingly driven by OptimalControlProblems.jl, used as a curated problem bank.→Regression testing on complex optimal control instances is increasingly supported by OptimalControlProblems.jl, which serves as a curated problem bank.Both approaches resort to iterative solvers→Both approaches rely on iterative solversmay converge or not, e.g. depending on…→may or may not converge, e.g., depending on…The package serves educational purposes through Tutorials.jl covering topics…→The package also serves educational purposes through Tutorials.jl, which covers topics…across the control-toolbox ecosystem packages→across the control-toolbox ecosystemExisting markdown links (items 8 and 11) and the
*e.g.*italics (item 10) were preserved.Issue #803 — paper review
1. Uniform styling / linking of
.jlpackagesA single explicit convention is now applied throughout the paper:
ForwardDiff.jl,DifferentiationInterface.jl,NonlinearSolve.jl,NLPModelsIpopt.jl,Knitro,InfiniteOpt.jl,JuMP,ADNLPModels,ExaModels,MadNLP,CUDSS, and every package in the Julia packages bullet of State of the Field.@Patterson2014,@Verschueren2021,@Andersson2019,@arnstrom2022daqp,@Gagnon_*,@pulsipher2022unifying,@QuantumControl_jl,@shin2023accelerating,@SHIN2024110651,@SHIN2021693,@ADNLPModels_jl,@OptimalControlProblems_jl,@Wachter2006,@rackauckas2017differentialequations.QuantumControl.jlis now cited: theQuantumControl_jlentry was present inpaper.bibbut unused.The only names left unlinked are those inside the bold bullet labels of State of the Field (
**Legacy tools (COTCOT, HamPath, NutoPy)**,**Direct-method tools (BOCOP, ACADO, GPOPS-II, acados, nosnoc)**), which are enumerations of what the bullet is about; each is hyperlinked in the body of its bullet.2. MINPACK citation
Added
@More1980topaper.bib— Moré, Garbow & Hillstrom, User Guide for MINPACK-1, ANL-80-74, Argonne National Laboratory, 1980, doi:10.2172/6997568 — and cited it at theMINPACK.jlmention in the Indirect methods paragraph.3. Companion example citation / version
The reviewer is right that
v1.0.0was stale (v1.0.1was released on 2026-06-11). Rather than bumping to the version DOI, the entry now uses the Zenodo all-versions (concept) DOI10.5281/zenodo.19663649, which always resolves to the latest release and cannot go stale again. The now-misleadingversionfield was dropped.4. Ipopt citation in Modelers and solvers
IPOPT is now hyperlinked in that paragraph. Its
@Wachter2006tag stays at the first occurrence (Summary), per the convention in §1 above — repeating the tag would break the rule applied to every other tool.5. Supported problem class
New Problem Class section, placed right after the Summary, giving the Bolza formulation and stating the scope explicitly. Every capability listed was verified against
docs/src/manual-abstract.md:t₀,t_fmay be fixed or be components of the optimisation variablev, covering minimum time problems;f⁰ = 0) and Lagrange (g = 0) the special cases; maximisation via minimisation of the opposite cost;The section also records the finite-dimensional optimisation variable
v(a parameter optimised together with the trajectory), which has no counterpart in the reviewer's list but is part of the supported class.Issue #805 — repository-level comments
.zenodo.jsonDOI mismatch withCITATION.bib/CITATION.cff.zenodo.jsonnow uses10.5281/zenodo.13336563, the Zenodo concept DOI (verified via the Zenodo API:13336652was a stale version-specific DOI for v0.11.2).Project.toml(Documenter,ADNLPModels,NLPModels,SolverCore)DocumenterandNLPModelsremoved entirely ([deps]+[compat]) — confirmed unused anywhere insrc/ortest/.ADNLPModelsandSolverCoreare unused insrc/but are used by the test suite (SolverCorefor anAbstractExecutionStatssignature check,ADNLPModels— which will also trigger theCTSolversADNLPModelsextension onceCTSolversships it), so both were moved to[extras]/[targets]instead of dropped;ExaModels, also flagged for review, was checked and kept as-is — it's genuinely imported insrc/imports/examodels.jl.README.mdbasic usage:using NLPModelsIpoptunexplainedusing NLPModelsIpoptandusing Plots(same issue applies there) inREADME.mdanddocs/src/index.md, explaining they activate package extensions.docs/src/manual-solve.mdalready documented this in depth, so it was left untouched.CITATION.cffmissingversion/date-releasedtest/README.mdUnix-only / shell-heavy commandsCTBase.run_testspath-separator bug)OptimalControl.jl'sCTBasecompat to pull in that fix is deferred to a follow-up PR alongside other pending upstream updates.DataFramesdep indocs/Project.toml[deps]/[compat]— confirmed unused anywhere underdocs/.CI.ymlversions:input from both jobs; they now inherit the reusableCTActionsworkflow's default (["1.10", "1.12"]), so CPU and GPU always test the same two Julia versions instead of diverging.See commit
7eb98a15.Closes #802
Closes #803
Closes #805
🤖 Generated with Claude Code