UbuntuDevel

Ubuntu Open Week - Introduction to Ubuntu Development - Andrés Rodríguez - 4 de noviembre 2009

   1 [19:01:43] <alucardni>  la última sesión de hoy está a cargo de Andres Rodriguez
   2 [19:02:08] <alucardni>  Así que RoAkSoAx todos tuyos!
   3 [19:02:09] <RoAkSoAx>   o/
   4 [19:02:18] <RoAkSoAx>   Saludos a todos. En esta charla es para todas aquellas personas que desean participar en el desarrollo de Ubuntu. Esta charla esta orientada a introducirlos a Ubuntu Development.
   5 [19:02:43] <RoAkSoAx>   Si se dan cuenta pongo terminos en ingles ya que todo lo que es desarrollo esta estandarizado al ingles
   6 [19:03:27] <RoAkSoAx>   Ahora bien, quiero saber quienes de uds estan aqui para esta charla, y quiero saber que esperan saber sobre Ubuntu Development?
   7 [19:04:28] <RoAkSoAx>   alguien? \o/
   8 [19:05:00] <RoAkSoAx>   Bueno emepzare entonces: Primero que todo les comentare que ya empezo el ciclo de desarrollo de Ubuntu Lucid Lynx. La proxima distribucion sera LTS. Como todos saben, Ubuntu esta basado en Debian. Aqui podemos diferenciar dos cosas, priemro, la sincronizacion de paquetes, segundo, la migracion de paquetes.
   9 [19:05:16] <RoAkSoAx>   de los cuales hablaremos mas adelante
  10 [19:05:27] <RoAkSoAx>   Al ser esta una version LTS, la autosincronizacion sera de Debian Testing en vez de Debian unstable (como se suele hacer), debido a que se busca mejor estabilidad del sistema (aunque se peude pedir la syncronizacion de un paquete en Debian unstable si se cree que  es necesario).
  11 [19:05:50] <RoAkSoAx>   En cuanto a los merges se puede hacer desde testing or unstable.
  12 [19:06:01] <RoAkSoAx>   Mas informacion sobre los lanzamientos LTS aqui: https://wiki.ubuntu.com/LTS
  13 [19:06:28] <RoAkSoAx>   Ahora bien, se preguntaran, quienes o cuales son los desarrolladores de Ubuntu
  14 [19:06:42] <RoAkSoAx>   En Ubuntu existen basicamente 2 tipos de desarrolladores: Los MOTU y los Core Developers.
  15 [19:07:08] <RoAkSoAx>   Cualquier persona que desee ser parte y demuestre las habilidades necesarias y que se comprometa al proyecto, puede convertirse en desarrollador de Ubuntu.
  16 [19:07:35] <RoAkSoAx>   Los MOTU (Master of the Universe) son los desarrolladores encargados de trabajar con los paquetes en los repositorios Universe y Multiverse.
  17 [19:07:35] <RoAkSoAx>   Los Core Developers son los desarrolladores encargados de trabajar con los paquetes de los repositorios Main y Restricted.
  18 [19:08:16] <RoAkSoAx>   Pero ahora se preguntaran... si no soy ninguno... y quiero introducirme a Ubuntu Development, que puedo ser??
  19 [19:08:27] <RoAkSoAx>   Es aqui donde caen otra clase de desarrolladores en Ubuntu:
  20 [19:08:33] <RoAkSoAx>   Ubuntu Prospective Developer
  21 [19:08:33] <RoAkSoAx>   Ubuntu Contributing Developer
  22 [19:08:33] <RoAkSoAx>   Per-Package Uploaders
  23 [19:09:36] <RoAkSoAx>   Ahora, cuales son las diferencias?? Pues los MOTU y Core Developers pueden subir sus cambios directamente a los repositorios. Los Per-Package Uploaders, tambein, pero solo lo hacen por paquetes a los que tengan permisos
  24 [19:10:10] <RoAkSoAx>   Ahora bien, que hacen si no son ni MOTU's, ni Core's, NI Per-Package?? Se pide "Sponsorship"
  25 [19:10:44] <RoAkSoAx>   Y que es?? Es simplemente pedir que algun desarrollador revise el paquete y/o los cambios, para que los suba a los repositorios
  26 [19:11:05] <RoAkSoAx>   Pero entonces se preguntaran cual es la diferencia entre Prospective y Contributing Developer, pues es la siguiente:
  27 [19:11:13] <RoAkSoAx>   Los Prospective Developers son todas aquellas personas que estan interesadas en participar en el desarrollo de Ubuntu. Estas personas son las que tienen que empezar a familiarizarse con paqueteria Debian, bug fixes, etc.
  28 [19:11:24] <RoAkSoAx>   Los Contributing Developers son todas aquellas personas que ya conocen y estan familiarizados con el desarrollo de Ubuntu. Estas personas ya tienen conocimientos tecnicos sobre paqueteria Debian. Estas personas ya son responsables de mantener paquetes de Universe y Multiverse, pero aun necesitan Sponsorship para subir su trabajo.
  29 [19:11:58] <RoAkSoAx>   Hasta aqui, alguein tiene alguna pregunta?
  30 [19:12:45] <alucardni>  PREGUNTA: como te haces responsable de mantener paquetes de Universe y Multiverse?
  31 [19:12:46] <RoAkSoAx>   Nadie. entonces seguire.
  32 [19:13:05] <RoAkSoAx>   alucardni, eso es justo a lo que iba
  33 [19:13:36] <RoAkSoAx>   Para convertirse en desarrollador de Ubuntu existen algunos pasos que tenemos que seguir
  34 [19:14:04] <RoAkSoAx>   si queremos ser, eso significa que somos Prospective Developers, y es aqui donde empezamos a adquirir los conocimientos basicos de paqueteria Debian
  35 [19:14:32] <RoAkSoAx>   Una vez que ya tenemos estos conocimientos, podemos aplicar para ser Contributing Developers, que es el paso anterior para ser MOTU's
  36 [19:15:10] <RoAkSoAx>   una esquematica y mas informacion sobre estos lo encontramos aqui: https://wiki.ubuntu.com/UbuntuDevelopers
  37 [19:15:27] <RoAkSoAx>   Pero bueno... entonces... como es que empezamos o nos hacemos responsables???
  38 [19:15:54] <RoAkSoAx>   pues lo que tenemos que hacer es simple: 1. comprometerse, 2. practicar, practicar, practicar, y seguir practicando
  39 [19:16:10] <RoAkSoAx>   Pero que tenemos que aprender para llegar a ser MOTU's??
  40 [19:16:21] <RoAkSoAx>   Paqueteria Debian... (si no mal recuerdo hhuboi una sesion al respecto ayer)
  41 [19:16:35] <RoAkSoAx>   Esto lo pueden hacer totalmente por su cuenta o por el programa de Mentorships de Ubuntu que ayuda a Prospective Developers a aprender lo necesario y familiarizarse con el desarrollo de Ubuntu para convertirse MOTUs. Existen dos tipos de Mentorships:
  42 [19:16:53] <RoAkSoAx>   Junior Mentorship
  43 [19:16:54] <RoAkSoAx>   Prepara a las personas en las diferentes actividades de desarrollo de Ubuntu.
  44 [19:16:54] <RoAkSoAx>   bug triaging, patching, Q/A (FTBFS), syncs, merges, updates, SRUs, backports, Security Updates, Sponsoring, pbuilder, debhelper, cdbs
  45 [19:17:22] <RoAkSoAx>   Una vez terminada el Mentorship, el Prospective developer debe de tener los conocimeintos basicos para convertirse en Contributing Developer
  46 [19:17:35] <RoAkSoAx>   Senior Mentorship
  47 [19:17:35] <RoAkSoAx>   Preparan para la aplicacion a MOTU, recomendaciones, introduccion a equipos, etc.
  48 [19:17:55] <RoAkSoAx>   En otras palabras, la Senior Mentorship es basicamente orientada a convertir a estos Contributing Developers en MOTUs
  49 [19:18:13] <RoAkSoAx>   Este programa NO esta orientado a personas que esperan que LES ENSENEN a hacer paqueteria Debian. Aqui el mentor SOLO sera una guia, todo lo demas lo tendran que hacer uds. Tengan tambien en cuenta que existen un numero limitado de Mentores, asi que talvez uno no siempre podra obtener uno cuando aplique.
  50 [19:18:37] <RoAkSoAx>   Mas informacion del programa lo encuentran aqui: https://wiki.ubuntu.com/MOTU/Mentoring
  51 [19:19:26] <RoAkSoAx>   Buenio, entonces... como se empieza?? El primer paso es ir aprendiendo y familiarizandose con paqueteria de debian basica, o packaging from scratch, qeu significa crear un paquete debian desde la fuente, o el source code
  52 [19:19:58] <RoAkSoAx>   Entonces, de donde me baso para hacerlo?? del Debian New Maintainer's Guide: http://www.debian.org/doc/maint-guide/
  53 [19:20:15] <RoAkSoAx>   ese es el primer documento que toda persona que quiera aprender paqueteria debian debe leer
  54 [19:20:29] <RoAkSoAx>   Luego, tambien tenemos el Packaging Guide de Ubuntu: https://wiki.ubuntu.com/PackagingGuide/Complete
  55 [19:21:33] <RoAkSoAx>   una vez que leimos todo, empezamos a practicar
  56 [19:21:49] <RoAkSoAx>   el Packaging Guide de Ubuntu Contiene TODO lo basico que se debe aprender
  57 [19:22:01] <RoAkSoAx>   entonces, para ser MOTU tenemos que saber ocmo hacer packaging from scratch
  58 [19:22:12] <RoAkSoAx>   tenemos qeu saber Bug Triaging
  59 [19:22:26] <RoAkSoAx>   Tenemso que aplicar parches y saber utilizar las herramientas
  60 [19:22:41] <RoAkSoAx>   tenemos que aprender el proceso de Q/A, como FTBFS (Failed to Build From Source)
  61 [19:22:54] <RoAkSoAx>   tenemos que aprender a identificar cuando se debe hacer un sync (sincronizar un paquete de Debian)
  62 [19:23:10] <RoAkSoAx>   tenemos que aprender a hacer unn merge (Migrar un paquete de Debian aplicando los cambios de Ubuntu)
  63 [19:23:37] <RoAkSoAx>   tenemos que saber hacer updates, que es actualizar el paquete a la ultima version de upstream (Upstream es el desarrollador del programa)
  64 [19:24:11] <RoAkSoAx>   Tenemos que saber el proceso de SRUs, que son actualizaciones para paquetes de un lanzamiento estable (NO en desarrollo)
  65 [19:24:19] <RoAkSoAx>   y bueno, tenemos que saber hacer Security Updates
  66 [19:24:36] <RoAkSoAx>   una vez que sepan todo esto, hayan practicado mucho... podran aplicar a MOTUs
  67 [19:25:18] <RoAkSoAx>   Como sabran que estan listos para hacerlo??? Pues, cuando hagann cambios, necesitaran de un Sponsor. Son estos sponsors los qeu decidiran si estan listos o no para ser MOTU;s
  68 [19:26:05] <RoAkSoAx>   como asi? Simple, si los Sponsors que hayan tenido confian totalmente en sus cambios, significa que sioempre revisaran sus cambios y nunca encontraran errores mayores, lo cual les permitira subir sus trabajos sin tener que pedir por estos cambios
  69 [19:26:12] <RoAkSoAx>   mientras mas practican, mas experiencia tengran
  70 [19:26:31] <RoAkSoAx>   tendran*, y mientras mas experiencia, los Sponsors estaran mas satisfechos con Uds.
  71 [19:26:49] <RoAkSoAx>   Hasta aqui, alguien tiene alguna pregunta o alguna duda sobre todo lo explicado?
  72 [19:27:48] <alucardni>  <n0rman> PREGUNTA: Supongo que un Sponsor, es un MOTU?
  73 [19:28:21] <RoAkSoAx>   n0rman, si el paquete es para los repositorios Universe o Multiverse, el Sponsor es un MOTU, si es para paquetes enn los repositorios Main y Restricted, el sponsor es un Core Developer
  74 [19:29:24] <alucardni>  <tcpip4000> PREGUNTA: como se diferencia de los paquetes rpm?
  75 [19:30:10] <RoAkSoAx>   tcpip4000, pues interesante pregunta. Detalles tecnicos, no los se ya que nunca he trabajo con paqueteria RPM.
  76 [19:31:23] <alucardni>  <n0rman> PREGUNTA: Hay un tiempo establecido para pasar de un escalon a otro? de Prospective Developer a Conrtibutin Developers, a MOTU?
  77 [19:31:38] <RoAkSoAx>   n0rman, no, no lo hay. Por ejemplo, yo me converti en MOTU sin pasar a ser un Contributing Developer. Por que? Porque yo, despues de practicar mucho, aplique directamente para MOTU en vez que para Contributing Developer. Obviamente, trabaje con muchos paquetes para poder ir directamente
  78 [19:32:03] <RoAkSoAx>   y pues es aqui donde mi Mentor me recomendo aplicar a MOTU directamente
  79 [19:32:13] <RoAkSoAx>   por ;la experiencia que adquiri, y mis Sponsors me respaldaron
  80 [19:32:30] <alucardni>  <tcpip4000> PREGUNTA: existe algo como los delta .deb (diferencias entre dos paquetes deb para evitar bajar un paquete nuevo y solo bajar la diferencia)?
  81 [19:33:20] <RoAkSoAx>   tcpip4000, 1. a que te refieres con Bajar?
  82 [19:34:08] <alucardni>  <tcpip4000> sería algo asi como la diferencia entre dos binarios (patch binario mucho más rápido de bajar)
  83 [19:35:14] <RoAkSoAx>   tcpip4000, Ok. cuando uno trabaja en desarrollo, veamos un poquito el proceso de un Merge. Primero bajamos la nueva version de Debian, luego la version antigua en Ubuntu, y se saca un delta, que como tu dices, es la diferencia entre los paquetes.
  84 [19:36:31] <RoAkSoAx>   si por ej. existen cambios especificos (en UBuntu) en la nueva version (migrada de Debian), eso significa que se tiene un delta entre Debian y Ubuntu
  85 [19:37:03] <RoAkSoAx>   Ej. El paquete nginx siempre tendra 1 cambio en comparacion de Debian. El cambio es el Perfil de UFW
  86 [19:37:27] <RoAkSoAx>   esto quiere decir, que siempre migraremos el paquete de debian, aplicaremos los cambios hechos en Ubuntu y lo subiremos a los repositorios
  87 [19:38:05] <RoAkSoAx>   Y cuando NO hay un delta, simplemente no hay cambios por introducir en Ubuntu, por lo cual se le dice "Drop Ubuntu Delta", y pedimos un SYNC
  88 [19:38:12] <RoAkSoAx>   tcpip4000, no se si me deje entender :) ?
  89 [19:38:28] <alucardni>  <n0rman> PREGUNTA: Como se eligen los paquetes que la comunidad UBUNTU decide mantener?
  90 [19:39:51] <RoAkSoAx>   tcpip4000, sio te refieres al usuario que instala el paquete NO. El proceso para hacer el merge, lo hace un programita llamado Merge-O-Matic, que bajara la ultima version de Debian, aplicara los cambios de Ubuntu y dejara el paquete listo para la revision del desarrollador y asi para saber si se mantendra un Delta o se podra hacer "un drop"
  91 [19:40:09] <RoAkSoAx>   es decir, el desarrollador decidira cuando aceptar los cambios de Ubuntu o cuando olvidarlos
  92 [19:40:49] <RoAkSoAx>   n0rman, eso depende. Los programas en main son todos aquellos que generalmente son los componentes basicos y caracteristicas qeu Ubuntu (y Canonical) queire tener
  93 [19:41:37] <RoAkSoAx>   y en Universe y Multiverse, estan todo el software que uno desea
  94 [19:41:52] <RoAkSoAx>   si decides empaquetar un software y mantenerlo actualizado, estara siempre en Universe/Multiverse
  95 [19:43:22] <RoAkSoAx>   en otras palabras, tu como MOTU o como Contributing Developer pueden escoger alguna aplicacion, empaquetarla, y pedir que sea subida a los repositorios de Ubuntu. Asi, puedes convertirte en el Maintainer de ese paquete.
  96 [19:43:43] <RoAkSoAx>   alguna otra pregunta/aclaracion?
  97 [19:44:17] <n0rman>     RoAkSoAx: parece que no hay, podes seguir :)
  98 [19:45:06] <alucardni>  <tcpip4000> Pregunta:  va a haber ejemplo de empaquetado?
  99 [19:45:22] <RoAkSoAx>   tcpip4000, pues no :). Si no me equivoco hubo una sesion ayer al respecto
 100 [19:45:53] <RoAkSoAx>   Bueno entonces ire al ultimo punto
 101 [19:46:26] <RoAkSoAx>   Como sabran, el desarrollo se basa en un programa de desarrollo, este se detalla en: https://wiki.ubuntu.com/LucidReleaseSchedule
 102 [19:47:10] <RoAkSoAx>   Entonces, para orientarnos rapidamente en el Release Schedule, veremos que es lo que podemos hacer
 103 [19:47:53] <RoAkSoAx>   como ya se abrio el desarrollo, lo que sucede ahora es que se estan sincronizando automaticamente los paquetes de Debian a Ubuntu. Todos estos paquetes son los que no tienen un Delta, es decir, en Ubuntu no hay cambios en la version anterior
 104 [19:48:22] <RoAkSoAx>   esto se hace hasta el DebianImportFreeze (mas informacion vean el enlace)
 105 [19:48:47] <RoAkSoAx>   Pero esto es automatico. Ahora se deben estar preguntando: Que hago, Donde Empiezo si ya lei todo...??
 106 [19:49:03] <RoAkSoAx>   Pues ahora es el momento de hacer Merges, Syncs, y Packaging from Scratch
 107 [19:49:19] <RoAkSoAx>   proque? Porque a esto se le llama las nuevas caracteristicas de los paquetes
 108 [19:49:46] <RoAkSoAx>   es decir, se actualizara a las ultimas versiones de Software, utilizando los paquetes de Debian
 109 [19:50:00] <RoAkSoAx>   el limite para hacer esto es hasta el FeatureFreeze
 110 [19:50:38] <RoAkSoAx>   pasados el FF, ya no se puede hacer merges, syncs, packaging from scratch, updates... a menos, que existan nuevas versiones que arregles errores criticos
 111 [19:51:15] <RoAkSoAx>   para eso se pide un Feature Freeze Exception
 112 [19:51:42] <RoAkSoAx>   Entonces tenemos una "primera etapa" donde podemos incluir nuevas versiones de sofwtare haceindo merges, syncs, updates, packaging from scratch (para nuevos programas), y etc
 113 [19:52:06] <RoAkSoAx>   una vez pasado el FF, como dije, se podran hacer merges, syncs, updates SOLO SI se corrige errores en el software
 114 [19:52:28] <RoAkSoAx>   p[ero pasada esta etapa, tambien es la etapa de arreglar errores (bug fixes) aplicando parches
 115 [19:52:53] <RoAkSoAx>   Hacer Q/A, que puede ser FTBFS, dependencias rotas.
 116 [19:53:57] <RoAkSoAx>   y esto lo hacemos hasta el Final Freeze
 117 [19:54:41] <RoAkSoAx>   pasado el Final Freeze, solo se arreglar errores criticos como actualizaciones de seguridad, errores criticos en que algun software no ejecute, y cosas al respecto
 118 [19:55:26] <RoAkSoAx>   Y basicamente, si uno esta aprendiendo o desea involucrarse, el momento de hacerlo es ahora
 119 [19:56:03] <RoAkSoAx>   si veran en el RElease Schedule, hay mas cosas por conversar, pero esas ya son mas intrinsicas para personas que ya estan involucradas con el desarrollo
 120 [19:56:07] <RoAkSoAx>   para introducirlos, eso es todo
 121 [19:56:21] <RoAkSoAx>   espero les haya gustado y les haya creado el interes de contribuir
 122 [19:56:26] <RoAkSoAx>   Alguien mas tiene alguna pregunta?
 123 [19:57:06] <alucardni>  RoAkSoAx, parece que no hay más preguntas
 124 [19:57:18] <alucardni>  <n0rman> PREGUNTA: Hay que conocer un lenguaje de programación especifico? o eso no importa?
 125 [19:57:52] <RoAkSoAx>   n0rman, No, para ser MOTU no se necesita saber un lenguaje de programacion, ya que lo que un MOTU hace es mas que todo paqueteria debian y aplicar parches al software, y para eso no es necesario saber programar
 126 [19:59:34] <alucardni>  <n0rman> PREGUNTA: Hablando en conocimientos, se puede decir que un MOTU es apto para ser DebianDeveloper?  o son niveles distintos?
 127 [20:01:13] <RoAkSoAx>   n0rman, en mi opinion son niveles distintos, ya que un MOTU puede ser experto haciendo merges, pero no asber nada de FTBFS, o broken dependencies, obviamente todo es complementario y es integral.
 128 [20:01:45] <alucardni>  Bueno, estamos sobre la hora
 129 [20:01:53] <RoAkSoAx>   n0rman, por ej, hace poco aprobaron a 2 MOTUs como Debian Developers, y estos MOTUs fueron MOTUs por mucho tiempo antes de poder ser MOTUs
 130 [20:02:26] <RoAkSoAx>   pero al final todo es gracias a la habilidad que uno tenga, al compromiso, y sobre todo, al nivel de confianza que otroso desarrolladores tengan sobre la persona
 131 [20:03:47] <alucardni>  RoAkSoAx muchas gracias por participar
 132 [20:04:12] <RoAkSoAx>   de nada :) fue un gusto

UbuntuOpenWeek_ES/openweekKarmicLog/UbuntuDevel (last edited 2009-11-05 02:49:04 by pc161136)