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

Feature request: optional middleware

Cerrado
#4 0 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
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
clojure
Área
cli

Línea de trabajo

Localiza dónde la CLI REPL carga :middleware desde su configuración (la ruta de inicio de deps.edn/.cljconf) y dónde se resuelve o se hace require de cada símbolo de middleware. Primera tarea: decidir con el mantenedor cuál de los dos ajustes propuestos usar (:missing-middleware vs :optional-middleware), ya que la carga lo deja abierto. Se da por hecho cuando un middleware irresoluble pueda ignorarse o generar una advertencia en lugar de lanzar una excepción, con el comportamiento predeterminado sin cambios, verificado ejecutando la suite de pruebas existente del proyecto.

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

Descripción

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
Lenguaje dominante
Clojure
Estrellas
20
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

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 clojure/clojure-cli.repl

Todos los issues de clojure/clojure-cli.repl

Issues similares

Más issues de Clojure

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.