Contribución al kernel semántico

Puede contribuir al kernel semántico enviando problemas, iniciando discusiones y enviando solicitudes de incorporación de cambios (PR). Se aprecia enormemente el código de contribución, pero simplemente presentar problemas para los problemas que encuentre también es una excelente manera de contribuir, ya que nos ayuda a centrar nuestros esfuerzos.

Informes de problemas y comentarios

Siempre agradecemos los informes de errores, las propuestas de API y los comentarios generales. Puesto que usamos GitHub, puede usar las pestañas Problemas y discusiones para iniciar una conversación con el equipo. A continuación se muestran algunas sugerencias al enviar problemas y comentarios para que podamos responder a sus comentarios lo más rápido posible.

Información sobre los problemas

Los nuevos problemas del SDK se pueden notificar en nuestra lista de problemas, pero antes de presentar un problema nuevo, busque la lista de problemas para asegurarse de que aún no existe. Si tiene problemas con la documentación del kernel semántico (este sitio), envíe un problema en el repositorio de documentación del kernel semántico.

Si encuentra un problema existente para lo que desea notificar, incluya sus propios comentarios en la discusión. También se recomienda encarecidamente la votación (👍 reacción) la publicación original, ya que esto nos ayuda a priorizar los problemas populares en nuestro trabajo pendiente.

Escribir un buen informe de errores

Los buenos informes de errores facilitan la comprobación y la causa principal del problema subyacente. Cuanto mejor sea un informe de errores, más rápido se puede resolver el problema. Idealmente, un informe de errores debe contener la siguiente información:

  • Descripción general del problema.
  • Una reproducción mínima, es decir, el tamaño más pequeño de código o configuración necesario para reproducir el comportamiento incorrecto.
  • Descripción del comportamiento esperado, contrastado con el comportamiento real observado.
  • Información sobre el entorno: sistema operativo/distribución, arquitectura de CPU, versión del SDK, etc.
  • Información adicional, por ejemplo, ¿es una regresión de versiones anteriores? ¿Hay alguna solución alternativa conocida?

Envío de comentarios

Si tiene comentarios generales sobre kernel semántico o ideas sobre cómo mejorarlo, compártalo en nuestro panel de discusiones. Antes de iniciar una nueva discusión, busque la lista de discusiones para asegurarse de que aún no existe.

Te recomendamos usar la categoría de ideas si tienes una idea específica que quieres compartir y la categoría de preguntas y respuestas si tienes una pregunta sobre kernel semántico.

También puede iniciar discusiones (y compartir cualquier comentario que haya creado) en la comunidad de Discord mediante la unión al servidor semántico de Discord kernel.

Ayudarnos a priorizar los comentarios

Actualmente usamos votos ascendentes para ayudarnos a priorizar problemas y características en nuestro trabajo pendiente, por lo que vote por favor cualquier problema o discusión que le gustaría ver solucionado.

Si cree que otros se beneficiarían de una característica, también le animamos a pedir a otros que voten el problema. Esto nos ayuda a priorizar los problemas que afectan a la mayoría de los usuarios. Puede pedir a compañeros, amigos o la comunidad de Discord que voten un problema compartiendo el vínculo al tema o discusión.

Envío de solicitudes de incorporación de cambios

Agradecemos las contribuciones al kernel semántico. Si tiene una corrección de errores o una nueva característica que le gustaría contribuir, siga los pasos que se indican a continuación para enviar una solicitud de incorporación de cambios (PR). Después, los mantenedores de proyectos revisarán los cambios de código y los combinarán una vez que se hayan aceptado.

