Node-redis: Mapa vial

Creado en 21 abr. 2016  ·  17Comentarios  ·  Fuente: NodeRedis/node-redis

EDITAR: @Salakar : Ver comentario a continuación; https://github.com/NodeRedis/node_redis/issues/1040#issuecomment-581418899


Esta hoja de ruta no está ordenada y no tiene fechas fijas, sino que es más una combinación general de cosas.

Principales características a implementar

  • [ ] Grupo
  • [ ] centinela
  • [ ] Transformadores de entrada
  • [ ] Transformadores de salida
  • [ ] Compatibilidad con promesas nativas
  • [ ] Limitador de cola fuera de línea
  • [ ] Mejor compatibilidad con secuencias de comandos/agregar comandos individuales
  • [ ] Mejor función de mantener vivo / mejorar la detección de conexiones muertas

    Otras cosas que deben abordarse

  • [ ] Documentar todo el código (JSDoc)

  • [ ] Hacer que la API no documentada sea privada
  • [ ] Actualice la documentación README para que sea más útil
  • [] Arreglar la generación de ventanas en appveyor
  • [x] Mejores stacktraces mientras no está en modo de producción
  • [ ] Pruebas de humo

Si cree que falta algo, no dude en hacer más sugerencias o abrir una solicitud de función para ello.

meta

Comentario más útil

Hola a todos, asumí el cargo de mantenedor principal y ahora tengo todo el acceso requerido 🎉 muchas gracias a @BridgeAR por todo el trabajo que ha hecho (y está haciendo) en esta biblioteca y por permitirme tomar el control.

Pasé los últimos días preparando el maestro para un lanzamiento, y hace unos minutos acabo de publicar v3.0.0 en NPM; https://github.com/NodeRedis/node-redis/releases/tag/v3.0.0 , que incluye este cambio.

Espere lanzamientos regulares: mi primera prioridad en este momento es hacer que este proyecto sea más amigable para los contribuyentes para garantizar que el proyecto viva y continúe creciendo y no esté bloqueado por el tiempo de ninguna persona en particular. Para hacer esto, me gustaría hacer crecer un conjunto más grande de colaboradores superficiales. Con esto espero mitigar el problema anterior de que el proyecto necesita actualizaciones pero no hay nadie que tenga el poder de hacerlo. Estoy trabajando en lo siguiente en esto;

  • [x] Documentos de contribución y código de conducta
  • [x] Configurar un Colectivo Abierto y una política de gastos de los contribuyentes

    • Notarás el nuevo y brillante botón Sponsor en la parte superior de GitHub, también lo patrociné yo mismo y a través de mi empresa para ayudar a ponerlo en marcha para futuros contribuyentes.

  • WIP: Automatización de versiones y control de versiones semánticas (publicación en NPM, generación de registros de cambios, etc.)
  • [x] Mejorar CI, por ejemplo, Windows CI es súper lento y escamoso en este momento

Después de eso, cambiaré mi atención a la modernización (por ejemplo, promesas, texto mecanografiado) y liquidación de deuda técnica en el código base de Node Redis. @BridgeAR ya ha hecho un montón de cosas para esto, si tiene curiosidad, consulte la rama WIP v4 y su registro de cambios.

Todos 17 comentarios

1085 ¿Tenemos soporte para bandera NX/XX soporte para comandos como ZADD

Han pasado algunos meses, ¿hay alguna línea de tiempo actualizada en este frente?

+1

