Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Discussion: Should `MOI.set` perform complex operations?

Abierto
#358 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Documentación
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
julia

Línea de trabajo

Empieza leyendo el pull request 356 y los usos existentes de MOI.set; después, compáralos con compute_conflict!, write_to_file, read_from_file, submit, transform y Utilities.PenaltyRelaxation. Aclara las ventajas, desventajas y precedentes de realizar operaciones complejas en set frente a modify, y documenta los estándares acordados si la discusión llega a una decisión.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Julia
Estrellas
146
Forks
21
Merge medio
1 h 25 min
PR fusionados (30 d)
2

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de jump-dev/DiffOpt.jl

Todos los issues de jump-dev/DiffOpt.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.