{"id":117,"date":"2021-11-18T04:00:00","date_gmt":"2021-11-18T04:00:00","guid":{"rendered":"https:\/\/gerardomiranda.dev\/blog\/?p=117"},"modified":"2021-11-18T01:25:08","modified_gmt":"2021-11-18T01:25:08","slug":"mi-primera-vez-contribuyendo-al-open-source","status":"publish","type":"post","link":"https:\/\/gerardomiranda.dev\/blog\/es\/mi-primera-vez-contribuyendo-al-open-source\/","title":{"rendered":"Mi primera vez contribuyendo al open source"},"content":{"rendered":"\n<p id=\"block-15f434c9-735a-40ea-b376-6086f71d16fb\">Cuando estaba considerando crear mi sitio web personal, me di cuenta que mi cuenta en Github estaba bastante vac\u00eda. Lo que puede resultar curioso por ser un desarrollador de software con m\u00e1s de 5 a\u00f1os de experiencia. La verdad yo tambi\u00e9n lo pens\u00e9, pero la mayor\u00eda de mi c\u00f3digo est\u00e1 en repositorios privados que no puedo compartir, y nunca he contribuido al open source. En alg\u00fan momento tuve curiosidad, pero no me involucr\u00e9.<\/p>\n\n\n\n<p id=\"block-15f434c9-735a-40ea-b376-6086f71d16fb\">Recientemente comenc\u00e9 un nuevo proyecto personal usando Flutter, que como sabr\u00e1n es completamente open source. Y mi curiosidad volvi\u00f3, haci\u00e9ndome querer aprender m\u00e1s sobre el open source y comenzar a contribuir, pero no sab\u00eda por donde empezar. <\/p>\n\n\n\n<p id=\"block-15f434c9-735a-40ea-b376-6086f71d16fb\">Estoy seguro que muchos enfrentan el mismo problema, as\u00ed que decid\u00ed compartir mi experiencia contribuyendo a software open source, mis pensamientos sobre el tema y consejo si es posible.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"block-c7c524ee-a5e7-4226-80a6-843645f9c77c\">D\u00f3nde comenzar<\/h4>\n\n\n\n<p>Mi experiencia aprendiendo Flutter es lo que me empuj\u00f3 a esto, as\u00ed que obviamente lo primero que pens\u00e9 fue en contribuir a Flutter. Pero si alguna vez has visto uno de estos grandes frameworks, a\u00fan cuando tengas buen conocimiento de \u00e9l, la cantidad de c\u00f3digo, informaci\u00f3n y cambios que ocurren r\u00e1pidamente puede ser intimidante.<\/p>\n\n\n\n<p>No estoy diciendo que no puedes iniciar tus contribuciones en uno de estos frameworks. Pero creo que el tiempo invertido en aprender las reglas de contribuci\u00f3n del repositorio y c\u00f3mo funciona el c\u00f3digo antes de poder hacer contribuciones significativas es demasiado.<\/p>\n\n\n\n<p>Lo que hice en vez de eso fue explorar repositorios por un tiempo, antes de tener una idea. Mientras trabajaba en mi proyecto en Flutter use un par de widgets hechos por la comunidad, as\u00ed que los revis\u00e9. Pude ver que eran bastante simples y que probablemente podr\u00eda extender su funcionalidad.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"block-5da0c7f9-4be8-49d7-b9d3-a006005f7dae\">Eligiendo mi primera contribuci\u00f3n<\/h4>\n\n\n\n<p>Primero decid\u00ed darle un vistazo al repositorio para el widget <a href=\"https:\/\/github.com\/jpnurmi\/flutter_spinbox\" target=\"_blank\" rel=\"noreferrer noopener\">Spinbox<\/a>. Fui directamente a la pesta\u00f1a de issues, donde encontr\u00e9 uno abierto que se ve\u00eda sencillo. Estaba cerca de encontrar lo que buscaba.<\/p>\n\n\n\n<p>Revis\u00e9 la conversaci\u00f3n para verificar que nadie estaba trabajando en la soluci\u00f3n. Pero el \u00faltimo que mencion\u00f3 que estaba interesado en trabajar en ello no hab\u00eda comentado en 6 meses, as\u00ed que lo tom\u00e9.<\/p>\n\n\n\n<p>Le hice un fork al repositorio y comenc\u00e9 a trabajar en la soluci\u00f3n. El cambio era bastante sencillo de resolver, asi que solo me tom\u00f3 un par de horas hasta que estaba listo para enviar un pull request<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"block-2dfeaa4c-84a1-46bd-bd7d-e263e1537938\">Abriendo mi primer pull request<\/h4>\n\n\n\n<p>Aqu\u00ed es donde se pone interesante. Como dije, era un cambio sencillo. Despu\u00e9s de enviar el pull request a las pocas horas el due\u00f1o del repositorio dej\u00f3 un comentario:<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<figure class=\"wp-block-image\" id=\"block-35f499a8-f279-43e9-a378-3507ed483044\"><img decoding=\"async\" src=\"https:\/\/gerardomiranda.dev\/blog\/wp-content\/uploads\/2021\/11\/image.png\" alt=\"This image has an empty alt attribute; its file name is image.png\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><\/p>\n\n\n\n<p>\u00c9l hizo una propuesta diferente, mucho mas sofisticada que mi soluci\u00f3n tan simplista. El solo hecho de leer el c\u00f3digo de la soluci\u00f3n me ayud\u00f3 mucho. Desde expandir mi conocimiento en Inherited Widgets a aprender un poco mas sobre la material foundation.<\/p>\n\n\n\n<p>Al final mi c\u00f3digo no termin\u00f3 en la rama principal, y est\u00e1 bien. No esperaba que mi primer pull request fuera exitoso ya que a\u00fan soy nuevo en esto.<\/p>\n\n\n\n<p>Si quieres ver m\u00e1s detalles puedes ver la conversaci\u00f3n en el <a href=\"https:\/\/github.com\/jpnurmi\/flutter_spinbox\/pull\/39\">pull request<\/a>. Tambi\u00e9n desglosar\u00e9 la soluci\u00f3n final (que no fue la m\u00eda) en un futuro post porque creo que es muy interesante.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"block-fd9041e1-f4d1-4901-90a8-5cf3270c4877\">Mi consejo<\/h4>\n\n\n\n<p>Esta fue mi primera contribuci\u00f3n y la experiencia en s\u00ed fue muy educativa. Si t\u00fa quieres contribuir al software open source, lo que puedo sugerir por ahora es lo siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Elige algo familiar,<\/strong> si est\u00e1s trabajando con un framework, elige algo relacionado a ese framework. Ser\u00e1 mas c\u00f3modo y no tendr\u00e1s que empezar en blanco.<\/li><li><strong>Ve por proyectos peque\u00f1os,<\/strong> especialmente si tienes proyectos personales o un trabajo que no te deje mucho tiempo. Proyectos peque\u00f1os son m\u00e1s f\u00e1ciles de entender y comenzar a contribuir.<\/li><li><strong>Escoge proyectos activos,<\/strong> aseg\u00farate que haya actividad en el repositorio al menos en los \u00faltimos 3 meses. Lo \u00faltimo que quieres es dar tu mejor esfuerzo en vano.<\/li><li><strong>No temas preguntar, <\/strong>si hubiera sido m\u00e1s comunicativo seguramente podr\u00eda haberle dado un mejor enfoque a mi soluci\u00f3n. Y la respuesta que obtuve de todas formas mostraba que estaba dispuesto a ayudarme si lo hubiera hecho.<\/li><li>Y lo m\u00e1s importante. Si lo quieres hacer, <strong>s\u00f3lo hazlo<\/strong>.<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La comunidad open source captur\u00f3 mi curiosidad una vez mas, haci\u00e9ndome querer saber m\u00e1s sobre ella y comenzar a contribuir, pero no sab\u00eda por donde comenzar<\/p>\n","protected":false},"author":1,"featured_media":109,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[22],"tags":[33,34],"class_list":["post-117","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-experiencia","tag-flutter","tag-open-source"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/posts\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":5,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/posts\/117\/revisions"}],"predecessor-version":[{"id":126,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/posts\/117\/revisions\/126"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/media\/109"}],"wp:attachment":[{"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/media?parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/categories?post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gerardomiranda.dev\/blog\/wp-json\/wp\/v2\/tags?post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}