¿Alguna posibilidad de soporte de clúster/fragmentación llegará pronto? AWS tiene compatibilidad con clústeres de redis en ElastiCache y me gustaría usarlo, pero esta biblioteca debe ponerse al día con ese conjunto de funciones para que sea realmente viable :(

Este problema debe fijarse en mi humilde opinión

¿También https://github.com/gosquared/redis-clustr podría ser una solución lo suficientemente buena para el soporte de Cluster?

Un envoltorio equivalente para Sentinel sería genial. Tal vez https://www.npmjs.com/package/redis-sentinel pero parece un poco muerto (4 años desde la última publicación).

Quizás deberíamos discutir el futuro de este repositorio aquí; la última publicación en NPM de este paquete fue hace más de 2 años, hay correcciones en el maestro que no se han publicado en NPM durante casi 2 años, por ejemplo, https://github.com/NodeRedis/node_redis/issues/1331;

Tenga en cuenta que no soy yo quejándome de @BridgeAR , en realidad está haciendo un gran trabajo en @nodejs , por lo que es comprensible que su tiempo para este repositorio sea limitado.

Estoy dispuesto a asumir parte de la carga de mantenimiento, pero me gustaría tener algunas ideas sobre qué curso de acción podríamos tomar dado que el acceso de publicación de NPM no está disponible para el repositorio existente (lo he solicitado varias veces a lo largo de los años) .

En este momento, parece que la única opción es bifurcarse y comenzar de nuevo, a menos que obtengamos acceso.

@Salakar También estoy dispuesto a ayudar a que este paquete avance. No estoy muy seguro de por qué debemos abandonar el nombre del paquete NPM ('redis' es poderoso). ¿ @BridgeAR no controla el paquete NPM y necesita transferirlo a alguien? Ha habido poca acción en muchos meses, y para ser honesto, no entiendo muy bien la lógica de simplemente sentarme en ella.

No creo que debamos desaprobar este paquete: es una buena base de código que se puede actualizar y una gran cantidad de otros paquetes dependen de él.

La otra cosa que me gustaría destacar son los próximos cambios de RESP3/Redis 6 que requerirán alteraciones significativas. Investigué la función ACL en Redis 6, que debería ser fácil de admitir, pero necesitaremos una refactorización seria para node_redis. Mi trabajo (en Redis Labs) apoyaría mi trabajo en este módulo, pero si no podemos hacer un lanzamiento de NPM, no tiene sentido invertir el tiempo.

¿ @BridgeAR no controla el paquete NPM y necesita transferirlo a alguien? Ha habido poca acción en muchos meses, y para ser honesto, no entiendo muy bien la lógica de simplemente sentarme en ella.

Correcto, pero he estado solicitando acceso de publicación de NPM desde febrero de 2018, nuevamente en febrero de 2019 y la solicitud más reciente en septiembre de 2019. He recibido respuestas, pero no sobre el tema de solicitar acceso de publicación de NPM 🤷‍♂. https://github.com/NodeRedis/node_redis/issues/1402#issuecomment -490273744 ¿tal vez da alguna indicación de las intenciones?

Si la transferencia no va a suceder, entonces creo que debe quedar claro para que podamos seguir adelante.

ioredis, por ejemplo, es realmente bueno, y se habló de consolidar las bibliotecas en el pasado (trabajé en algunas de las herramientas subyacentes para eso, como el nuevo analizador, denque lib, cluster key slot calc, etc.): https:// github.com/NodeRedis/node_redis#consolidation -its -time-for-celebration - ¿cuál sigo pensando que debería ser el objetivo a largo plazo?

Fuera de tema, pero comencé a experimentar en la creación de un nuevo cliente hace un tiempo; https://twitter.com/mikediarmid/status/1074240036936318976 - pero lo detuve con la esperanza de que este comenzara de nuevo o ayudara a consolidar;

Quizás esa también sea una ruta 🤷‍♂

image

@Salakar , ¿ha hablado con alguno de los otros propietarios de NPM (Matt, Ben o Bryce)? Si Ruben es MIA, entonces si queremos que el proyecto avance, no creo que una sola persona deba ser un obstáculo. Supongo que este tipo de problema es la razón por la que se configuró de esta manera. Encuentro el comentario sobre 1402 preocupante para un proyecto de código abierto, especialmente uno que no está vinculado (organizacionalmente) a una sola persona.

Estoy de acuerdo, ioredis es bueno, pero no creo que sea una solución única para todos. En cuanto a la consolidación, pensé que el analizador unificado era el objetivo principal que ya se logró. Nunca consideré que habría un solo módulo completo, solo dadas las diferencias de sintaxis.

@stockholmux : Mi trabajo (en Redis Labs) apoyaría mi trabajo en este módulo, pero si no podemos hacer un lanzamiento de NPM, no tiene sentido invertir el tiempo.

Lo mismo ocurre con nosotros, también estamos dispuestos a dedicar recursos a esto @invertase , pero si no podemos publicarlo, tampoco tiene sentido para nosotros.


@stockholmux : @Salakar , ¿ha hablado con alguno de los otros propietarios de NPM (Matt, Ben o Bryce)?

Este es un buen punto, no lo he hecho, me pondré en contacto con ellos en breve.


@stockholmux : Estoy de acuerdo, ioredis es bueno, pero no creo que sea una solución única para todos. En cuanto a la consolidación, pensé que el analizador unificado era el objetivo principal que ya se logró. Nunca consideré que habría un solo módulo completo, solo dadas las diferencias de sintaxis.

Por interés, ¿cuáles son sus requisitos de que redis lib cumpla pero ioredis no? Mis requisitos involucraban agrupamiento y centinela que redis actualmente no admite, excepto algunos paquetes de terceros, algunos de los cuales también han sido abandonados.

Tal vez los protocolos de conexión subyacentes entre las dos bibliotecas también podrían compartirse, entonces, ¿es simplemente cómo interactúa con cada uno de ellos que es diferente?

@Salakar Me gusta el enfoque modular de centinela y el agrupamiento sobre el enfoque monolítico de ioredis (de nuevo, tenemos que lidiar con el abandonware). Algunas personas necesitan esto, otras no. El ecosistema general de Redis se está haciendo más grande y modular es la forma de admitir más sin complejidad, en mi humilde opinión. Ioredis es una base de código mucho más grande (18,897 frente a 7,038 líneas de código), lo que puede ser más características, pero prefiero no tener tantas cosas adicionales que no estoy usando.

El lugar donde creo que node_redis tiene una gran ventaja es el soporte del módulo Redis, que es fácil con node_redis y bastante molesto con ioredis.

Me puse en contacto con @mranney a través de mensajes directos de Twitter y le pregunté si podía otorgarnos a mí y al propietario de @stockholmux acceso a la organización de GitHub y los paquetes de NPM, así que veremos qué sale de eso.

Creo que @stockholmux y yo estamos de acuerdo en que mantener y publicar todo desde donde están actualmente es la mejor manera de avanzar, si podemos. Si no, supongo que podemos buscar alternativas, aunque prefiero no hacerlo.

Una pequeña sugerencia. Tal vez debería considerar migrar el código fuente a TypeScript.

Hola a todos, asumí el cargo de mantenedor principal y ahora tengo todo el acceso requerido 🎉 muchas gracias a @BridgeAR por todo el trabajo que ha hecho (y está haciendo) en esta biblioteca y por permitirme tomar el control.

Pasé los últimos días preparando el maestro para un lanzamiento, y hace unos minutos acabo de publicar v3.0.0 en NPM; https://github.com/NodeRedis/node-redis/releases/tag/v3.0.0 , que incluye este cambio.

Espere lanzamientos regulares: mi primera prioridad en este momento es hacer que este proyecto sea más amigable para los contribuyentes para garantizar que el proyecto viva y continúe creciendo y no esté bloqueado por el tiempo de ninguna persona en particular. Para hacer esto, me gustaría hacer crecer un conjunto más grande de colaboradores superficiales. Con esto espero mitigar el problema anterior de que el proyecto necesita actualizaciones pero no hay nadie que tenga el poder de hacerlo. Estoy trabajando en lo siguiente en esto;

  • [x] Documentos de contribución y código de conducta
  • [x] Configurar un Colectivo Abierto y una política de gastos de los contribuyentes

    • Notarás el nuevo y brillante botón Sponsor en la parte superior de GitHub, también lo patrociné yo mismo y a través de mi empresa para ayudar a ponerlo en marcha para futuros contribuyentes.

  • WIP: Automatización de versiones y control de versiones semánticas (publicación en NPM, generación de registros de cambios, etc.)
  • [x] Mejorar CI, por ejemplo, Windows CI es súper lento y escamoso en este momento

Después de eso, cambiaré mi atención a la modernización (por ejemplo, promesas, texto mecanografiado) y liquidación de deuda técnica en el código base de Node Redis. @BridgeAR ya ha hecho un montón de cosas para esto, si tiene curiosidad, consulte la rama WIP v4 y su registro de cambios.

@Salakar ¡Felicidades! Quería retomar el trabajo de las promesas (me encantaría deshacerme de async-redis ), pero supongo que ya casi está hecho. ¿Tienen alguna idea de un marco de tiempo? ¿Está aceptando contribuciones en ese frente (por ejemplo, tenemos algún tipo de lista de verificación)?

Hola, @GCSBOSS , echa un vistazo a la rama 'v4': es el refactor en curso, que tiene soporte de promesa, aunque todavía no hay eta/plazo, lo siento.

¿Fue útil esta página
0 / 5 - 0 calificaciones