Stop exporting the module name CTLie once @Lie is hygienic
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Summary
Once the @Lie macro is hygienic (control-toolbox/CTLie.jl#40), OptimalControl no longer needs to export the module name CTLie. Stop exporting it, so that using OptimalControl does not bring an implementation package into the user's namespace.
Why it is exported today
src/imports/ctlie.jl has:
# Generated code — the `@Lie` macro emits `CTLie.*` and `CTBase.Traits.*`
# prefixes in its expansion, so both modules must be in scope at the call site.
@reexport import CTLie: CTLie # for generated code (prefix)
That is the only reason: the expansion of @Lie names CTLie and CTBase.Traits in the caller's module. The functions and the macro (ad, Lift, Poisson, ∂ₜ, @Lie, dg_ad_backend, dg_ad_backend!) are re-exported by name and stay.
To do, after CTLie#40 is released
- Bump the CTLie compat to the release that has the hygienic expansion.
- Remove the line
@reexport import CTLie: CTLieand its comment insrc/imports/ctlie.jl. Keepimport CTLie: …where the module is used inside OptimalControl (using CTLie: CTLieinsrc/OptimalControl.jl,LiftedHamiltonianFunction,src/deprecated.jl). - Update the re-export test,
test/suite/reexport/test_ctlie.jl, which checks the exported names. - Check that
@Liestill works from a module that did onlyimport OptimalControlorusing OptimalControl: @Lie, and add that as a test. - Update the documentation, page "The
@Liemacro" (docs/src/geometry/lie-macro.md): drop the section "using OptimalControlis needed", and the hidden check that it fails without it.
Not in scope
CTBasestays exported: it is used for other things (exceptions,CTBase.Differentiationin the docs), and the@defmacro of CTParser still names modules in its expansion. Whether@defcan also become hygienic is a separate question, in CTParser.- This is a change of the exported names, so mention it in
BREAKING.mdand the changelog of the release that makes it.
- Lenguaje dominante
- Julia
- Estrellas
- 135
- Forks
- 11
- Merge medio
- 7 h 51 min
- PR fusionados (30 d)
- 22
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de control-toolbox/OptimalControl.jl
-
[Doc] User guide to the duals: every kind, constraint ↔ dual, direct ↔ indirectPosiblemente ocupada @ocots la tomó hace 5 días. Abierto
control-toolbox/OptimalControl.jl#1035 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Tests of the duals: every kind of constraint, direct vs indirect, pinned algorithmsPosiblemente ocupada @ocots la tomó hace 5 días. Abierto
control-toolbox/OptimalControl.jl#1034 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Doc] Examples for the sign convention of duals and costate (min/max, writing of constraints, direct vs indirect)Posiblemente ocupada @ocots la tomó hace 13 días. Abierto
control-toolbox/OptimalControl.jl#1016 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Documentation: sign conventions (min/max, p⁰, constraints, duals) and how they appear in a solutionPosiblemente ocupada @ocots la tomó hace 16 días. Abiertodocumentation
control-toolbox/OptimalControl.jl#1015 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Tests fail on Julia 1.13: keyword-only anonymous function in test/problems/goddard.jlPosiblemente ocupada @ocots la tomó hace 18 días. Abierto
control-toolbox/OptimalControl.jl#996 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de control-toolbox/OptimalControl.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
backport 1.14 GC
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
`binary_focal_loss` throws a `DomainError` when a negative sample has `ŷ = 1`Posiblemente ocupada @parth-patel010 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
FluxML/Flux.jl#2818 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaDiff/TaylorSeries.jl#445 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
control-toolbox/CTActions#139 · 1 comentario ·
Los mantenedores suelen responder en 1 día