A continuación se describen los puntos esenciales para empezar a contribuir en el proyecto. Toda colaboración es bienvenida, siempre y cuando se mantenga el respeto establecido en el código de conducta. Gracias 😉 Para más información sobre la aplicación acceder a la wiki.
- Prerrequisitos
- ¿Cómo empezar?
- Reportar un error
- Propuesta de mejora
- Añadir un idioma
- Versionado
- Estilo de código
- Etiquetas
- Contacto
- Cualquier propuesta de mejora, notificación de error o sugerencia de cambio se debe realizar a través de los canales de comunicación establecidos. Para este proyecto se utilizan los issues de GitHub.
- Se debe seguir el código de conducta, cualquier petición que incumpla este código se rechazará inmediatamente.
- Crea un fork del repositorio original.
- Crea un branch con un nombre descriptivo.
- Añadir tests. (Si se requieren)
- Impleméntalo !
- Comprueba que pasa las pruebas.
- Asegurate de seguir la guía de estilos.
- Haz commit de los cambios.
- Para los commits utiliza uno de los siguientes prefijos en el mensaje.
[FEATURE nombre_de_la_funcionalidad] [DOCS] [BUG] - Realiza un pull request
- En este punto debes asegurarte de que la rama master está actualizada con el repositorio original.
- Haz PR desde tu rama a la rama master del proyecto original.
- Manten actualizada tu PR
- Fusionar el PR (Solo responsables)
- Actualizar la versión. (Solo responsables)
- Lanzar una versión. (Solo responsables)
Si has encontrado alguna vulnerabilidad de la seguridad, por favor, no la publiques. Ponte en contacto a través del correo electrónico: jcarraldc@gmail.com
Si se trata de un bug que no pone en riesgo la seguridad sigue los siguientes pasos:
- Comprueba que ese error no ha sido notificado antes.
- Abre un nuevo issue utilizando la plantilla que se te propone.
- Responde a las siguientes preguntas:
- ¿ Cual es el comportamiento ?
- ¿ Qué debería hacer realmente ?
- ¿ Qué pasos he seguido para llegar a ese punto ?
- ¿ Sobre que SO o máquina he realizado la prueba ?
- Añade cualquier tipo de prueba para facilitar la búsqueda de una solución.
- Comprobar que no es una propuesta de mejora ya realizada.
- Abrir un nuevo issue utilizando la plantilla para mejoras que se proporciona.
- Responder a las siguientes preguntas:
- ¿ Qué debe hacer la mejora ?
- ¿ Por que debería implementarse ?
- ¿ Cómo debería hacerse ?
- Añade cualquier tipo de material que ayude a entender la propuesta. (Imagenes o enlaces a recursos).
Para poder añadir un idioma a la aplicación se deben seguir los siguientes pasos.
-
Comprobar si el idioma está implementado o hay un issue abierto.
-
Abrir un issue para discutir el tema.
-
Si no hay inconveniente en ello, descargar proyecto y empezar a desarrollar.
-
Ir a
app/locale/languages/y crear un fichero con el código ISO 639 correspondiente.
eu.js // Para euskera
en.js // Para inglés
fr.js // Para francés.
-
Copiar el contenido del fichero
app/locale/languages/en.jsy traducir los strings. -
Importar el fichero traducido en
app/locale/languages/index.js. -
Importar el fichero y añadir a la lista de traducciones en `app/locale/index.js``
import {
es,
en,
// <== Importar aqui
} from './languages';
I18n.fallbacks = true;
I18n.defaultLocale = common.defaultLocale;
I18n.translations = {
es,
en,
// <== Añadir aqui
};
- Añadir el nuevo idioma a la lista para poder modificarlo. Para ello hay que añadir un objeto en el array que hay en
app/settings/language-settings.js. Este objeto debe tener la siguiente estructura:
{
code: 'es',
emojiCode: ':flag-es:',
name: 'Español',
},
- code: Código ISO 639
- emojiCode: Código de la bandera que se va a mostrar. Se puede consultar aquí, si no esta disponible usar
:waving-flag:. - name: Nombre del idioma que se va a mostrar en la configuración.
-
Comprobar que funciona todo correctamente.
-
Abrir un pull request para añadir el idioma referenciando al issue que se ha abierto.
En este proyecto se sigue el módelo de versiones semver.
Estándar de código: AirBnB
Reglas modificadas:
"rules": {
"react/jsx-filename-extension": 0,
"func-names": 0,
"import/prefer-default-export": 0,
"react/prop-types": 0,
"global-require": 0,
"no-unused-vars": 0,
"no-useless-escape": 0,
"dot-notation": 0,
"jsx-quotes": 0,
"no-restricted-syntax": 0,
"no-param-reassign": 0,
"no-case-declarations": 0,
"no-await-in-loop": 0,
"no-plusplus": 0,
"react/no-array-index-key": 0
}Cuando se abre una nueva issue se le añaden una serie de etiquetas en función del contenido. En la siguiente tabla se pueden ver todas junto a su descripción.
| Nombre | Descripción |
|---|---|
| 🐛 bug | Notificación de error |
| ❌ duplicate | Issue repetida |
| 🙋🏼♀️ feature | Nueva funcionalidad |
| 👶🏼 good first issue | Ejemplo de una buena issue |
| 🏳️ Translation | Traducción de la aplicación |
| 🙏🏼 help wanted | Petición de ayuda |
| Issue incorrecta | |
| 🧐 question | Pregunta sobre el proyecto |