👍🎉 Antes que nada, ¡gracias por tomarte el tiempo y contribuir con Argentum Online! 🎉👍
Lo que sigue a continuación es una serie de lineamientos para contribuir a cualquiera de los proyectos que se encuentran hospedados en la Organización de Argentum Online en GitHub. Estos son lineamientos, no reglas. Por favor, usá tu mejor juicio, y sentite libre de proponer cambios a este documentos creando un Pull Request.
- Código de Conducta
- Canales de comunicación disponibles
- ¿Qué debo saber antes de comenzar?
- ¿Cómo puedo contribuir?
- Guias de estilo
Este proyecto y todos los participantes están gobernados por el Código de Conducta de Argentum Online. Participando en el desarrollo, se espera que te adhieras a este código. Por favor, reporta cualquier comportamiento inaceptable enviando un correo a direccion@comunidadargentum.com.
Nota: Por favor, no crees un Issue para hacer una pregunta sin antes haber pasado por uno de estos canales.
El proyecto Argentum Online mantiene varios medios de comunicación con todos los miembros de su comunidad (ya sean desarrolladores, diseñadores, o jugadores).
- Foro Oficial de Argentum Online
- Discord de Argentum Online es un servicio de Chat destinado a toda la comunidad del juego, incluyendo a los jugadores del Servidor Oficial de Argentum Online. Si te interesa participar de discusiones sobre desarrollo, te recomendamos participar de los siguientes canales:
- Usa el canal
#🧙🏽programacion
para discusiones acerca del código del juego y sus herramientas - Usa el canal
#🌏mapeo
para discusiones acerca de los mapas del juego y las herramientas para construirlos - Usa el canal
#🎨graficacion
para discusiones acerca de los gráficos del juego - Usa el canal
#💡ideas
para proponer nuevas ideas y mecánicas para el juego - Hay muchos otros canales para que puedas interactuar con la comunidad.
- Usa el canal
Argentum Online es un juego MMORPG Open Source, lo que significa que su código es abierto para que cualquier usuario lo descargue y cree sus propios forks, pero esto no significa que las mecánicas a implementar sean decididas por la comunidad abiertamente. El Staff del proyecto es el único equipo autorizado a tomar decisiones y aprobar cambios sobre la arquitectura del juego. Cualquier recomendación y contribución es bienvenida, y nos comprometemos a trabajar con los usuarios que contribuyan para adaptar cualquier propuesta a los requerimientos del juego.
Debido a que Argentum Online es un juego, las decisiones sobre las mecánicas nuevas deben pasar por los equipos de Game Design y Balance, que son los que se encargan de asegurarse que cualquier propuesta encaje junto al resto de las mecánicas y que no generen un desbalance en el juego. Si deseas proponer una nueva mecánica o cambio a una mecánica existente, te recomendamos que antes de contribuir el código crees un Issue en Github siguiendo los lineamientos para solicitudes de features, y luego utilices los canales de comunicaciones disponibles para discutirlo con dichos equipos.
Antes de crear un reporte de bug, por favor revisa que el mismo no haya sido reportado con anterioridad o esté pendiente de implementación. Cuando crees un reporte, por favor escribe la mayor cantidad de detalles completando el template obligatorio propuesto La información requerida en ese template nos va a ayudar a validar el bug lo más rápido posible
Nota: Si encuentras un Bug reportado con estado Closed que parezca ser el mismo bug que estás experimentando, por favor crea un nuevo issue y asegurate de poner una referencia al issue anterior.
Existen diferentes tipos de mejoras que se pueden proponer, que pueden incluir desde cambios menores a funcionalidad existente, o nuevas funcionalidades. Antes de crear un issue para proponer una mejora, por favor revisa si la misma no fue propuesta por otra persona. Cuando crees un issue con una propuesta, por favor escribe la mayor cantidad de detalles completando el template obligatorio La información requerida en ese template nos va a ayudar a evaluar la propuesta lo más rápido posible.
Argentum Online está compuesto por varios proyectos (cliente, servidor, herramientas, etc). ¿No estás seguro por dónde empezar? Podrías comenzar por revisar los issues que contengan las etiquetas beginner
y help-wanted
.
beginner
- Issues que solo deberían requerir cambios en algunas líneas de código.help-wanted
- Issues para los que se requiere un poco más de conocimientos sobre la plataforma.
Todos los componentes del juego pueden ser desarrollados y testeados localmente. Para los casos en donde herramientas de terceros sean necesarias (base de datos, gestor de colas, etc), los pasos de instalación y configuración estarán explicados en cada uno de los repositorios.
Adicionalmente, haremos un esfuerzo para proveer archivos docker-compose
siempre que podamos para facilitar el desarrollo local
Los procesos descriptos a continuación tienen como propósito:
- Mantener una calidad de código aceptable para la contribución de código
- Involucrar a la comunidad en el trabajo de mejorar Argentum Online a diario
- Habilita la posibilidad de que los encargados de revisar el código tengan un espacio para hacerlo.
Por favor, sigue estos pasos para que tu contribución sea considerada por los mantenedores del código:
- Sigue las instrucciones para abrir pull requests
- Sigue las Guias de estilo
- Después de crear tu pull request, verifica que todos los status checks estén pasando correctamente
NOTA: ¿Qué pasa si un status check está fallando? Si un status check falla, y consideras que la falla no está relacionada con tu cambio, por favor deja un comentario en el Pull Request explicando por qué consideras que no está relacionado. Un responsable del mantenimiento revisará y evaluará la situación, trabajando contigo para que se los checks se resuelvan.
Mientras que los requisitos arriba mencionados tienen que ser cumplidos antes de que tu código sea revisado, los reviewers pueden pedirte que hagas cambios adicionales al diseño, pruebas o cualquier otra cosa que se considere necesario antes de que el PR sea aceptado.
Para asegurarnos de que la automatización ejecutada sobre cada repositorio siga un patrón determinado, considera la siguiente convención de nombres para los branches:
- Usa
feature/nombreDescriptivo
si el branch contiene un refactor o nueva funcionalidad o mecánica que no esté relacionado a un arreglo de un bug - Usa
fix/numeroIssue-nombreDescriptivo
si el branch contiene un arreglo a un bug reportado. Si estás creando un bugfix para un issue que no se encuentra reportado, por favor considera reportarlo primero para poder referenciarlo.
- Limitar la primer línea a 72 caracteres o menos.
- Poner referencias a Issues o Pull Requests solo después de la primer línea
- Ser lo más descriptivo posible a la hora explicar el/los cambios introducidos.
Para cada uno de los lenguajes usados en el proyecto, contamos con una guía de estilos.
- Para VB6
- Para C#
- Para PHP
- Para C++
Esta sección explica las etiquetas (labels) que usamos para ayudarnos a administrar y conocer el etado de las tareas. Muchas de estas etiquetas se usan en todos los repositorios, aunque otras son específicas para algunos de ellos.
La búsqueda de GitHub facilita la tarea de usar etiquetas (labels) para encontrar grupos de Issues o Pull Requests en los que puedes estar interesado. Te recomendamos que leas el artículo para saber más sobre consultas específicas.
Si tenes una sugerencia para agregar alguna etiqueta nueva, por favor abre un Pull Request en el repositorio correspondiente y nuestro equipo de mantenedores se encargará de evaluarla e implementarla.
Label name | |
---|---|
enhancement |
Solicitud de cambio a una funcionalidad |
bug |
Bugs confirmados o reportes que parecen serlo. |
question |
Pregunta sobre cómo realizar algo en particular. Por favor referirse a . |
feedback |
Feedback sobre algun cambio en una mecánica o proceso. |
help-wanted |
El equipo de Argentum Online apreciaría mucho la ayuda en la resolución de uno de estos Issues |
beginner |
Issues que no son complejos re resolver, y perfectos para cualquiera que quiera comenzar a contribuir en Argentum Online. |
more-information-needed |
Se requiere más información para poder resolver este Issue (Ej. pasos para reproducirlo). |
blocked |
Issues que se encuentra bloqueado por otro Issue que aun no fue resuelto. |
duplicate |
Issues que es un duplicado de otro Issue ya reportado. Se requiere confirmación. |
wontfix |
El equipo de Argentum Online no va a resolver este Issue por alguna razon. Las razones normalmente se dejarán por escrito en como comentario en el Issue. |
wrong-repo |
Issue reportado en el repositorio equivocado (Ej. un bug reportado en Cliente fue reportado en Servidor). |
Label name | Description |
---|---|
windows |
Relacionado a un proyecto corriendo en Windows. |
linux |
Relacionado a un proyecto corriendo en Linux. |
mac |
Relacionado a un proyecto corriendo en macOS. |
documentation |
Relacionado a cualquier tipo de documentación. |
performance |
Relacionado a temas de rendimiento. |
security |
Relacionado a la seguridad. |
ui |
Relacionado a temas de interfaz gráfica. |
crash |
Relacionado a cualquiera de los proyectos que dejen de funcionar de forma repentina |
auto-indent |
Relacionado a temas de auto indentación |
encoding |
Related a temas de encoding de caracteres |
network |
Related to network problems or working with remote files (e.g. on network drives). |
git |
Relacionado a temas de funcionalidad de Git (Ej: problemsa con archivos .gitignore problems). |
Label name | Description |
---|---|
work-in-progress |
Pull request que está siendo trabajado y no está listo para ser revisado. |
needs-review |
Pull request ya finalizado y pendiente de revisión. |
under-review |
Pull request que está siendo revisado. |
requires-changes |
Pull request que necesita cambios después de haber sido revisado. |
needs-testing |
Pull request que requiere pruebas manuales para verificar su funcionamiento. |
NOTA: Este documento fue creado en base a la guía de contribución del proyecto Atom