jump-dev / jump-dev/DiffOpt.jl
Discussion: Should `MOI.set` perform complex operations?
- Lingua principale
- Julia
- Stelle
- 145
- Fork
- 21
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
As far as I understand `MOI.set` is primarily used for setting attributes.
However, https://github.com/jump-dev/DiffOpt.jl/pull/356 introduced:
`function MOI.set(model::Model, ::DiffOpt.ForwardDifferentiate)`
as a replacement to
`function forward_differentiate!(model)`
Historically, performing more complex operations has been left (mostly?) for special functions such as:
- `compute_conflict!`
- `write_to_file`
- `read_from_file`
- `submit`
- `transform`
A partial counter argument is:
- `Utilities.PenaltyRelaxation`, but it is a `modify` not even a `set`
I do think modify here makes sense.
Are there any other arguments to each side? any other precedent?
I would like to have the reasoning for that clarified.
What are de advantages and disadvantages?
Bonus:
As a follow-up, we should have good practices and standards documented to help developers consistently make decisions in these cases.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start by reading pull request 356 and the existing uses of MOI.set, then compare them with compute_conflict!, write_to_file, read_from_file, submit, transform, and Utilities.PenaltyRelaxation. Clarify the advantages, disadvantages, and precedents for complex operations in set versus modify, and document agreed standards if the discussion reaches a decision.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- julia
- Ambito
- backend-api-design
- Tipo di issue
- Documentazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100