Como aprovechar a Fedora Badges

Arquitectura

El demonio de punto final que otorga insignias, fedbadges, se despierta cuando recibe un evento en fedmsg. Compara que mensaje y el histórico en número de datos con una serie de reglas. Si un contribuyente cumple con los criterios descritos en una de esas reglas, se le premia con una insignia.

La interfaz es una aplicación web llamada Tahrir. Principalmente es solo una interfaz para que los usuarios vean sus insignias. Sin embargo, también tiene una interfaz de administración para el añadido manual de nuevas insignias, la concesión de insignias y la creación de «invitaciones» (códigos QR) para las insignias.

The badge-awarding back-end daemon, fedbadges, runs in OpenShift, in the badges project. The front-end runs in OpenShift as well.

Documentación actual

Proceso de administrador de sistema: Como fomentar una Insignia

Promover insignias consta de dos operaciones:

  1. Subir activos de insignias (.png, .svg, .yaml) al repositorio fedora-badges

  2. Añadir insignia a badges.fedoraproject.org

Cualquiera con permisos de escritura en insignias de Fedora puede fomentar insignias. También se pueden usar solicitudes de promoción. Solo los miembros del grupo FAS sysadmin-badges y administradores de la interfaz web pueden añadir insignias.

Los artistas y desarrolladores de insignias pueden subir diseños (png y svg art) y reglas (yaml) al repositorio insignias-fedora.

Preparando para crear una insignia

Una vez que se ha aprobado una insignia por el Equipo de Diseño y tiene la etiqueta preparado para promocionar, está preparada para ser subida. Siga esta lista de comprobación para subir una nueva insignia:

  1. Asegúrese que el diseño está aprobado por el Equipo de Diseño

  2. Asegúrese de que el nombre y la descripción de la insignia sean claros

  3. Asegúrese de cumplir uno de estos requisitos:

    • Insignias otorgadas manualmente: Que cuentas FAS reciben permisos para otorgar la insignia

    • Otorgada por medio de una regla fedmsg: El archivo YAML con la regla está presente

Si está confundido o algo no aparece, comente sobre la cuestión y borre la etiqueta ready to push.

Agregar activos de insignia a Pagure

  1. Descargue el trabajo y el fichero de regla (si es aplicable):

    • Verifique dos veces que el trabajo artístico sea la versión final desde el boleto

    • Abra / visualice ambos ficheros del trabajo para comprobar que no están corrompidos (en el pasado, las imágenes corruptas eran accidentalmente subidas)

  2. Dé a ambos ficheros, trabajo y regla, el mismo nombre, sitúelos en los directorios pngs/, svg/, rules/

  3. Solo sobre petición: Genere un fichero STL para impresión en 3D de una insignia:

    • Cambie a los directorios en bin/ y ejecute export.sh. Esto crea un fichero STL para la insignia y lo lleva al sitio correcto.

    • Compruebe en el fichero README en bin/ mas información sobre el script.

  4. Confirme todos los archivos y súbalos a fedora-badges (o haga un PR)

