Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#358 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Documentation
Clarté
À clarifier
Activité
Calme
Stack technique
julia

Piste de recherche

Commencez par lire la pull request 356 et les utilisations existantes de MOI.set, puis comparez-les avec compute_conflict!, write_to_file, read_from_file, submit, transform et Utilities.PenaltyRelaxation. Clarifiez les avantages, les inconvénients et les précédents concernant les opérations complexes dans set par rapport à modify, et documentez les normes convenues si la discussion aboutit à une décision.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Julia
Étoiles
146
Forks
21
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de jump-dev/DiffOpt.jl

Toutes les issues de jump-dev/DiffOpt.jl

Issues similaires

Plus d'issues Julia

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.