Prevent accidental proc overwriting, proc signature overloads
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par lire les deux propositions et la discussion sur la sémantique de final, overwritable et overwrites. L’issue ne nomme aucun fichier, test ou point d’entrée, et son achèvement dépend de la décision concernant le comportement des mots-clés, de l’évaluation de la correspondance des signatures et de la réalisation d’une recherche utilisateur ou de la télémétrie avant l’implémentation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
A discussion came up about being able to overwrite procs. There are definitely good use cases for being able to overwrite procs, but the discussion was that perhaps this is not a good thing by default/generally.
A number of proposals were offered, summarized here. For clarity, the term "final" is taken to mean that a proc cannot be overwritten, whether or not there is a keyword final involved.
- No change in existing behavior, but a new keyword
finalis introduced, and when applied to procs, prevents them from being overwritten elsewhere.
- Pros: No user code has to change. The implementation is simpler, and doesn't require a phase in period.
- Cons: If a user is accidentally overwriting a proc when they didn't mean to, this feature will not benefit them.
- Add overwrites/overwritable/overwrite keyword(s). This changes existing behavior, so that all procs are final by default, but procs that are marked with some combination of either/both
overwritesand/oroverwritableare allowed to be overwritten.
- Pros: It's impossible for users to miss accidental overwrites, as this is much stricter.
- Cons: Behavior change, requires users to change code and requires a phase in period. It seems unlikely that this would be a widespread problem, but in general this would require a phase in period, and we should create telemetry on this to count how many people are affected, and the magnitude that they are affected before making this functionality visible to users at all.
For option 2, there is still a need to determine the specific keywords that are used. Do you put the overwritable keyword on the "master" proc, and the overwrites keyword on the sub-proc? Or do you just have a single keyword overwrite which you tag on all procs that are intended on being overwritten and the procs that overwrite them? This is a minor discussion that needs to happen still, but does not materially change the overall decision.
Another discussion is to also perform signature matching on non-final procs. So redefining a proc (which is either implicitly or explicitly overwritable) with a new signature should be disallowed. I generally support this, but this is a different decision and implementation. This may however prevent valid use case, so further user research needs to be done to provide input to this decision.
- Langage dominant
- Java
- Étoiles
- 128
- Forks
- 70
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de EngineHub/CommandHelper
-
discussion wanted documentation
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
EngineHub/CommandHelper#1403 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
EngineHub/CommandHelper#1370 · 1 commentaire ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
EngineHub/CommandHelper#1354 ·
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
EngineHub/CommandHelper#1349 · 3 commentaires ·
-
bug
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
EngineHub/CommandHelper#1341 · 2 commentaires ·
Toutes les issues de EngineHub/CommandHelper
Issues similaires
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Ouvertearea/plugin
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Add canonical URLs and a sitemap Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
apache/rocketmq-dashboard#5064 ·