Contribuir
Descripción general de contribución
Por favor, ¡hazlo! ¡Gracias por tu ayuda! :balloon:
Este proyecto está construido por la comunidad y la colaboración es bienvenida. Se espera que cada persona colaboradora se adhiera al Código de conducta de CNCF.
¿No estás seguro/a por dónde empezar?
Sigue estos pasos y te sentirás como en casa.
- Consulte la Guía de bienvenida de la comunidad para saber cómo, dónde y por qué contribuir.
- Regístrate para un MeshMate y encontrar el Mentor (o Mentora) perfecto que te ayude a explorar los proyectos de Layer5 y encontrar tu lugar en la comunidad:
- Familiarízate con todos los proyectos de Layer5 (echale un vistazo al Drive de la Comunidad y la lista de repositorios de Layer5: Dedicale tiempo a comprender cada una de las iniciativas de Layer5 a través de descripciones de alto nivel disponibles en el drive de comunidad y a través de discusiones con tu Mesh Mate.
- Identifica tu área de interés: Usa el tiempo con tu MeshMate para familiarizarte con la arquitectura y las tecnologías utilizadas en los proyectos. Informa a tu MeshMate de tus habilidades actuales y las habilidades que pretendes desarrollar.
- Ejecuta Meshery: Ponte en los zapatos del usuario y recorre todas las características y funciones de Meshery como usuario.
- Construye Meshery: Asegurate que tienes un entorno de desarrollo usable.
- Comunicate con la comunidad de Layer5 uniéndote a la cuenta de Slack.
- Contribuye tomando cualquier issue abierto con la etiqueta help wanted y entrale. Si es necesario, crea un nuevo issue. Todas las pull requests deben hacer referencia a un issue abierto. Incluye palabras clave en las descripciones de tus pull requests, así como mensajes de commits, para cerrar automáticamente los issues en GitHub.
Secciones
- Flujo general de contribuciones
- Certificado de origen del desarrollador
- Flujo de contribución de Meshery
- Documentación de Meshery
- Meshery Backend
- Meshery UI Las pautas de estilo de codificación relevantes son los comentarios de revisión de Go Code Review y la sección de formato y estilo de Go Code: las mejores prácticas para entornos de producción de Peter Bourgon.
Flujo de contribución general
Para contribuir a Meshery, siga el flujo de trabajo de fork-and-pull descrito aquí.
Certificado de origen del desarrollador
Para contribuir a este proyecto, debes aceptar el Certificado de origen de desarrollador (DCO en inglés Developer Certificate of Origin) para cada commit que haces. El DCO es una simple declaración de que tu, como contribuyente, tienes el derecho legal de hacer la contribución.
Consulta el archivo DCO para obtener el texto completo de lo que debes aceptar y cómo funciona aquí. Para indicar que estás de acuerdo con el DCO para las contribuciones, simplemente agregues una línea a cada uno de tus commits git:
Signed-off-by: Jane Smith <jane.smith@example.com>
En la mayoría de los casos, puedes agregar esta firma a tu confirmación automáticamente con la marca -s
o --signoff
en git commit
. Debes usar tu nombre real y un correo electrónico accesible (lo sentimos, no se permiten seudónimos ni contribuciones anónimas). Un ejemplo de firma de una confirmación:
$ commit -s -m “my commit message w/signoff”
Para asegurarte de que todas tus confirmaciones están firmadas, puedes optar por agregar este alias a su global .gitconfig
:
~/.gitconfig
[alias]
amend = commit -s --amend
cm = commit -s -m
commit = commit -s
O puedes configurar tu IDE, por ejemplo , Visual Studio Code para cerrar automáticamente las confirmaciones por ti:
Flujo de contribución a la documentación
¡Por favor contribuye! La documentación de Meshery utiliza páginas de GitHub para alojar el sitio de documentos. Obten más información sobre el framework de documentación de Meshery. El flujo de proceso de contribución es el siguente:
- Crea un fork, si aún no lo has hecho, sigue los pasos descritos aquí
- En la copia local del fork, navega a la carpeta docs:
cd docs
- Crea una nueva rama para realizar cambios:
git checkout -b <my-changes>
- Edita/agrega documentación:
vi <specific page>.md
- Ejecuta el sitio localmente para obtener una vista previa de los cambios:
make site
- Has commit, sign-off, y envía los cambios a tu rama remota
git push origin <my-changes>
- Abre pull request (en su navegador web) en nuestro repositorio principal: https://github.com/meshery/meshery.
Flujo de contribución de Meshery
Meshery está escrito en Go
(Golang) y usa los módulos Go. La interfaz de usuario se basa en React y Next.js. Para facilitar la creación y el packaging, se incluye un archivo Makefile en la carpeta principal del repositorio.
Las guías de estilo de programacción relevantes son los Comentarios de revisión de código de Go y la sección Formato y estilo de Peter Bourgon’s Go:BestPractices for Production.
Por favor toma en cuenta: Todos los comandos make
deben ejecutarse en una terminal desde la carpeta principal de Meshery.
Requisitos previos para construir Meshery en tu entorno de desarrollo:
- Tener la versión 1.11+ de
Go
instalada si quieres compilar y/o hacer cambios en el código existente. - La variable de entorno
GOPATH
debe configurarse de manera apropiada. npm
ynode
deben estar instalados en tu máquina, preferiblemente las últimas versiones.- Haz fork de este repoisitorio (
https://github.com/meshery/meshery.git
), clona tu version forked de Meshery a tu maquina local, preferiblemente fuera de tuGOPATH
. Si llegase a suceder que copiaras Meshery dentro de tuGOPATH
y tuvieras una version de goGo
anterior a la versión 1.13, por favor establece la variable de entornoGO111MODULE=on
para habilitar los modulos de Go.
Construir y ejecutar el servidor Meshery
Para construir y ejecutar el código del servidor Meshery, ejecuta el siguiente comando:
make server
Cada vez que se realicen cambios en el código GO, tendrás que detener el servidor y ejecutar el comando anterior nuevamente.
Una vez que el servidor Meshery esta en funcionamiento, deberías poder acceder a Meshery en tu localhost
en el puerto 9081
en http://localhost:9081
. Una cosa para tomar en cuenta, es que posiblemente NO veas la interfaz de usuario de Meshery hasta que también hayas creado el código de la interfaz de usuario.
Después de ejecutar el servidor Meshery, deberás seleccionar tu Proveedor de nube navegando a localhost:9081
. Solo entonces podrás utilizar la interfaz de usuario de Meshery en el puerto 3000
.
Creación de una imagen de Docker
Para crear una imagen de Docker de Meshery, asegúrete de tener instalado Docker
para poder crear la imagen. Ahora, ejecuta el siguiente comando para construir la imagen de Docker:
make docker
Escribiendo un Adaptador de Meshery
Meshery usa adaptadores para hacer provisiones e interactuar con diferentes meshes de servicio. Sigue estas instrucciones para crear un nuevo adaptador o modificar un adaptador existente.
- Obtén el archivo proto buf spec del repositorio de Meshery:
wget https://raw.githubusercontent.com/meshery/meshery/master/meshes/meshops.proto
- Genera el código
- Usando Go como ejemplo, haz lo siguiente::
- agrega GOPATH a tu PATH:
export PATH=$PATH:$GOPATH/bin
- instala grpc:
go get -u google.golang.org/grpc
- instala el plugin protoc para go:
go get -u github.com/golang/protobuf/protoc-gen-go
- Genenra el código de Go:
protoc -I meshes/ meshes/meshops.proto --go_out=plugins=grpc:./meshes/
- agrega GOPATH a tu PATH:
- Para otros lenguajes consulta gRPC.io para las guías especificas del lenguaje.
- Usando Go como ejemplo, haz lo siguiente::
- Implementa los métodos de servicio (service method) y expón el puerto de gRPC en el puerto de tu elección (por ejemplo 10000).
Tip: El adaptador de Meshery para Istio es un buen adaptador de referencia para usar como ejemplo de un adaptador Meshery escrito en Go.
Flujo de Contribución al UI
Meshery está escrito en Go
(Golang) y aprovecha los módulos Go. La interfaz de usuario se basa en React y Next.js. Para facilitar la creación y el empaquetado, se incluye un archivo Makefile en la carpeta principal del repositorio.
Instalar las dependencias de UI
Para instalar/actualizar las dependencias de UI:
make setup-ui-libs
Construir y exportar UI
Para construir y exportar el código de UI:
make build-ui
Ahora que el código de la interfaz de usuario está creado, la interfaz de usuario de Meshery estará disponible en http: // localhost: 9081
.
Cada vez que se realizan cambios en el código de la interfaz de usuario, el código anterior deberá ejecutarse para reconstruir la interfaz de usuario.
Servidor de desarrollo de UI
Si deseas trabajar en la UI, será una buena idea utilizar el servidor de desarrollo de UI incluido. Puedes ejecutar el servidor de desarrollo de UI ejecutando el siguiente comando:
make run-ui-dev
Asegúrete de tener el servidor Meshery configurado y en funcionamiento en el puerto predeterminado http://localhost:9081
antes de proceder a acceder y trabajar en el servidor de UI en http://localhost:3000
.
Cualquier cambio en la interfaz de usuario realizado ahora se volverá a compilar y se servirá automáticamente en el navegador.
Ejecutando Meshery desde IDE
Si deseas ejecutar Meshery desde un IDE como Goland, VSCode. establece la variable de entorno descrito aqui:
PROVIDER_BASE_URLS="https://meshery.layer5.io"
PORT=9081
DEBUG=true
ADAPTER_URLS=localhost:10000 localhost:10001 localhost:10002 localhost:10003 localhost:10004 localhost:10005 localhost:10006 localhost:10007 localhost:10008 localhost:10009
argumento de go tool
-tags draft