Mycroft-core: Simplifique los comandos de la CLI para detener e iniciar los servicios de Mycroft

Creado en 15 sept. 2017  ·  8Comentarios  ·  Fuente: MycroftAI/mycroft-core

_Origen: este problema se plantea en base a una conversación entre @kathyreid y @penrods y tiene como objetivo hacer que detener e iniciar los servicios de Mycroft sea más intuitivo_

Historias de usuarios

Como desarrollador o usuario de la

Como mantenedor central de Mycroft, quiero que el proceso para detener e iniciar los servicios de Mycroft sea intuitivo para que el volumen de preguntas de 'Introducción' se reduzca, lo que me permite concentrar mi tiempo en ampliar la funcionalidad y depurar problemas avanzados.

Como desarrollador, usuario de CLI o mantenedor central de Mycroft, quiero que el inicio y la detención de servicios sean intuitivos y estén parametrizados para que el desarrollo futuro pueda desencadenar fácilmente paradas, inicios y reinicios del servicio.

Criterios de aceptación

  • Iniciar, detener y reiniciar los servicios de Mycroft sigue una sintaxis estándar e intuitiva. Por ejemplo, esto podría reflejar la sintaxis utilizada por systemctl en Ubuntu, en la línea de:
$ mycroft [action] [subservice] [parameter]

p.ej.

$ mycroft start all
$ mycroft stop all
$ mycroft restart all

$ mycroft start voice
$ mycroft start all --quiet
  • Este enfoque debe socializarse con la comunidad de desarrolladores de Mycroft y solicitar su opinión.
  • La sintaxis debe estar claramente documentada tanto en el README.md para el repositorio mycroft-core, como también en docs.mycroft.ai (este será el trabajo de @kathyreid )
medium Enhancement - proposed help wanted

Comentario más útil

Me gustaría proponer que hagamos esto con un par de guiones muy fáciles de encontrar. A saber:
$ ./mycroft-start.sh
$ ./mycroft-stop.sh

Cuando simplemente navegue por el sistema de archivos, estos saltarán a un principiante: "¡Oh, así es como lo inicias!"

Entonces, opcionalmente, admitiría nombres de servicios específicos como parámetros. P.ej
mycroft-start.sh [todos | voz | habilidades | ...]
mycroft-stop.sh [todos | voz | habilidades | ...]

No es necesario reiniciar, "start" debería detener todo lo que ya se esté ejecutando (no podemos permitir que se ejecuten servicios duplicados). Ningún servicio tiene parámetros, por lo que tampoco los necesitamos.

Todos 8 comentarios

Me gustaría proponer que hagamos esto con un par de guiones muy fáciles de encontrar. A saber:
$ ./mycroft-start.sh
$ ./mycroft-stop.sh

Cuando simplemente navegue por el sistema de archivos, estos saltarán a un principiante: "¡Oh, así es como lo inicias!"

Entonces, opcionalmente, admitiría nombres de servicios específicos como parámetros. P.ej
mycroft-start.sh [todos | voz | habilidades | ...]
mycroft-stop.sh [todos | voz | habilidades | ...]

No es necesario reiniciar, "start" debería detener todo lo que ya se esté ejecutando (no podemos permitir que se ejecuten servicios duplicados). Ningún servicio tiene parámetros, por lo que tampoco los necesitamos.

Esto tiene mucho sentido, disculpas, mi opinión inicial sobre esto no fue del todo correcta.

Propongo una interfaz de usuario sencilla. Yo era (soy) un programador de Windows .NET, WPF, etc., por lo que mi respuesta inicial es hacer una interfaz de usuario. ¿Qué tal algo simple que muestre el estado de los distintos estados y luego tenga un lugar para ingresar texto y muestre el texto de salida? También se puede iniciar, detener, lo que sea. Esto no funcionaría en el picroft, pero lo que podría hacer es tener un backend que podría tener parámetros de línea de comando que leería la interfaz de usuario. Sé que a todos los tipos de Linux les encantan las líneas de comandos, pero los artistas, diseñadores, etc., agradecerían una interfaz de usuario. Python tiene un montón de marcos de interfaz de usuario y si empezáramos poco a poco e hiciéramos las cosas fáciles, podría progresar y eventualmente volvernos locos ... ¿Qué tal? ¿Quieres que redacte un prototipo? He estado buscando algo para empezar. Esto puede ser divertido.

¿Mycroft quiere detener por la fuerza cualquier servicio que encuentre que coincida con lo que esté intentando iniciar? ¿Sería esto problemático con alguno de los servicios?

También votaría por los cambios de nombre para eliminar start.sh (doblar en mycroft.sh, ¿para todas sus necesidades granulares?), Agregando start-mycroft.sh y stop-mycroft.sh.

@ highjinx411 Supongo que el otro día estuviste hablando conmigo sobre esto en Mattermost. Una GUI es una buena idea, pero no será parte de mycroft-core, que está diseñado para ser multiplataforma y (en consecuencia) tan independiente como sea posible de cosas como los sistemas de administración de ventanas. Una GUI como la que está proponiendo sería un gabinete, muy parecido a "enclosure-picroft", por ejemplo, "enclosure-windows".

Si puede crear una GUI verdaderamente multiplataforma, ¡también me interesaría verla!

PD: Yo mismo soy un viejo de Windows: hice la mayor parte del desarrollo de GUI para AutoSketch 4 a AutoSketch 10 en el pasado. ¡Me encanta una buena interfaz de usuario!

Una GUI multiplataforma podría ser posible, pero probablemente sería limitada, ya que renunciaría a los beneficios que obtendría al hacerla dependiente de la plataforma. Por lo tanto, es posible que pierda llamadas específicas de Windows, por ejemplo, que podrían ser un beneficio si la aplicación estuviera en Windows. Estoy de acuerdo en que debería ser parte del recinto para asegurarme de que sea lo más rico posible. Incluso el desarrollo de aplicaciones "multiplataforma" con Xamarin para teléfonos móviles, por ejemplo, tiene partes que dependen de la plataforma y, al final, construyen un ejecutable específico para cada sistema operativo de todos modos. Lo único que debería estar disponible para todas las GUI es algo en el núcleo que exponga el inicio, la detención, el estado, etc. De modo que todas las GUI pueden llamar a los mismos métodos independientemente de la plataforma en la que esté instalado el núcleo. En realidad, incluso solo diciendo que ahora no estoy seguro de que Linux funcione bien con scripts bash, pero Windows podría hacerlo bien a través de algún otro método. Entonces la pregunta es. ¿La GUI buscará la instancia principal de mycroft para su plataforma? ¿La GUI de Windows solo mira el núcleo de Windows y la GUI de Linux solo mira el núcleo de Linux? ¿O podría ser que la interfaz gráfica de usuario de Windows podría tener una IP como entrada y acceder al núcleo donde sea que esté instalada esa IP, independientemente del sistema operativo?

Creo que PR # 1107 debería hacer el truco. ¿Qué piensas, @KathyReid , cerrar este?

De acuerdo @penrods , cerrando este tema.

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

Temas relacionados

Zacki84 picture Zacki84  ·  10Comentarios

beemorris picture beemorris  ·  6Comentarios

Ahmed-Benj picture Ahmed-Benj  ·  7Comentarios

Y0ngg4n picture Y0ngg4n  ·  10Comentarios

forslund picture forslund  ·  6Comentarios