Prevent accidental proc overwriting, proc signature overloads
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne damit, die beiden Vorschläge und die Diskussion über die Semantik von final, overwritable und overwrites zu lesen. Das Issue nennt keine Dateien, Tests oder Einstiegspunkte, und der Abschluss hängt davon ab, das Verhalten der Schlüsselwörter festzulegen, die Signaturübereinstimmung zu bewerten und vor der Implementierung Nutzerforschung oder Telemetrie durchzuführen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Java
- Sterne
- 128
- Forks
- 70
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus EngineHub/CommandHelper
-
discussion wanted documentation
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
EngineHub/CommandHelper#1403 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
EngineHub/CommandHelper#1370 · 1 Kommentar ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
EngineHub/CommandHelper#1354 ·
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
EngineHub/CommandHelper#1349 · 3 Kommentare ·
-
bug
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
EngineHub/CommandHelper#1341 · 2 Kommentare ·
Alle Issues in EngineHub/CommandHelper
Ähnliche Issues
-
[BUG] 订单:会员凭订单号即可取消其他会员的待付款订单(取消接口不校验订单归属)Evtl. vergeben @dadiyang hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
macrozheng/mall#1016 ·
-
[Bug] The producer summary counts an unreported client version as a second version and warns about a version mixEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
apache/rocketmq-dashboard#6110 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Python 3.15 supportEvtl. vergeben @amnesiaof hat das heute übernommen. OffenL: python L: python:uv
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
dependabot/dependabot-core#16524 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
`Processing lsp` never exits and leaves orphaned processesEvtl. vergeben @overcast302 hat das heute übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
processing/processing4#1578 · 1 Kommentar ·
-
bug needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
PlayersCommittee/gemp-swccg-public#1174 ·
Maintainer antworten meist innerhalb von 2 Tagen