Se recomienda usar el siguiente flujo de trabajo para contribuir al kernel semántico (este es el mismo flujo de trabajo que usa el equipo de kernel semántico):

  1. Cree un problema para el trabajo.
    • Puede omitir este paso para ver cambios triviales.
    • Vuelva a usar un problema existente en el tema, si hay uno.
    • Obtenga un acuerdo del equipo y de la comunidad que el cambio propuesto es uno bueno mediante el uso de la discusión en el problema.
    • Indique claramente el problema que tomará en la implementación. Esto nos permite asignarle el problema y garantiza que otra persona no funcione accidentalmente en él.
  2. Cree una bifurcación personal del repositorio en GitHub (si aún no tiene una).
  3. En la bifurcación, cree una rama fuera de main (git checkout -b mybranch).
    • Asigne un nombre a la rama para que comunique claramente sus intenciones, como "issue-123" o "githubhandle-issue".
  4. Realice y confirme los cambios en la rama.
  5. Agregue nuevas pruebas correspondientes al cambio, si procede.
  6. Compile el repositorio con los cambios.
    • Asegúrese de que las compilaciones están limpias.
    • Asegúrese de que todas las pruebas se superan, incluidas las nuevas.
  7. Cree una solicitud de incorporación de cambios en la rama principal del repositorio.
    • Estado en la descripción qué problema o mejora está solucionando el cambio.
    • Compruebe que se pasan todas las comprobaciones de integración continua.
  8. Espere a recibir comentarios o aprobación de los cambios de los mantenedores de código.
  9. Cuando los propietarios de área hayan cerrado la sesión y todas las comprobaciones sean verdes, se combinará la solicitud de incorporación de cambios.

Dos y Don'ts al contribuir

A continuación se muestra una lista de Dos y Don'ts que se recomienda al contribuir al kernel semántico para ayudarnos a revisar y combinar los cambios lo antes posible.

Sí:

  • Siga el estilo de codificación estándar de .NET y el estilo de código de Python.
  • Asigne prioridad al estilo actual del proyecto o archivo que va a cambiar si difiere de las directrices generales.
  • Incluya pruebas al agregar nuevas características. Al corregir errores, empiece por agregar una prueba que resalte cómo se interrumpe el comportamiento actual.
  • Mantenga las discusiones centradas. Cuando aparece un tema nuevo o relacionado, a menudo es mejor crear un problema nuevo que realizar un seguimiento lateral de la discusión.
  • Indique claramente un problema que va a asumir para implementarlo.
  • ¡Haz blog o tweet sobre tus contribuciones!

No:

  • No sorprenda al equipo con grandes solicitudes de incorporación de cambios. Queremos admitir colaboradores, por lo que se recomienda presentar un problema e iniciar una discusión para que podamos acordar una dirección antes de invertir una gran cantidad de tiempo.
  • No confirme el código que no ha escrito. Si encuentra código que cree que es una buena opción para agregar al kernel semántico, abra un problema e inicie una discusión antes de continuar.
  • No envíe solicitudes de incorporación de cambios que modifiquen los archivos o encabezados relacionados con licencias. Si cree que hay un problema con ellos, abra un problema y estaremos encantados de discutirlo.
  • No cree nuevas API sin presentar un problema y hable primero con el equipo. Agregar un nuevo área de superficie pública a una biblioteca es una gran oferta y queremos asegurarnos de que lo conseguimos correctamente.

Últimos cambios

Las contribuciones deben mantener la firma de API y la compatibilidad con el comportamiento. Si desea realizar un cambio que interrumpirá el código existente, presente un problema para discutir su idea o cambiar si cree que se garantiza un cambio importante. De lo contrario, se rechazarán las contribuciones que incluyan cambios importantes.

Proceso de integración continua (CI)

El sistema de integración continua (CI) realizará automáticamente las compilaciones necesarias y ejecutará pruebas (incluidas las que también debe ejecutar localmente) para las solicitudes de incorporación de cambios. Las compilaciones y las ejecuciones de pruebas deben estar limpias para poder combinar una solicitud de incorporación de cambios.

Si se produce un error en la compilación de CI por cualquier motivo, el problema de pr se actualizará con un vínculo que se puede usar para determinar la causa del error para que se pueda solucionar.

Contribución a la documentación

También aceptamos contribuciones al repositorio de documentación del kernel semántico.