Diferencia entre revisiones de «Trabajo: Concienciación sobre las licencias de software libre»

De FdIwiki ELP
Saltar a: navegación, buscar
(Impacto y conclusiones)
Línea 114: Línea 114:
 
En este gráfico podemos ver la cantidad de '''"PULL REQUEST"''' aceptados y clasificados en la cantidad de estrellas del repositorio:
 
En este gráfico podemos ver la cantidad de '''"PULL REQUEST"''' aceptados y clasificados en la cantidad de estrellas del repositorio:
  
[[Archivo:Ejemplo.jpg]]
+
[[Archivo:Tabla.png]]
  
 
Muchos repositorios han aceptado la ''licencia'' [http://wikis.fdi.ucm.es/ELP/Licencia_MIT/ MIT], posiblemente motivados por las ventajas explicadas en el mensaje y la facilidad aportada por nosotros para utilizarla.
 
Muchos repositorios han aceptado la ''licencia'' [http://wikis.fdi.ucm.es/ELP/Licencia_MIT/ MIT], posiblemente motivados por las ventajas explicadas en el mensaje y la facilidad aportada por nosotros para utilizarla.
 
  
 
==Webgrafia utilizada para crear el ''script''==
 
==Webgrafia utilizada para crear el ''script''==

Revisión de 22:30 18 dic 2019

Motivación: Se pretende concienciar a los usuarios de GitHub sobre los tipos de licencias, en concreto nos centramos en las licencias sobre software libre así como la importancia del uso de estas licencias.

Idea principal

La idea principal, consistía en buscar (a mano) repositorios de GitHub que no estuviesen usando licencia y contactar con ellos para explicarles las ventajas sobre su uso, en concreto exponiendo licencias libres (MIT).

Para comunicarnos con ellos, tras descartar diferentes ideas, se optó por enviar “PULL REQUEST”, introduciendo la licencia MIT en el repositorio elegido junto con un mensaje que contuviese la siguiente información:

  • Quienes somos
  • Información sobre licencias
  • Tipos de licencias
  • Importancia de su uso

También, en caso de desacuerdo con la licencia propuesta, se incluyeron enlaces sobre como poder elegir la licencia que más se adecue a las necesidades de cada usuario.

Se propuso también crear una web para explicar las diferentes licencias, esta idea fue rechazada debido a la carga de trabajo y a la existencia actual de muchas con el mismo propósito. Finalmente el proyecto se centró en la automatización del proceso.

Prueba de concepto

Para realizar una primera aproximacion y verificar que nuestra idea es viable, se ha realizado una busqueda manual de 15 repositorios que no tuvieran asignada una licencia. De estos 15 candidatos, 3 fueron excluidos por diversos motivos (recopilar software con licencia, uso del repositorio para anotaciones...).

Para los 13 repositorios restantes se realizo el siguiente procedimiento:

  • Se realizó un fork del repositorio.
  • Se añadió una licencia MIT.
  • Se solicitó un "Pull Request".

El mensaje consta de cuatro puntos principales, expuestos anteriormente, se ha traducido en dos idiomas diferentes (español e inglés). El mensaje, en inglés, es el siguiente:

Hello!
We are a group of students of Universidad Complutense de Madrid (UCM) and we are working on an awareness campaign about types and uses of licences.
There are many reasons to use licences in your code:
- It's EASY to use: choose the licence, copy the generic text and ready! Now you can use it in your projects You can found more information in the following link 
https://help.github.com/en/github/creating-cloning-and-archiving-repositories/licensing-a-repository 
- You LIMIT the uses of your code, in this way you will avoid possible legal problems about copies and plagiarism
- Share is power! The freeware licences give to you credit all the time. Allow third people use it with YOUR conditions
The following youtube link show the existing types of licences to choose one which adapt better to your needs
https://www.youtube.com/watch?v=OnmWFxlG2GA
We have chosen MIT license for this pull request. In this link, you can get more information about this license
https://choosealicense.com/licenses/mit/
Thank you a lot for your attention! We hope you the contents has been helpful

Impacto obtenido

Pasados unos dias se analizó el impacto obtenido:

  • Numero de pull request solicitados: 13
  • Numero de pull request aceptados: 2
  • Porcentaje de exito: 15%

Se muestra la tabla de repositorios a dia 13/11/2019

Repo Creador Ultimo commit Colaboradores Valido Comentario Enviado Aceptado
https://github.com/ideoforms/python-twitter-examples @ideoforms 19/5/2019 4 SI 11/11/2019 12/11/2019
https://github.com/ideoforms/isobar @ideoforms 18/2/2019 2 Si 11/11/2019 12/11/2019
https://github.com/iGhibli/iOS-DeviceSupport @iGhibli 10/10/2019 10 NO Es un recopilatoria de software de Apple
https://github.com/TheAlgorithms/Java @TheAlgorithms 3/11/2019 159 NO Ya tiene licencia
https://github.com/buymeasoda/refdocs @buymeasoda 1/11/2019 1 NO Es texto
https://github.com/buymeasoda/dotfiles @buymeasoda 1/11/2019 1 Si 11/11/2019
https://github.com/robertsmieja/typescript-template @robertsmieja 5/11/2019 2 Si 11/11/2019
https://github.com/lpmusicon/bd-ubiquitous-waffle-frontend @lpmusicon 5/11/2019 1 Si 11/11/2019
https://github.com/GSansigolo/Pauliceia-GeocodingAPI @Gsansiolo 2/9/2019 2 Si 11/11/2019
https://github.com/Marc-Ferrer-Castillo/ABP @Marc-Ferrer-Castillo 05/10/2019 5 Si 11/11/2019
https://github.com/edwin66627/proyectophp @edwin66627 05/10/2019 1 Si 11/11/2019
https://github.com/simonyagas/proyectoDH-Sprint03 @simonyagas 05/10/2019 1 Si 11/11/2019
https://github.com/mtugnarelli/cpp-aleatorios @mtugnarelli 30/3/2018 1 Si 11/11/2019
https://github.com/Thellly/JAVA @Thellly 26/4/2019 3 Si 11/11/2019
https://github.com/krmito/proyecto.NET @krmito 8/6/2019 1 Si 11/11/2019

Lecciones aprendidas

Tras esta prueba se ha comprobado que, pese a ser una muestra muy pequeña, el impacto puede ser significativo. Para la fase final del proyecto se tendran en cuenta los siguientes puntos.

  • La muestra tenía que ser mayor. En principio valoramos la posibilidad de solicitar la inclusion de una licencia en 100 repositorios.
  • Todo el proceso de busqueda y pull request es muy tediosa. En principio se tratara de automatizar mediante scripts. Si se consigue la automatizacion de todo se valorará el ampliar el numero de repositorios a los que solicitar el licenciamiento.
  • En vez de incluir todo el texto en el pull request, se valorará la creacion de una pagina web donde explicar el beneficio de las licencias libre y el procedimiento para realizarlo. Asi, ademas, se lograra un impacto adicional (usuarios que accedan a la pagina buscando informacion). --> Se descarto ya que parecia mas limpio tener la información dentro del PR
  • Se deben buscar repositorios que hayan sido modificados frecuentemente, ya que existen muchos repositorios sin actividad que es posible que ni siquieran sean conscientes de nuestro pull request.
  • Se valorará la posibilidad de incluir instrucciones sobre como aceptar nuestro pull request para usuarios menos familiarizados con GitHub.

Automatización del proyecto

Debido a la gran carga de trabajo que supone enviar los “PULL REQUEST” de manera manual, se decidió crear un script de automatización en python utilizando la API de GitHub. El propósito final era tener el mayor impacto posible por lo que el script pasó por diferentes fases:

  • Buscar proyectos sin licencias.
  • Enviar pull requests automáticos.
  • Eliminar proyectos vacíos.
  • Buscar los proyectos con más estrellas dentro de las búsquedas.


El crash de la Automatización

Tras el gran éxito de la automatización, en segunda fase, decidimos: Uno de los problemas que encontramos en la automatización, era que muchos de los repositorios estaban vacíos, de tal forma, no valdrían para nada, así que tendríamos que filtrar estos repositorios.

El mayor de los problemas fue que GitHub al considerarnos como spam eliminó la cuenta, perdiendo así todos los resultados obtenido hasta el momento. El problema fue solucionado poniéndose en contacto con un administrador de la plataforma para que desbloquease la cuenta, eso generó que un administrador viese nuestro script y diese estrella.

Tras varios correos GitHub nos devolvió la cuenta y pudimos recuperar todos los datos obtenidos. Aunque bajo aviso, hacer spam va en contra de las normas de uso de GitHub.

Impacto y conclusiones

En términos generales la aceptación ha sido mucho mayor de la esperada. (Enlace a la documente con los "PULL REQUEST" realizados)

En este gráfico podemos ver la cantidad de "PULL REQUEST" aceptados y clasificados en la cantidad de estrellas del repositorio:

Tabla.png

Muchos repositorios han aceptado la licencia MIT, posiblemente motivados por las ventajas explicadas en el mensaje y la facilidad aportada por nosotros para utilizarla.

Webgrafia utilizada para crear el script

Integrantes del grupo

El grupo esta constituido por:

  • JUAN COBOS MOLINA
  • RAÚL CABALLERO GIROL
  • CRISTINA MANSO DE LA VIUDA
  • JESÚS MARTÍN MORALEDA
  • SERGIO RAMOS MESA
  • JOAQUÍN SERRANO MARTÍNEZ