Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Feature request: optional middleware

Geschlossen
#4 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
clojure
Bereich
cli

Rechercherichtung

Finde heraus, wo die CLI-REP :middleware aus ihrer Konfiguration lädt (der deps.edn/.cljconf-Startpfad) und wo jedes Middleware-Symbol aufgelöst oder erforderlich gemacht wird. Erste Aufgabe: mit dem/den Maintainer festlegen, welche der beiden vorgeschlagenen Einstellungen verwendet wird (:missing-middleware vs. :middleware optional), da der Payload das offen lässt. Fertig bedeutet: eine nicht auflösbare Middleware kann ignoriert oder mit einer Warnung versehen werden, statt einen Fehler zu werfen, das Standardverhalten bleibt unverändert, verifiziert durch Ausführen der vorhandenen Testsuite des Projekts.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Being able to control what dependencies are available via aliases (defined in deps.edn) is a convenient way to influencer the behavior of tooling: "use this dependency, if it is available on the classpath, else fallback to this other behavior".

For a long time, my own "REPL starter" library uses the availability of certain nses to control which tooling it configures at startup.

Since I wanted that behavior for the CLI REPL—especially if I am going to replace my own custom "REPL starter" with it—I find myself writing conditional loaders for middleware. See my CLI REPL middleware for examples of this for Portal and rephrase.

If there was a way to specify to the CLI REPL that middleware was optional, I wouldn't need to do this: the CLI REPL could attempt to call requiring-resolve on the middleware symbol and if it fails, could either throw (effectively the current behavior) or warn/ignore (possible new behavior).

I don't have a preference for how this might work. I can imagine several solutions, so here are a couple:

  • a new configuration setting: :missing-middleware with values :throw (default), :warn (print to stderr), or :ignore
  • a new configuration setting: :optional-middleware like :middleware except that the optional items are ignored if they cannot be required/resolved
Vorherrschende Sprache
Clojure
Sterne
20
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus clojure/clojure-cli.repl

Alle Issues in clojure/clojure-cli.repl

Ähnliche Issues

Weitere Issues zu Clojure

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.