Asegúrese que los ficheros tienen un nombre razonable (e.g. all-lowercase-dashes-only.png). Algunos tipos de insignias tienen una convención de denominación, como las insignias de pertenencia al grupo FAS (i.e. fas-badge-name.png) o la construcción de insignias Koji (i.e. koji-badge-name.png). Siga los precedentes pasados cuando sea posible. Más tarde, el nombre del fichero se usa para el fichero de interfaz del servidor (e.g. https://badges.fedoraproject.org/pngs/all-lowercase-dashes-only.png).

Let the assets be pulled by the back-end server

Note: All assets must be in the master branch of fedora-badges before proceeding.

The badges will be automatically pulled from the Pagure repository every 15 minutes.

Una vez terminado, asegúrese que la insignia es públicamente visible (i.e. https://badges.fedoraproject.org/pngs/<name>.png)

Añadir insignias otorgadas automáticamente

Aviso: Preste mucha atención al seguir estos pasos. Es fácil crear una insignia, pero es mucho más duro editarla más tarde. La información de doble confirmación se debe introducir correctamente en el archivo YAML o de otro modo tendrá que escribir instrucciones SQL para corregirlo más tarde.

Automatically awarded badges are created by the YAML rule file. Once the repo has been updated on the server (every 15 minutes), the badge is created and placed in the badges index. The only part not created automatically are tags (see Badge metadata below for info about tags). To add new tags, find the badge on badges.fedoraproject.org. If you are logged in as an admin, there is a text field to enter in new tags.

Añadir insignias otorgadas manualmente

Aviso: Preste mucha atención al seguir estos pasos. Es fácil crear una insignia, pero es mucho más duro editarla mas tarde. La información de doble confirmación se debe introducir correctamente en el archivo YAML o de otro modo tendrá que escribir instrucciones SQL para corregirlo más tarde.

Once the badge assets are pulled by the back-end, add the badge to the front-end, Tahrir. The front-end is hosted at badges.fedoraproject.org. Follow these steps to add the badge in Tahrir.

  1. Interfaz Open Admin en badges.fedoraproject.org

  2. Vaya a la sección Add badge.

  3. Introduzca toda la información como se suministra en el ticket de la insignia (vea Metadatos Badge más abajo.)

  4. Haga doble comprobación de que toda la información introducida en correcta y precisa

  5. Pulse Create badge para crear la nueva insignia

La insignia se ha creado. Debería ser capaz de encontrarla en el índice de insignias.

Otorgar autorizaciones

Las insignias otorgadas manualmente requieren que usuarios autorizados emitan la insignia. Puede hacer esto en la parte inferior de la interfaz Admin, cerca de Create Authorizations. Añada la persona que recibe privilegios de adjudicación en el campo Person Email. Esto debe ser formateado con su dirección de correo electrónico de fedoraproject.org (e.g. FASuser [en] fedoraproject [punto] org). Por nombre de insignia, use el slug (o nombre de insignia) de la URL de la insignia (e.g. para badges.fedoraproject.org/badge/commops-superstar, esto es commops-superstar).

Para añadir múltiples usuarios, repita este proceso por cada usuario.

Metadatos Badge

  • Nombre: nombre de la insignia – esto determina la URL de la insignia, de modo que verifique tres veces los errores tipográficos

  • Imagen: enlace completo al PNG (e.g. https://badges.fedoraproject.org/pngs/all-lowercase-dashes-only.png)

  • Descripción: texto de descripción de la insignia (asegúrese de que no cuelgue espacios en blanco)

  • Criterio: enlace a la cuestión en fedora-badges

  • Editor: mantener el predeterminado

  • Etiquetas: lita delimitada por comas de las etiquetas:

    • Revise otras insignias similares para asegurar que las etiquetas son las correctas. Algunas etiquetas son especiales y funcionan como categorías.

    • Siga el precedente anterior para las etiquetas. Evite crear nuevas etiquetas si es posible.

    • Quitar etiquetas no es fácil. Añadirlas más tarde es fácil.

Cerrar el boleto

Después de poner la insignia, haga algunas últimas comprobaciones para asegurarse de que la insignia se ha puesto correctamente. Asegúrese de que la página es visible y haga doble comprobación de que se le ha puesto la categoría correcta en el índice de insignias.

Regrese al tema de Pagure para la insignia. Publique un enlace a la insignia puesta. Si ha otorgado autorizaciones, liste los nombres de usuarios FAS a los que otorga autorizaciones. Después de comentar, cierre la cuestión como pushed.

¡Felicitaciones, acaba de poner su propia Fedora Badge!

Cómo otorgar manualmente una insignia

Para llevar a cabo esto, debe estar en grupo FAS sysadmin-badges.

Este es un script instalado sobre badges-backend01 en /usr/local/bin/award-badge. Tiene opciones de ayuda que puede ver con award-badge -h. Toma una opción --user FAS_USERNAME requerida y una opción --badge BADGE_ID también requerida. Por ejemplo, la siguiente invocación otorgará la insignia "Associate Editor" a "ralph":

sudo /usr/local/bin/award-badge --user ralph --badge associate-editor

La BADGE_ID para una insignia se puede encontrar visitando su pagina en la web UI. Esta insignia se puede encontrar en https://badges.fedoraproject.org/badge/associate-editor.

El script award-badge y el código fuente están gestionados por ansible.git. El código fuente está en roles/badges/backend/files/award-badge.

Bastante a menudo, es necesario un flujo de trabajo para otorgar por lotes una insignia a varias personas. Por ejemplo, la insignia Keepin' Fedora Beautiful proviene de un miembro del Equipo de Diseño que publica un ticket con una lista de nombres de usuario FAS (i.e. fedora-badges#129).

Para casos, puede wget el archivo con la lista de nombres de usuarios FAS en badges-backend01 y ejecutar algo como:

$ for i in $(cat keepingbeautiful-list ) ; do
    sudo /usr/local/bin/award-badge --user $i --badge keepin-fedora-beautiful-f20;
done

Cómo revocar manualmente una insignia o autorización

Puede revocar una insignia o autorizaciones insignias de modo similar al script award-badges. Puede encadenar la invocación del script revoke-badge o revoke-authorization de la misma manera que el script award-badges.

Revocando una insignia:
sudo /usr/local/bin/revoke-badge --user ralph --badge associate-editor
Recovando una autorización:
sudo /usr/local/bin/revoke-authorization --user ralph --badge associate-editor

Como añadir administradores a Tahrir

Estaría bien si pudiéramos otorgar automáticamente acceso de administrador en el interfaz web a los miembros del grupo FAS sysadmin-badges. Actualmente no tenemos esta función y debemos mantener la lista de los administradores de UI web separadamente.

El fichero de configuración para la aplicación web de insignias es manejada por ansible.git. El código fuente está en roles/badges/frontend/templates/tahrir.ini.

En este fichero, encuentre la opción tahrir.admin. Es una lista separada por comas de direcciones de correo electrónico que, cuando inicie sesión, debería otorgar derechos para acceder a los paneles de administración en badges.fedoraproject.org.

To add a new admin, add their FAS_USERNAME@fedoraproject.org email to that line, commit, and push. Use Ansible to run the openshift-apps/badges.yml playbook to push the config change out to the web front-end nodes.

Como crear una invitación y un código QR

Esto se hace a través del panel de administración de la interfaz web (a pesar de que probablemente podamos escribir un script para ser usado en el nodo back-end).

Invitaciones / códigos QR se crean normalmente para eventos Fedora. Por ejemplo en la conferencia Flock 2013 Fedora Contributors, creamos una insignia para premiar a los asistentes. Seguimos el procedimiento de abajo para generar una invitación y un código QR . Después, el código QR fue distribuido a los organizadores de la conferencia. Ellos añadieron el código QR al folleto de programa que se dio a cada asistente. Entonces, cualquier asistente que escaneó el código fue redirigido a la aplicación insignias, donde fueron premiados con la insignia.

Crear una invitación

  1. Asegúrese que es administrador en la interfaz web y acceda a badges.fedoraproject.org

  2. Pulse el enlace Admin en la UI

  3. Bajo la sección Invitations, añada esta información:

    • Fecha de Creación: Opcional. Por defecto el día actual.

    • Fecha de Expiración: Opcional, pero probablemente deseará especificar una. Por defecto 2 horas desde la hora actual. Por ejemplo, en la conferencia Flock 2013, establecimos la fecha de espiración al final de la conferencia. A cualquiera que intente reclamar la insignia con el código QR después de la hora se le denegará, con el mensaje esta invitación ha expirado.

    • Badge ID: "ID" de la insignia que desea otorgar. Vea arriba como encontrar una ID de insignia.

    • Correo electrónico personal: Correo electrónico de una persona en la base de datos de insignias. En nuestro caso, usar su correo electrónico de Fedora (e.g. FAS_USERNAME@fedoraproject.org).

Ahora, el usuario que ha especificado tendrá un enlace al código QR y un enlace de invitación en su página de perfil. Pueden tomar la iniciativa para distribuir y compartir la insignia como deseen.

Scipts útiles para trabajo manual

Vea ansible/roles/badges/backend/files/ para la carga madre. Todos estos se implementan a /usr/local/bin/ en badges-backend01 donde usted puede acceder para ejecutarlos.

editar-insignia

Actualiza la descripción y el criterio de enlace para una insignia. Útil en el caso de que lo haya creado incorrectamente o si los comentarios de otras partes interesadas nos lleven a cambiar algo.

galardón

Otorgar una insignia a un usuario específico.

revocar-insignia

Borrar una insignia de un usuario al que se le ha otorgado erróneamente. ¡Recuerde! Si usted revoca una insignia otorgada a un usuario, debería darle también una insignia premio-de-consolación como muestra de disculpa.

conceder-autorización

Conceder derechos de autorización sobre una insignia a un usuario privilegiado. Pueden crear enlaces de invitación y códigos QR para la insignia así como otorgarlas directamente a otros usuarios desde la interfaz web.

revocar-autorización

Revocan esos derechos de autorización para un usuario sobre una insignia dada.

Información de contacto

Propietario

Comunidad Fedora Badges

Contacto

#fedora-badges

Servidores

badges-web0*, badges-backend0*

Propósito

Premio "badges" a Contribuyentes Fedora