€•"Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/process/handling-regressions”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/zh_CN/process/handling-regressions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/zh_TW/process/handling-regressions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/it_IT/process/handling-regressions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/ja_JP/process/handling-regressions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ0/translations/ko_KR/process/handling-regressions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒSpanish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒwarning”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hŒ paragraph”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”…””}”(hh©hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸŒ2Documentation/translations/sp_SP/disclaimer-sp.rst”h Khh£ubah}”(h]”h ]”h"]”h$]”h&]”uh1h¡hhhžhhŸh·h NubhŒ field_list”“”)”}”(hhh]”hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒ Translator”h]”hŒ Translator”…””}”(hhÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhhÅhŸŒ]/var/lib/git/docbuild/linux/Documentation/translations/sp_SP/process/handling-regressions.rst”h KubhŒ field_body”“”)”}”(hŒ4Sergio González Collado ”h]”h¨)”}”(hŒ3Sergio González Collado ”h]”(hŒSergio González Collado <”…””}”(hhßhžhhŸNh NubhŒ reference”“”)”}”(hŒsergio.collado@gmail.com”h]”hŒsergio.collado@gmail.com”…””}”(hhéhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:sergio.collado@gmail.com”uh1hçhhßubhŒ>”…””}”(hhßhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhhÛubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhhÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÃhŸhØh KhhÀhžhubah}”(h]”h ]”h"]”h$]”h&]”uh1h¾hhhžhhŸhØh KubhŒtarget”“”)”}”(hŒ.. _sp_handling_regressions:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œsp-handling-regressions”uh1jh KhhhžhhŸhØubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒGestión de regresiones”h]”hŒGestión de regresiones”…””}”(hj*hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj%hžhhŸhØh Kubh¨)”}”(hXœ*No causamos regresiones* -- este documento describe la que es la "primera regla del desarrollo del kernel de Linux" y que implica en la práctica para los desarrolladores. Y complementa la documentación: Documentation/admin-guide/reporting-regressions.rst, que cubre el tema desde el punto de vista de un usuario; si nunca ha leído ese texto, realice al menos una lectura rápida del mismo antes de continuar.”h]”(hŒemphasis”“”)”}”(hŒ*No causamos regresiones*”h]”hŒNo causamos regresiones”…””}”(hj>hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj8ubhX‡ -- este documento describe la que es la “primera regla del desarrollo del kernel de Linux†y que implica en la práctica para los desarrolladores. Y complementa la documentación: Documentation/admin-guide/reporting-regressions.rst, que cubre el tema desde el punto de vista de un usuario; si nunca ha leído ese texto, realice al menos una lectura rápida del mismo antes de continuar.”…””}”(hj8hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K hj%hžhubj$)”}”(hhh]”(j))”}”(hŒ#Las partes importantes (el "TL;DR")”h]”hŒ'Las partes importantes (el “TL;DRâ€)”…””}”(hjYhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjVhžhhŸhØh KubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hXËAsegúrese de que los suscriptores a la lista `regression mailing list `_ (regressions@lists.linux.dev) son conocedores con rapidez de cualquier nuevo informe de regresión: * Cuando se reciba un correo que no incluyó a la lista, inclúyalo en la conversación de los correos, mandando un breve "Reply-all" con la lista en CCed. * Mande o redirija cualquier informe originado en los gestores de bugs a la lista. ”h]”(h¨)”}”(hŒÓAsegúrese de que los suscriptores a la lista `regression mailing list `_ (regressions@lists.linux.dev) son conocedores con rapidez de cualquier nuevo informe de regresión:”h]”(hŒ.Asegúrese de que los suscriptores a la lista ”…””}”(hjrhžhhŸNh Nubhè)”}”(hŒA`regression mailing list `_”h]”hŒregression mailing list”…””}”(hjzhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œregression mailing list”Œrefuri”Œ$https://lore.kernel.org/regressions/”uh1hçhjrubj)”}”(hŒ' ”h]”h}”(h]”Œregression-mailing-list”ah ]”h"]”Œregression mailing list”ah$]”h&]”Œrefuri”j‹uh1jŒ referenced”KhjrubhŒ (”…””}”(hjrhžhhŸNh Nubhè)”}”(hŒregressions@lists.linux.dev”h]”hŒregressions@lists.linux.dev”…””}”(hjžhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ"mailto:regressions@lists.linux.dev”uh1hçhjrubhŒG) son conocedores con rapidez de cualquier nuevo informe de regresión:”…””}”(hjrhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhjnubhŒ bullet_list”“”)”}”(hhh]”(jm)”}”(hŒšCuando se reciba un correo que no incluyó a la lista, inclúyalo en la conversación de los correos, mandando un breve "Reply-all" con la lista en CCed. ”h]”h¨)”}”(hŒ™Cuando se reciba un correo que no incluyó a la lista, inclúyalo en la conversación de los correos, mandando un breve "Reply-all" con la lista en CCed.”h]”hŒCuando se reciba un correo que no incluyó a la lista, inclúyalo en la conversación de los correos, mandando un breve “Reply-all†con la lista en CCed.”…””}”(hjÁhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjºubjm)”}”(hŒQMande o redirija cualquier informe originado en los gestores de bugs a la lista. ”h]”h¨)”}”(hŒPMande o redirija cualquier informe originado en los gestores de bugs a la lista.”h]”hŒPMande o redirija cualquier informe originado en los gestores de bugs a la lista.”…””}”(hjÙhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjºubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1j¸hŸhØh Khjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjihžhhŸNh Nubjm)”}”(hXHaga que el bot del kernel de Linux "regzbot" realice el seguimiento del incidente (esto es opcional, pero recomendado). * Para reportes enviados por correo, verificar si contiene alguna línea como ``#regzbot introduced v5.13..v5.14-rc1``. Si no, mandar una respuesta (con la lista de regresiones en CC) que contenga un párrafo como el siguiente, lo que le indica a regzbot cuando empezó a suceder el incidente:: #regzbot ^introduced 1f2e3d4c5b6a * Cuando se mandan informes desde un gestor de incidentes a la lista de regresiones(ver más arriba), incluir un párrafo como el siguiente:: #regzbot introduced: v5.13..v5.14-rc1 #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 ”h]”(h¨)”}”(hŒxHaga que el bot del kernel de Linux "regzbot" realice el seguimiento del incidente (esto es opcional, pero recomendado).”h]”hŒ|Haga que el bot del kernel de Linux “regzbot†realice el seguimiento del incidente (esto es opcional, pero recomendado).”…””}”(hjÿhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhjûubhŒ block_quote”“”)”}”(hX™* Para reportes enviados por correo, verificar si contiene alguna línea como ``#regzbot introduced v5.13..v5.14-rc1``. Si no, mandar una respuesta (con la lista de regresiones en CC) que contenga un párrafo como el siguiente, lo que le indica a regzbot cuando empezó a suceder el incidente:: #regzbot ^introduced 1f2e3d4c5b6a * Cuando se mandan informes desde un gestor de incidentes a la lista de regresiones(ver más arriba), incluir un párrafo como el siguiente:: #regzbot introduced: v5.13..v5.14-rc1 #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 ”h]”j¹)”}”(hhh]”(jm)”}”(hXIPara reportes enviados por correo, verificar si contiene alguna línea como ``#regzbot introduced v5.13..v5.14-rc1``. Si no, mandar una respuesta (con la lista de regresiones en CC) que contenga un párrafo como el siguiente, lo que le indica a regzbot cuando empezó a suceder el incidente:: #regzbot ^introduced 1f2e3d4c5b6a ”h]”(h¨)”}”(hX$Para reportes enviados por correo, verificar si contiene alguna línea como ``#regzbot introduced v5.13..v5.14-rc1``. Si no, mandar una respuesta (con la lista de regresiones en CC) que contenga un párrafo como el siguiente, lo que le indica a regzbot cuando empezó a suceder el incidente::”h]”(hŒLPara reportes enviados por correo, verificar si contiene alguna línea como ”…””}”(hjhžhhŸNh NubhŒliteral”“”)”}”(hŒ(``#regzbot introduced v5.13..v5.14-rc1``”h]”hŒ$#regzbot introduced v5.13..v5.14-rc1”…””}”(hj$hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjubhŒ¯. Si no, mandar una respuesta (con la lista de regresiones en CC) que contenga un párrafo como el siguiente, lo que le indica a regzbot cuando empezó a suceder el incidente:”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K"hjubhŒ literal_block”“”)”}”(hŒ!#regzbot ^introduced 1f2e3d4c5b6a”h]”hŒ!#regzbot ^introduced 1f2e3d4c5b6a”…””}”hj>sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j<hŸhØh K(hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjubjm)”}”(hX9Cuando se mandan informes desde un gestor de incidentes a la lista de regresiones(ver más arriba), incluir un párrafo como el siguiente:: #regzbot introduced: v5.13..v5.14-rc1 #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 ”h]”(h¨)”}”(hŒ‹Cuando se mandan informes desde un gestor de incidentes a la lista de regresiones(ver más arriba), incluir un párrafo como el siguiente::”h]”hŒŠCuando se mandan informes desde un gestor de incidentes a la lista de regresiones(ver más arriba), incluir un párrafo como el siguiente:”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K*hjTubj=)”}”(hŒ¨#regzbot introduced: v5.13..v5.14-rc1 #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789”h]”hŒ¨#regzbot introduced: v5.13..v5.14-rc1 #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789”…””}”hjfsbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh K-hjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh K"hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh K"hjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjihžhhŸhØh Nubjm)”}”(hX/Cuando se manden correcciones para las regresiones, añadir etiquetas "Link:" a la descripción, apuntado a todos los sitios donde se informó del incidente, como se indica en el documento: Documentation/process/submitting-patches.rst y :ref:`Documentation/process/5.Posting.rst `. ”h]”h¨)”}”(hX.Cuando se manden correcciones para las regresiones, añadir etiquetas "Link:" a la descripción, apuntado a todos los sitios donde se informó del incidente, como se indica en el documento: Documentation/process/submitting-patches.rst y :ref:`Documentation/process/5.Posting.rst `.”h]”(hŒñCuando se manden correcciones para las regresiones, añadir etiquetas “Link:†a la descripción, apuntado a todos los sitios donde se informó del incidente, como se indica en el documento: Documentation/process/submitting-patches.rst y ”…””}”(hjhžhhŸNh Nubh)”}”(hŒ@:ref:`Documentation/process/5.Posting.rst `”h]”hŒinline”“”)”}”(hjšh]”hŒ#Documentation/process/5.Posting.rst”…””}”(hjžhžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jœhj˜ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ/translations/sp_SP/process/handling-regressions”Œ refdomain”j©Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œdevelopment_posting”uh1hhŸhØh K1hjubhŒ.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K1hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjihžhhŸhØh Nubjm)”}”(hŒõIntente arreglar las regresiones rápidamente una vez la causa haya sido identificada; las correcciones para la mayor parte de las regresiones deberían ser integradas en menos de dos semanas, pero algunas pueden resolverse en dos o tres días. ”h]”h¨)”}”(hŒôIntente arreglar las regresiones rápidamente una vez la causa haya sido identificada; las correcciones para la mayor parte de las regresiones deberían ser integradas en menos de dos semanas, pero algunas pueden resolverse en dos o tres días.”h]”hŒôIntente arreglar las regresiones rápidamente una vez la causa haya sido identificada; las correcciones para la mayor parte de las regresiones deberían ser integradas en menos de dos semanas, pero algunas pueden resolverse en dos o tres días.”…””}”(hjÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K7hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjihžhhŸhØh Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jghjVhžhhŸhØh Kubeh}”(h]”Œlas-partes-importantes-el-tl-dr”ah ]”h"]”Œ#las partes importantes (el "tl;dr")”ah$]”h&]”uh1j#hj%hžhhŸhØh Kubj$)”}”(hhh]”(j))”}”(hŒNDetalles importantes para desarrolladores en la regresiones de kernel de Linux”h]”hŒNDetalles importantes para desarrolladores en la regresiones de kernel de Linux”…””}”(hjûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjøhžhhŸhØh K=ubj$)”}”(hhh]”(j))”}”(hŒ+Puntos básicos importantes más en detalle”h]”hŒ+Puntos básicos importantes más en detalle”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj hžhhŸhØh K@ubj$)”}”(hhh]”(j))”}”(hŒ3Qué hacer cuando se recibe un aviso de regresión.”h]”hŒ3Qué hacer cuando se recibe un aviso de regresión.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjhžhhŸhØh KCubh¨)”}”(hX Asegúrese de que el programa de gestión de regresiones del kernel de Linux y los subscritos a la lista de correo `regression mailing list `_ (regressions@lists.linux.dev) son conocedores de cualquier nuevo informe de regresión:”h]”(hŒsAsegúrese de que el programa de gestión de regresiones del kernel de Linux y los subscritos a la lista de correo ”…””}”(hj+hžhhŸNh Nubhè)”}”(hŒA`regression mailing list `_”h]”hŒregression mailing list”…””}”(hj3hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œregression mailing list”jŠŒ$https://lore.kernel.org/regressions/”uh1hçhj+ubj)”}”(hŒ' ”h]”h}”(h]”Œid1”ah ]”h"]”h$]”Œregression mailing list”ah&]”Œrefuri”jCuh1jj™Khj+ubhŒ (”…””}”(hj+hžhhŸNh Nubhè)”}”(hŒregressions@lists.linux.dev”h]”hŒregressions@lists.linux.dev”…””}”(hjUhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ"mailto:regressions@lists.linux.dev”uh1hçhj+ubhŒ;) son conocedores de cualquier nuevo informe de regresión:”…””}”(hj+hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KEhjhžhubj)”}”(hXV* Cuando se recibe un informe por email que no tiene en CC la lista, inmediatamente meterla en el la cadena de emails mandado al menos un breve "Reply-all" con la lista en CC; Intentar asegurar que la lista es añadida en CC de nuevo en caso de que alguna respuesta la omita de la lista. * Si un informe enviado a un gestor de defectos, llega a su correo, reenvíelo o redirijalo a la lista. Considere verificar los archivos de la lista de antemano, si la persona que lo ha informado, lo ha enviado anteriormente, como se indica en: Documentation/admin-guide/reporting-issues.rst. ”h]”j¹)”}”(hhh]”(jm)”}”(hXCuando se recibe un informe por email que no tiene en CC la lista, inmediatamente meterla en el la cadena de emails mandado al menos un breve "Reply-all" con la lista en CC; Intentar asegurar que la lista es añadida en CC de nuevo en caso de que alguna respuesta la omita de la lista. ”h]”h¨)”}”(hXCuando se recibe un informe por email que no tiene en CC la lista, inmediatamente meterla en el la cadena de emails mandado al menos un breve "Reply-all" con la lista en CC; Intentar asegurar que la lista es añadida en CC de nuevo en caso de que alguna respuesta la omita de la lista.”h]”hX!Cuando se recibe un informe por email que no tiene en CC la lista, inmediatamente meterla en el la cadena de emails mandado al menos un breve “Reply-all†con la lista en CC; Intentar asegurar que la lista es añadida en CC de nuevo en caso de que alguna respuesta la omita de la lista.”…””}”(hjzhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KJhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjsubjm)”}”(hX#Si un informe enviado a un gestor de defectos, llega a su correo, reenvíelo o redirijalo a la lista. Considere verificar los archivos de la lista de antemano, si la persona que lo ha informado, lo ha enviado anteriormente, como se indica en: Documentation/admin-guide/reporting-issues.rst. ”h]”h¨)”}”(hX"Si un informe enviado a un gestor de defectos, llega a su correo, reenvíelo o redirijalo a la lista. Considere verificar los archivos de la lista de antemano, si la persona que lo ha informado, lo ha enviado anteriormente, como se indica en: Documentation/admin-guide/reporting-issues.rst.”h]”hX"Si un informe enviado a un gestor de defectos, llega a su correo, reenvíelo o redirijalo a la lista. Considere verificar los archivos de la lista de antemano, si la persona que lo ha informado, lo ha enviado anteriormente, como se indica en: Documentation/admin-guide/reporting-issues.rst.”…””}”(hj’hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KPhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjsubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh KJhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh KJhjhžhubh¨)”}”(hŒµCuando se realice cualquiera de las acciones anteriores, considere inmediatamente iniciar el seguimiento de la regresión con "regzbot" el gestor de regresiones del kernel de Linux.”h]”hŒ¹Cuando se realice cualquiera de las acciones anteriores, considere inmediatamente iniciar el seguimiento de la regresión con “regzbot†el gestor de regresiones del kernel de Linux.”…””}”(hj²hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KVhjhžhubj)”}”(hXw* Para los informes enviados por email, verificar si se ha incluido un comando a "regzbot", como ``#regzbot introduced 1f2e3d4c5b6a``. Si no es así, envíe una respuesta (con la lista de regresiones en CC) con un párrafo como el siguiente:: #regzbot ^introduced: v5.13..v5.14-rc1 Esto indica a regzbot el rango de versiones en el cual es defecto comenzó a suceder; Puede especificar un rango usando los identificadores de los commits así como un único commit, en caso en el que el informante haya identificado el commit causante con 'bisect'. Tenga en cuenta que el acento circunflejo (^) antes de "introduced": Esto indica a regzbot, que debe tratar el email padre (el que ha sido respondido) como el informeinicial para la regresión que quiere ser seguida. Esto es importante, ya que regzbot buscará más tarde parches con etiquetas "Link:" que apunten al al informe de losarchivos de lore.kernel.org. * Cuando mande informes de regresiones a un gestor de defectos, incluya un párrafo con los siguientes comandos a regzbot:: #regzbot introduced: 1f2e3d4c5b6a #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 Regzbot asociará automáticamente parches con el informe que contengan las etiquetas "Link:" apuntando a su email o el ticket indicado. ”h]”j¹)”}”(hhh]”(jm)”}”(hX”Para los informes enviados por email, verificar si se ha incluido un comando a "regzbot", como ``#regzbot introduced 1f2e3d4c5b6a``. Si no es así, envíe una respuesta (con la lista de regresiones en CC) con un párrafo como el siguiente:: #regzbot ^introduced: v5.13..v5.14-rc1 Esto indica a regzbot el rango de versiones en el cual es defecto comenzó a suceder; Puede especificar un rango usando los identificadores de los commits así como un único commit, en caso en el que el informante haya identificado el commit causante con 'bisect'. Tenga en cuenta que el acento circunflejo (^) antes de "introduced": Esto indica a regzbot, que debe tratar el email padre (el que ha sido respondido) como el informeinicial para la regresión que quiere ser seguida. Esto es importante, ya que regzbot buscará más tarde parches con etiquetas "Link:" que apunten al al informe de losarchivos de lore.kernel.org. ”h]”(h¨)”}”(hŒðPara los informes enviados por email, verificar si se ha incluido un comando a "regzbot", como ``#regzbot introduced 1f2e3d4c5b6a``. Si no es así, envíe una respuesta (con la lista de regresiones en CC) con un párrafo como el siguiente::”h]”(hŒcPara los informes enviados por email, verificar si se ha incluido un comando a “regzbotâ€, como ”…””}”(hjËhžhhŸNh Nubj#)”}”(hŒ$``#regzbot introduced 1f2e3d4c5b6a``”h]”hŒ #regzbot introduced 1f2e3d4c5b6a”…””}”(hjÓhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjËubhŒl. Si no es así, envíe una respuesta (con la lista de regresiones en CC) con un párrafo como el siguiente:”…””}”(hjËhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KZhjÇubj=)”}”(hŒ&#regzbot ^introduced: v5.13..v5.14-rc1”h]”hŒ&#regzbot ^introduced: v5.13..v5.14-rc1”…””}”hjësbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh K_hjÇubh¨)”}”(hX Esto indica a regzbot el rango de versiones en el cual es defecto comenzó a suceder; Puede especificar un rango usando los identificadores de los commits así como un único commit, en caso en el que el informante haya identificado el commit causante con 'bisect'.”h]”hX Esto indica a regzbot el rango de versiones en el cual es defecto comenzó a suceder; Puede especificar un rango usando los identificadores de los commits así como un único commit, en caso en el que el informante haya identificado el commit causante con ‘bisect’.”…””}”(hjùhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KahjÇubh¨)”}”(hXjTenga en cuenta que el acento circunflejo (^) antes de "introduced": Esto indica a regzbot, que debe tratar el email padre (el que ha sido respondido) como el informeinicial para la regresión que quiere ser seguida. Esto es importante, ya que regzbot buscará más tarde parches con etiquetas "Link:" que apunten al al informe de losarchivos de lore.kernel.org.”h]”hXrTenga en cuenta que el acento circunflejo (^) antes de “introducedâ€: Esto indica a regzbot, que debe tratar el email padre (el que ha sido respondido) como el informeinicial para la regresión que quiere ser seguida. Esto es importante, ya que regzbot buscará más tarde parches con etiquetas “Link:†que apunten al al informe de losarchivos de lore.kernel.org.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KfhjÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÄubjm)”}”(hX¶Cuando mande informes de regresiones a un gestor de defectos, incluya un párrafo con los siguientes comandos a regzbot:: #regzbot introduced: 1f2e3d4c5b6a #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 Regzbot asociará automáticamente parches con el informe que contengan las etiquetas "Link:" apuntando a su email o el ticket indicado. ”h]”(h¨)”}”(hŒyCuando mande informes de regresiones a un gestor de defectos, incluya un párrafo con los siguientes comandos a regzbot::”h]”hŒxCuando mande informes de regresiones a un gestor de defectos, incluya un párrafo con los siguientes comandos a regzbot:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kmhjubj=)”}”(hŒ¤#regzbot introduced: 1f2e3d4c5b6a #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789”h]”hŒ¤#regzbot introduced: 1f2e3d4c5b6a #regzbot from: Some N. Ice Human #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789”…””}”hj-sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh Kphjubh¨)”}”(hŒˆRegzbot asociará automáticamente parches con el informe que contengan las etiquetas "Link:" apuntando a su email o el ticket indicado.”h]”hŒŒRegzbot asociará automáticamente parches con el informe que contengan las etiquetas “Link:†apuntando a su email o el ticket indicado.”…””}”(hj;hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kthjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÄubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh KZhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh KZhjhžhubeh}”(h]”Œ0que-hacer-cuando-se-recibe-un-aviso-de-regresion”ah ]”h"]”Œ3qué hacer cuando se recibe un aviso de regresión.”ah$]”h&]”uh1j#hj hžhhŸhØh KCubj$)”}”(hhh]”(j))”}”(hŒ1Qué es importante cuando se corrigen regresiones”h]”hŒ1Qué es importante cuando se corrigen regresiones”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjchžhhŸhØh Kxubh¨)”}”(hX3No se necesita hacer nada especial cuando se mandan las correcciones para las regresiones únicamente recordar lo que se explica en los documentos: Documentation/process/submitting-patches.rst, :ref:`Documentation/process/5.Posting.rst `, y Documentation/process/stable-kernel-rules.rst”h]”(hŒÂNo se necesita hacer nada especial cuando se mandan las correcciones para las regresiones únicamente recordar lo que se explica en los documentos: Documentation/process/submitting-patches.rst, ”…””}”(hjthžhhŸNh Nubh)”}”(hŒ@:ref:`Documentation/process/5.Posting.rst `”h]”j)”}”(hj~h]”hŒ#Documentation/process/5.Posting.rst”…””}”(hj€hžhhŸNh Nubah}”(h]”h ]”(j¨Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jœhj|ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jµŒ refdomain”jŠŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj»Œdevelopment_posting”uh1hhŸhØh KzhjtubhŒ1, y Documentation/process/stable-kernel-rules.rst”…””}”(hjthžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kzhjchžhubj)”}”(hXý* Apunte a todos los lugares donde el incidente se reportó usando la etiqueta "Link:" :: Link: https://lore.kernel.org/r/30th.anniversary.repost@klaava.Helsinki.FI/ Link: https://bugzilla.kernel.org/show_bug.cgi?id=1234567890 * Añada la etiqueta "Fixes:" para indicar el commit causante de la regresión. * Si el culpable ha sido "mergeado" en un ciclo de desarrollo anterior, marque explícitamente el fix para retro-importarlo usando la etiqueta ``Cc: stable@vger.kernel.org`` tag. ”h]”j¹)”}”(hhh]”(jm)”}”(hŒêApunte a todos los lugares donde el incidente se reportó usando la etiqueta "Link:" :: Link: https://lore.kernel.org/r/30th.anniversary.repost@klaava.Helsinki.FI/ Link: https://bugzilla.kernel.org/show_bug.cgi?id=1234567890 ”h]”(h¨)”}”(hŒWApunte a todos los lugares donde el incidente se reportó usando la etiqueta "Link:" ::”h]”hŒXApunte a todos los lugares donde el incidente se reportó usando la etiqueta “Link:—…””}”(hj±hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K€hj­ubj=)”}”(hŒˆLink: https://lore.kernel.org/r/30th.anniversary.repost@klaava.Helsinki.FI/ Link: https://bugzilla.kernel.org/show_bug.cgi?id=1234567890”h]”hŒˆLink: https://lore.kernel.org/r/30th.anniversary.repost@klaava.Helsinki.FI/ Link: https://bugzilla.kernel.org/show_bug.cgi?id=1234567890”…””}”hj¿sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh Kƒhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjªubjm)”}”(hŒNAñada la etiqueta "Fixes:" para indicar el commit causante de la regresión. ”h]”h¨)”}”(hŒMAñada la etiqueta "Fixes:" para indicar el commit causante de la regresión.”h]”hŒQAñada la etiqueta “Fixes:†para indicar el commit causante de la regresión.”…””}”(hj×hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K†hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjªubjm)”}”(hŒ±Si el culpable ha sido "mergeado" en un ciclo de desarrollo anterior, marque explícitamente el fix para retro-importarlo usando la etiqueta ``Cc: stable@vger.kernel.org`` tag. ”h]”h¨)”}”(hŒ°Si el culpable ha sido "mergeado" en un ciclo de desarrollo anterior, marque explícitamente el fix para retro-importarlo usando la etiqueta ``Cc: stable@vger.kernel.org`` tag.”h]”(hŒ‘Si el culpable ha sido “mergeado†en un ciclo de desarrollo anterior, marque explícitamente el fix para retro-importarlo usando la etiqueta ”…””}”(hjïhžhhŸNh Nubj#)”}”(hŒ``Cc: stable@vger.kernel.org``”h]”hŒCc: stable@vger.kernel.org”…””}”(hj÷hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjïubhŒ tag.”…””}”(hjïhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K‰hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjªubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh K€hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh K€hjchžhubh¨)”}”(hXôTodo esto se espera y es importante en una regresión, ya que estas etiquetas son de gran valor para todos (incluido usted) que pueda estar mirando en ese incidente semanas, meses o años después. Estas etiquetas son también cruciales para las herramientas y scripts usados por otros desarrolladores del kernel o distribuciones de Linux; una de esas herramientas es regzbot, el cual depende mucho de las etiquetas "Link:" para asociar los informes por regresiones con los cambios que las resuelven.”h]”hXøTodo esto se espera y es importante en una regresión, ya que estas etiquetas son de gran valor para todos (incluido usted) que pueda estar mirando en ese incidente semanas, meses o años después. Estas etiquetas son también cruciales para las herramientas y scripts usados por otros desarrolladores del kernel o distribuciones de Linux; una de esas herramientas es regzbot, el cual depende mucho de las etiquetas “Link:†para asociar los informes por regresiones con los cambios que las resuelven.”…””}”(hj!hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khjchžhubeh}”(h]”Œ0que-es-importante-cuando-se-corrigen-regresiones”ah ]”h"]”Œ1qué es importante cuando se corrigen regresiones”ah$]”h&]”uh1j#hj hžhhŸhØh Kxubj$)”}”(hhh]”(j))”}”(hŒ1Priorización del trabajo en arreglar regresiones”h]”hŒ1Priorización del trabajo en arreglar regresiones”…””}”(hj:hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj7hžhhŸhØh K˜ubh¨)”}”(hŒ‘Al final, los desarrolladores deberían hacer lo posible para evitar a los usuarios situaciones donde una regresión les deje solo tres opciones:”h]”hŒ‘Al final, los desarrolladores deberían hacer lo posible para evitar a los usuarios situaciones donde una regresión les deje solo tres opciones:”…””}”(hjHhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kšhj7hžhubj)”}”(hXƒ* Ejecutar el kernel con una regresión que afecta seriamente al uso. * Cambiar a un kernel nuevo o mas antiguo -- rebajarse a una versión soportada del kernel que no tenga las funcionalidades requeridas. * Continuar ejecutando una versión desfasada y potencialmente insegura del kernel por más de dos semanas después de que el causante de una regresión fuese identificado. ”h]”j¹)”}”(hhh]”(jm)”}”(hŒDEjecutar el kernel con una regresión que afecta seriamente al uso. ”h]”h¨)”}”(hŒCEjecutar el kernel con una regresión que afecta seriamente al uso.”h]”hŒCEjecutar el kernel con una regresión que afecta seriamente al uso.”…””}”(hjahžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjZubjm)”}”(hŒ†Cambiar a un kernel nuevo o mas antiguo -- rebajarse a una versión soportada del kernel que no tenga las funcionalidades requeridas. ”h]”h¨)”}”(hŒ…Cambiar a un kernel nuevo o mas antiguo -- rebajarse a una versión soportada del kernel que no tenga las funcionalidades requeridas.”h]”hŒ…Cambiar a un kernel nuevo o mas antiguo -- rebajarse a una versión soportada del kernel que no tenga las funcionalidades requeridas.”…””}”(hjyhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KŸhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjZubjm)”}”(hŒ«Continuar ejecutando una versión desfasada y potencialmente insegura del kernel por más de dos semanas después de que el causante de una regresión fuese identificado. ”h]”h¨)”}”(hŒªContinuar ejecutando una versión desfasada y potencialmente insegura del kernel por más de dos semanas después de que el causante de una regresión fuese identificado.”h]”hŒªContinuar ejecutando una versión desfasada y potencialmente insegura del kernel por más de dos semanas después de que el causante de una regresión fuese identificado.”…””}”(hj‘hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K¢hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjZubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh KhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh Khj7hžhubh¨)”}”(hŒ‚Cómo se ejecuta esto depende mucho de la situación. A continuación se presentan unas reglas generales, en orden de importancia:”h]”hŒ‚Cómo se ejecuta esto depende mucho de la situación. A continuación se presentan unas reglas generales, en orden de importancia:”…””}”(hj±hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K¦hj7hžhubj)”}”(hXl * Priorice el trabajo en la gestión de los informes de la regresión y arreglar la regresión por encima de cualquier otro trabajo en el kernel de Linux, a menos que lo último afecte profundamente a efectos de seguridad, o cause errores en los que haya pérdida o daño de datos. * Considere siempre revertir los commits responsables y re-aplicarlos después, junto con las correcciones necesarias, ya que esto puede la forma menos peligrosa y más rápida de arreglar la regresión. * Los desarrolladores deberían gestionar la regresión en todos los kernels soportados de la serie, pero son libres de delegar el trabajo al equipo permanente el incidente no hubiese ocurrido en la línea principal. * Intente resolver cualquier regresión que apareciera en el ciclo de desarrollo antes de que este acabe. Si se teme que una corrección pudiera ser demasiado arriesgada para aplicarla días antes de una liberación de la línea principal de desarrollo, dejar decidir a Linus: mande la corrección a él de forma separada, tan pronto como sea posible con una explicación de la situación. El podrá decidir, y posponer la liberación si fuese necesario, por ejemplo si aparecieran múltiples cambios como ese. * Gestione las regresiones en la rama estable, de largo término, o la propia rama principal de las versiones, con más urgencia que la regresiones en las preliberaciones. Esto cambia después de la liberación de la quinta pre-liberación, aka "-rc5": la rama principal entonces se vuelve más importante, asegurar que todas las mejoras y correcciones son idealmente testeados juntos por al menos una semana antes de que Linux libere la nueva versión en la rama principal. * Intente arreglar regresiones en un intervalo de una semana después de que se ha identificado el responsable, si el incidente fue introducido en alguno de los siguientes casos: * una versión estable/largo-plazo reciente * en el último ciclo de desarrollo de la rama principal En el último caso (por ejemplo v5.14), intentar gestionar las regresiones incluso más rápido, si la versión estable precedente (v5.13) ha de ser abandonada pronto o ya se ha etiquetado como de final de vida (EOL de las siglas en inglés End-of-Life) -- esto sucede usualmente sobre tres o cuatro semanas después de una liberación de una versión en la rama principal. * Intente arreglar cualquier otra regresión en un periodo de dos semanas después de que el culpable haya sido identificado. Dos o tres semanas adicionales son aceptables para regresiones de rendimiento y otros incidentes que son molestos, pero no bloquean a nadie la ejecución de Linux (a menos que se un incidente en el ciclo de desarrollo actual, en ese caso se debería gestionar antes de la liberación de la versión). Unas semanas son aceptables si la regresión únicamente puede ser arreglada con un cambio arriesgado y al mismo tiempo únicamente afecta a unos pocos usuarios; también está bien si se usa tanto tiempo como fuera necesario si la regresión está presente en la segunda versión más nueva de largo plazo del kernel. ”h]”j¹)”}”(hhh]”(jm)”}”(hXPriorice el trabajo en la gestión de los informes de la regresión y arreglar la regresión por encima de cualquier otro trabajo en el kernel de Linux, a menos que lo último afecte profundamente a efectos de seguridad, o cause errores en los que haya pérdida o daño de datos. ”h]”h¨)”}”(hXPriorice el trabajo en la gestión de los informes de la regresión y arreglar la regresión por encima de cualquier otro trabajo en el kernel de Linux, a menos que lo último afecte profundamente a efectos de seguridad, o cause errores en los que haya pérdida o daño de datos.”h]”hXPriorice el trabajo en la gestión de los informes de la regresión y arreglar la regresión por encima de cualquier otro trabajo en el kernel de Linux, a menos que lo último afecte profundamente a efectos de seguridad, o cause errores en los que haya pérdida o daño de datos.”…””}”(hjÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K©hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubjm)”}”(hŒÊConsidere siempre revertir los commits responsables y re-aplicarlos después, junto con las correcciones necesarias, ya que esto puede la forma menos peligrosa y más rápida de arreglar la regresión. ”h]”h¨)”}”(hŒÉConsidere siempre revertir los commits responsables y re-aplicarlos después, junto con las correcciones necesarias, ya que esto puede la forma menos peligrosa y más rápida de arreglar la regresión.”h]”hŒÉConsidere siempre revertir los commits responsables y re-aplicarlos después, junto con las correcciones necesarias, ya que esto puede la forma menos peligrosa y más rápida de arreglar la regresión.”…””}”(hjâhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K®hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubjm)”}”(hŒ×Los desarrolladores deberían gestionar la regresión en todos los kernels soportados de la serie, pero son libres de delegar el trabajo al equipo permanente el incidente no hubiese ocurrido en la línea principal. ”h]”h¨)”}”(hŒÖLos desarrolladores deberían gestionar la regresión en todos los kernels soportados de la serie, pero son libres de delegar el trabajo al equipo permanente el incidente no hubiese ocurrido en la línea principal.”h]”hŒÖLos desarrolladores deberían gestionar la regresión en todos los kernels soportados de la serie, pero son libres de delegar el trabajo al equipo permanente el incidente no hubiese ocurrido en la línea principal.”…””}”(hjúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K²hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubjm)”}”(hXýIntente resolver cualquier regresión que apareciera en el ciclo de desarrollo antes de que este acabe. Si se teme que una corrección pudiera ser demasiado arriesgada para aplicarla días antes de una liberación de la línea principal de desarrollo, dejar decidir a Linus: mande la corrección a él de forma separada, tan pronto como sea posible con una explicación de la situación. El podrá decidir, y posponer la liberación si fuese necesario, por ejemplo si aparecieran múltiples cambios como ese. ”h]”h¨)”}”(hXüIntente resolver cualquier regresión que apareciera en el ciclo de desarrollo antes de que este acabe. Si se teme que una corrección pudiera ser demasiado arriesgada para aplicarla días antes de una liberación de la línea principal de desarrollo, dejar decidir a Linus: mande la corrección a él de forma separada, tan pronto como sea posible con una explicación de la situación. El podrá decidir, y posponer la liberación si fuese necesario, por ejemplo si aparecieran múltiples cambios como ese.”h]”hXüIntente resolver cualquier regresión que apareciera en el ciclo de desarrollo antes de que este acabe. Si se teme que una corrección pudiera ser demasiado arriesgada para aplicarla días antes de una liberación de la línea principal de desarrollo, dejar decidir a Linus: mande la corrección a él de forma separada, tan pronto como sea posible con una explicación de la situación. El podrá decidir, y posponer la liberación si fuese necesario, por ejemplo si aparecieran múltiples cambios como ese.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K¶hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubjm)”}”(hXÙGestione las regresiones en la rama estable, de largo término, o la propia rama principal de las versiones, con más urgencia que la regresiones en las preliberaciones. Esto cambia después de la liberación de la quinta pre-liberación, aka "-rc5": la rama principal entonces se vuelve más importante, asegurar que todas las mejoras y correcciones son idealmente testeados juntos por al menos una semana antes de que Linux libere la nueva versión en la rama principal. ”h]”h¨)”}”(hXØGestione las regresiones en la rama estable, de largo término, o la propia rama principal de las versiones, con más urgencia que la regresiones en las preliberaciones. Esto cambia después de la liberación de la quinta pre-liberación, aka "-rc5": la rama principal entonces se vuelve más importante, asegurar que todas las mejoras y correcciones son idealmente testeados juntos por al menos una semana antes de que Linux libere la nueva versión en la rama principal.”h]”hXÜGestione las regresiones en la rama estable, de largo término, o la propia rama principal de las versiones, con más urgencia que la regresiones en las preliberaciones. Esto cambia después de la liberación de la quinta pre-liberación, aka “-rc5â€: la rama principal entonces se vuelve más importante, asegurar que todas las mejoras y correcciones son idealmente testeados juntos por al menos una semana antes de que Linux libere la nueva versión en la rama principal.”…””}”(hj*hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K¿hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubjm)”}”(hX‘Intente arreglar regresiones en un intervalo de una semana después de que se ha identificado el responsable, si el incidente fue introducido en alguno de los siguientes casos: * una versión estable/largo-plazo reciente * en el último ciclo de desarrollo de la rama principal En el último caso (por ejemplo v5.14), intentar gestionar las regresiones incluso más rápido, si la versión estable precedente (v5.13) ha de ser abandonada pronto o ya se ha etiquetado como de final de vida (EOL de las siglas en inglés End-of-Life) -- esto sucede usualmente sobre tres o cuatro semanas después de una liberación de una versión en la rama principal. ”h]”(h¨)”}”(hŒ°Intente arreglar regresiones en un intervalo de una semana después de que se ha identificado el responsable, si el incidente fue introducido en alguno de los siguientes casos:”h]”hŒ°Intente arreglar regresiones en un intervalo de una semana después de que se ha identificado el responsable, si el incidente fue introducido en alguno de los siguientes casos:”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÇhj>ubj)”}”(hŒf* una versión estable/largo-plazo reciente * en el último ciclo de desarrollo de la rama principal ”h]”j¹)”}”(hhh]”(jm)”}”(hŒ*una versión estable/largo-plazo reciente ”h]”h¨)”}”(hŒ)una versión estable/largo-plazo reciente”h]”hŒ)una versión estable/largo-plazo reciente”…””}”(hj[hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KËhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjTubjm)”}”(hŒ7en el último ciclo de desarrollo de la rama principal ”h]”h¨)”}”(hŒ6en el último ciclo de desarrollo de la rama principal”h]”hŒ6en el último ciclo de desarrollo de la rama principal”…””}”(hjshžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÍhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjTubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh KËhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh KËhj>ubh¨)”}”(hXuEn el último caso (por ejemplo v5.14), intentar gestionar las regresiones incluso más rápido, si la versión estable precedente (v5.13) ha de ser abandonada pronto o ya se ha etiquetado como de final de vida (EOL de las siglas en inglés End-of-Life) -- esto sucede usualmente sobre tres o cuatro semanas después de una liberación de una versión en la rama principal.”h]”hXuEn el último caso (por ejemplo v5.14), intentar gestionar las regresiones incluso más rápido, si la versión estable precedente (v5.13) ha de ser abandonada pronto o ya se ha etiquetado como de final de vida (EOL de las siglas en inglés End-of-Life) -- esto sucede usualmente sobre tres o cuatro semanas después de una liberación de una versión en la rama principal.”…””}”(hj“hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÏhj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubjm)”}”(hXèIntente arreglar cualquier otra regresión en un periodo de dos semanas después de que el culpable haya sido identificado. Dos o tres semanas adicionales son aceptables para regresiones de rendimiento y otros incidentes que son molestos, pero no bloquean a nadie la ejecución de Linux (a menos que se un incidente en el ciclo de desarrollo actual, en ese caso se debería gestionar antes de la liberación de la versión). Unas semanas son aceptables si la regresión únicamente puede ser arreglada con un cambio arriesgado y al mismo tiempo únicamente afecta a unos pocos usuarios; también está bien si se usa tanto tiempo como fuera necesario si la regresión está presente en la segunda versión más nueva de largo plazo del kernel. ”h]”h¨)”}”(hXçIntente arreglar cualquier otra regresión en un periodo de dos semanas después de que el culpable haya sido identificado. Dos o tres semanas adicionales son aceptables para regresiones de rendimiento y otros incidentes que son molestos, pero no bloquean a nadie la ejecución de Linux (a menos que se un incidente en el ciclo de desarrollo actual, en ese caso se debería gestionar antes de la liberación de la versión). Unas semanas son aceptables si la regresión únicamente puede ser arreglada con un cambio arriesgado y al mismo tiempo únicamente afecta a unos pocos usuarios; también está bien si se usa tanto tiempo como fuera necesario si la regresión está presente en la segunda versión más nueva de largo plazo del kernel.”h]”hXçIntente arreglar cualquier otra regresión en un periodo de dos semanas después de que el culpable haya sido identificado. Dos o tres semanas adicionales son aceptables para regresiones de rendimiento y otros incidentes que son molestos, pero no bloquean a nadie la ejecución de Linux (a menos que se un incidente en el ciclo de desarrollo actual, en ese caso se debería gestionar antes de la liberación de la versión). Unas semanas son aceptables si la regresión únicamente puede ser arreglada con un cambio arriesgado y al mismo tiempo únicamente afecta a unos pocos usuarios; también está bien si se usa tanto tiempo como fuera necesario si la regresión está presente en la segunda versión más nueva de largo plazo del kernel.”…””}”(hj«hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÖhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÃubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh K©hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh K©hj7hžhubh¨)”}”(hXFNota: Los intervalos de tiempo mencionados anteriormente para la resolución de las regresiones, incluyen la verificación de esta, revisión e inclusión en la rama principal, idealmente con la corrección incluida en la rama "linux-next" al menos brevemente. Esto conllevará retrasos que también se tienen tener en cuenta.”h]”hXJNota: Los intervalos de tiempo mencionados anteriormente para la resolución de las regresiones, incluyen la verificación de esta, revisión e inclusión en la rama principal, idealmente con la corrección incluida en la rama “linux-next†al menos brevemente. Esto conllevará retrasos que también se tienen tener en cuenta.”…””}”(hjËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kâhj7hžhubh¨)”}”(hX€Se espera que los maintainers de los subsistemas, ayuden en conseguir esos tiempos, haciendo revisiones con prontitud y gestionando con rapidez los parches aceptados. Esto puede resultar en tener que mandar peticiones de git-pull antes o de forma más frecuente que lo normal; dependiendo del arreglo, podría incluso ser aceptable saltarse la verificación en linux-next. Especialmente para las correcciones en las ramas de los kernels estable y de largo plazo necesitan ser gestionadas rápidamente, y las correcciones necesitan ser incluidas en la rama principal antes de que puedan ser incluidas posteriormente a las series precedentes.”h]”hX€Se espera que los maintainers de los subsistemas, ayuden en conseguir esos tiempos, haciendo revisiones con prontitud y gestionando con rapidez los parches aceptados. Esto puede resultar en tener que mandar peticiones de git-pull antes o de forma más frecuente que lo normal; dependiendo del arreglo, podría incluso ser aceptable saltarse la verificación en linux-next. Especialmente para las correcciones en las ramas de los kernels estable y de largo plazo necesitan ser gestionadas rápidamente, y las correcciones necesitan ser incluidas en la rama principal antes de que puedan ser incluidas posteriormente a las series precedentes.”…””}”(hjÙhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kèhj7hžhubeh}”(h]”Œ0priorizacion-del-trabajo-en-arreglar-regresiones”ah ]”h"]”Œ1priorización del trabajo en arreglar regresiones”ah$]”h&]”uh1j#hj hžhhŸhØh K˜ubeh}”(h]”Œ)puntos-basicos-importantes-mas-en-detalle”ah ]”h"]”Œ+puntos básicos importantes más en detalle”ah$]”h&]”uh1j#hjøhžhhŸhØh K@ubj$)”}”(hhh]”(j))”}”(hŒCMás aspectos sobre regresiones que los desarrolladores deben saber”h]”hŒCMás aspectos sobre regresiones que los desarrolladores deben saber”…””}”(hjúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj÷hžhhŸhØh Kôubj$)”}”(hhh]”(j))”}”(hŒCCómo tratar con cambios donde se sabe que hay riesgo de regresión”h]”hŒCCómo tratar con cambios donde se sabe que hay riesgo de regresión”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjhžhhŸhØh K÷ubh¨)”}”(hXwEvalué cómo de grande es el riesgo de una regresión, por ejemplo realizando una búsqueda en las distribuciones de linux y en Git forges. Considere también preguntar a otros desarrolladores o proyectos que pudieran ser afectados para evaluar o incluso testear el cambio propuesto; si apareciesen problemas, quizás se pudiera encontrar una solución aceptable para todos.”h]”hXwEvalué cómo de grande es el riesgo de una regresión, por ejemplo realizando una búsqueda en las distribuciones de linux y en Git forges. Considere también preguntar a otros desarrolladores o proyectos que pudieran ser afectados para evaluar o incluso testear el cambio propuesto; si apareciesen problemas, quizás se pudiera encontrar una solución aceptable para todos.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kùhjhžhubh¨)”}”(hX‚Si al final, el riesgo de la regresión parece ser relativamente pequeño, entonces adelante con el cambio, pero siempre informe a todas las partes involucradas del posible riesgo. Por tanto, asegúrese de que la descripción del parche, se hace explícito este hecho. Una vez el cambio ha sido integrado, informe al gestor de regresiones de Linux y a las listas de correo de regresiones sobre el riesgo, de manera que cualquiera que tenga el cambio en el radar, en el caso de que aparezcan reportes. Dependiendo del riesgo, quizás se quiera preguntar al mantenedor del subsistema, que mencione el hecho en su línea principal de desarrollo.”h]”hX‚Si al final, el riesgo de la regresión parece ser relativamente pequeño, entonces adelante con el cambio, pero siempre informe a todas las partes involucradas del posible riesgo. Por tanto, asegúrese de que la descripción del parche, se hace explícito este hecho. Una vez el cambio ha sido integrado, informe al gestor de regresiones de Linux y a las listas de correo de regresiones sobre el riesgo, de manera que cualquiera que tenga el cambio en el radar, en el caso de que aparezcan reportes. Dependiendo del riesgo, quizás se quiera preguntar al mantenedor del subsistema, que mencione el hecho en su línea principal de desarrollo.”…””}”(hj'hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhjhžhubeh}”(h]”ŒAcomo-tratar-con-cambios-donde-se-sabe-que-hay-riesgo-de-regresion”ah ]”h"]”ŒCcómo tratar con cambios donde se sabe que hay riesgo de regresión”ah$]”h&]”uh1j#hj÷hžhhŸhØh K÷ubj$)”}”(hhh]”(j))”}”(hŒ,¿Qué más hay que saber sobre regresiones?”h]”hŒ,¿Qué más hay que saber sobre regresiones?”…””}”(hj@hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj=hžhhŸhØh M ubh¨)”}”(hŒ‡Repase la documentación: Documentation/admin-guide/reporting-regressions.rst, esta cubre otros aspectos a tener a en cuenta y conocer:”h]”hŒ‡Repase la documentación: Documentation/admin-guide/reporting-regressions.rst, esta cubre otros aspectos a tener a en cuenta y conocer:”…””}”(hjNhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M hj=hžhubj)”}”(hX^* la finalidad de la "regla de no regresión" * qué incidencias no se califican como regresión * quién es el responsable de identificar la causa raíz de una regresión * cómo gestionar situaciones difíciles, como por ejemplo cuando una regresión es causada por una corrección de seguridad o cuando una regresión causa otra regresión ”h]”j¹)”}”(hhh]”(jm)”}”(hŒ,la finalidad de la "regla de no regresión" ”h]”h¨)”}”(hŒ+la finalidad de la "regla de no regresión"”h]”hŒ/la finalidad de la “regla de no regresión—…””}”(hjghžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhj`ubjm)”}”(hŒ1qué incidencias no se califican como regresión ”h]”h¨)”}”(hŒ0qué incidencias no se califican como regresión”h]”hŒ0qué incidencias no se califican como regresión”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhj`ubjm)”}”(hŒIquién es el responsable de identificar la causa raíz de una regresión ”h]”h¨)”}”(hŒHquién es el responsable de identificar la causa raíz de una regresión”h]”hŒHquién es el responsable de identificar la causa raíz de una regresión”…””}”(hj—hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhj`ubjm)”}”(hŒ©cómo gestionar situaciones difíciles, como por ejemplo cuando una regresión es causada por una corrección de seguridad o cuando una regresión causa otra regresión ”h]”h¨)”}”(hŒ¨cómo gestionar situaciones difíciles, como por ejemplo cuando una regresión es causada por una corrección de seguridad o cuando una regresión causa otra regresión”h]”hŒ¨cómo gestionar situaciones difíciles, como por ejemplo cuando una regresión es causada por una corrección de seguridad o cuando una regresión causa otra regresión”…””}”(hj¯hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhj`ubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh Mhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh Mhj=hžhubeh}”(h]”Œ'que-mas-hay-que-saber-sobre-regresiones”ah ]”h"]”Œ,¿qué más hay que saber sobre regresiones?”ah$]”h&]”uh1j#hj÷hžhhŸhØh M ubj$)”}”(hhh]”(j))”}”(hŒ=A quién preguntar por consejo cuando se trata de regresiones”h]”hŒ=A quién preguntar por consejo cuando se trata de regresiones”…””}”(hjÚhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj×hžhhŸhØh Mubh¨)”}”(hŒôMande un email a la lista de correo de regresiones (regressions@lists.linux.dev) y CC al seguidor de regresiones del kernel de Linux (regressions@leemhuis.info); Si el incidente pudiera ser mejor gestionarlo en privado, puede omitirse la lista.”h]”(hŒ4Mande un email a la lista de correo de regresiones (”…””}”(hjèhžhhŸNh Nubhè)”}”(hŒregressions@lists.linux.dev”h]”hŒregressions@lists.linux.dev”…””}”(hjðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ"mailto:regressions@lists.linux.dev”uh1hçhjèubhŒ7) y CC al seguidor de regresiones del kernel de Linux (”…””}”(hjèhžhhŸNh Nubhè)”}”(hŒregressions@leemhuis.info”h]”hŒregressions@leemhuis.info”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ mailto:regressions@leemhuis.info”uh1hçhjèubhŒU); Si el incidente pudiera ser mejor gestionarlo en privado, puede omitirse la lista.”…””}”(hjèhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhj×hžhubeh}”(h]”Œ`_ para ver la última información; o `busque el último informe de regresiones `_, el cual suele ser enviado por regzbot una vez a la semana el domingo por la noche (UTC), lo cual es unas horas antes de que Linus normalmente anuncie las "(pre-)releases".”h]”(hŒ Verifique el ”…””}”(hj: hžhhŸNh Nubhè)”}”(hŒM`interfaz web de regzbot `_”h]”hŒinterfaz web de regzbot”…””}”(hjB hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œinterfaz web de regzbot”jŠŒ0https://linux-regtracking.leemhuis.info/regzbot/”uh1hçhj: ubj)”}”(hŒ3 ”h]”h}”(h]”Œinterfaz-web-de-regzbot”ah ]”h"]”Œinterfaz web de regzbot”ah$]”h&]”Œrefuri”jR uh1jj™Khj: ubhŒ% para ver la última información; o ”…””}”(hj: hžhhŸNh Nubhè)”}”(hŒx`busque el último informe de regresiones `_”h]”hŒ(busque el último informe de regresiones”…””}”(hjd hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ(busque el último informe de regresiones”jŠŒJhttps://lore.kernel.org/lkml/?q=%22Linux+regressions+report%22+f%3Aregzbot”uh1hçhj: ubj)”}”(hŒM ”h]”h}”(h]”Œ'busque-el-ultimo-informe-de-regresiones”ah ]”h"]”Œ(busque el último informe de regresiones”ah$]”h&]”Œrefuri”jt uh1jj™Khj: ubhŒ±, el cual suele ser enviado por regzbot una vez a la semana el domingo por la noche (UTC), lo cual es unas horas antes de que Linus normalmente anuncie las “(pre-)releasesâ€.”…””}”(hj: hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mfhj) hžhubeh}”(h]”Œ:como-ver-que-regresiones-esta-siguiendo-regbot-actualmente”ah ]”h"]”Œ?¿cómo ver qué regresiones esta siguiendo regbot actualmente?”ah$]”h&]”uh1j#hj.hžhhŸhØh Mdubj$)”}”(hhh]”(j))”}”(hŒ ¿Qué sitios supervisa regzbot?”h]”hŒ ¿Qué sitios supervisa regzbot?”…””}”(hj— hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj” hžhhŸhØh Mnubh¨)”}”(hŒRegzbot supervisa las listas de correo más importantes de Linux, como también las de los repositorios linux-next, mainline y stable/longterm.”h]”hŒRegzbot supervisa las listas de correo más importantes de Linux, como también las de los repositorios linux-next, mainline y stable/longterm.”…””}”(hj¥ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mphj” hžhubeh}”(h]”Œque-sitios-supervisa-regzbot”ah ]”h"]”Œ ¿qué sitios supervisa regzbot?”ah$]”h&]”uh1j#hj.hžhhŸhØh Mnubj$)”}”(hhh]”(j))”}”(hŒ@¿Qué tipos de incidentes han de ser monitorizados por regzbot?”h]”hŒ@¿Qué tipos de incidentes han de ser monitorizados por regzbot?”…””}”(hj¾ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj» hžhhŸhØh Muubh¨)”}”(hXFEl bot debe hacer seguimiento de las regresiones, y por tanto por favor, no involucre a regzbot para incidencias normales. Pero es correcto para el gestor de incidencias de kernel de Linux, monitorizar incidentes graves, como informes sobre cuelgues, corrupción de datos o errores internos (Panic, Oops, BUG(), warning, ...).”h]”hXFEl bot debe hacer seguimiento de las regresiones, y por tanto por favor, no involucre a regzbot para incidencias normales. Pero es correcto para el gestor de incidencias de kernel de Linux, monitorizar incidentes graves, como informes sobre cuelgues, corrupción de datos o errores internos (Panic, Oops, BUG(), warning, ...).”…””}”(hjÌ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mvhj» hžhubeh}”(h]”Œ``, que hace que regzbot considere el correo como un informe de regressión que se ha de añadir al seguimiento, como se ha descrito anteriormente; ``#regzbot ^introduced `` es otro ejemplo del comando, el cual indica a regzbot que considere el email anterior como el informe de una regresión que se ha de comenzar a monitorizar.”h]”(hŒ Por ejemplo ”…””}”(hj( hžhhŸNh Nubj#)”}”(hŒ+``#regzbot introduced ``”h]”hŒ'#regzbot introduced ”…””}”(hj0 hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hj( ubhŒ’, que hace que regzbot considere el correo como un informe de regressión que se ha de añadir al seguimiento, como se ha descrito anteriormente; ”…””}”(hj( hžhhŸNh Nubj#)”}”(hŒ,``#regzbot ^introduced ``”h]”hŒ(#regzbot ^introduced ”…””}”(hjB hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hj( ubhŒ es otro ejemplo del comando, el cual indica a regzbot que considere el email anterior como el informe de una regresión que se ha de comenzar a monitorizar.”…””}”(hj( hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MŒhj hžhubh¨)”}”(hXUna vez uno de esos dos comandos se ha utilizado, se pueden usar otros comandos regzbot en respuestas directas o indirectas al informe. Puede escribirlos debajo de uno de los comandos anteriormente usados o en las respuestas al correo en el que se uso como respuesta a ese correo:”h]”hXUna vez uno de esos dos comandos se ha utilizado, se pueden usar otros comandos regzbot en respuestas directas o indirectas al informe. Puede escribirlos debajo de uno de los comandos anteriormente usados o en las respuestas al correo en el que se uso como respuesta a ese correo:”…””}”(hjZ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M’hj hžhubj)”}”(hX* Definir o actualizar el título:: #regzbot title: foo * Monitorizar una discusión o un tiquet de bugzilla.kernel.org donde aspectos adicionales del incidente o de la corrección se están comentando -- por ejemplo presentar un parche que corrige la regresión:: #regzbot monitor: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/ Monitorizar solamente funciona para lore.kernel.org y bugzilla.kernel.org; regzbot considerará todos los mensajes en ese hilo o el tiquet como relacionados al proceso de corrección. * Indicar a un lugar donde más detalles de interés, como un mensaje en una lista de correo o un tiquet en un gestor de incidencias que pueden estar levemente relacionados, pero con un tema diferente:: #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=123456789 * Identificar una regresión como corregida por un commit que se ha mandado aguas arriba o se ha publicado:: #regzbot fixed-by: 1f2e3d4c5d * Identificar una regresión como un duplicado de otra que ya es seguida por regzbot:: #regzbot dup-of: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/ * Identificar una regresión como inválida:: #regzbot invalid: wasn't a regression, problem has always existed ”h]”(j¹)”}”(hhh]”(jm)”}”(hŒ;Definir o actualizar el título:: #regzbot title: foo ”h]”(h¨)”}”(hŒ!Definir o actualizar el título::”h]”hŒ Definir o actualizar el título:”…””}”(hjs hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M—hjo ubj=)”}”(hŒ#regzbot title: foo”h]”hŒ#regzbot title: foo”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh M™hjo ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjl ubjm)”}”(hX.Monitorizar una discusión o un tiquet de bugzilla.kernel.org donde aspectos adicionales del incidente o de la corrección se están comentando -- por ejemplo presentar un parche que corrige la regresión:: #regzbot monitor: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/ ”h]”(h¨)”}”(hŒÎMonitorizar una discusión o un tiquet de bugzilla.kernel.org donde aspectos adicionales del incidente o de la corrección se están comentando -- por ejemplo presentar un parche que corrige la regresión::”h]”hŒÍMonitorizar una discusión o un tiquet de bugzilla.kernel.org donde aspectos adicionales del incidente o de la corrección se están comentando -- por ejemplo presentar un parche que corrige la regresión:”…””}”(hj™ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M›hj• ubj=)”}”(hŒY#regzbot monitor: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/”h]”hŒY#regzbot monitor: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/”…””}”hj§ sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MŸhj• ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjl ubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh M—hjh ubj)”}”(hŒ¸Monitorizar solamente funciona para lore.kernel.org y bugzilla.kernel.org; regzbot considerará todos los mensajes en ese hilo o el tiquet como relacionados al proceso de corrección. ”h]”h¨)”}”(hŒ·Monitorizar solamente funciona para lore.kernel.org y bugzilla.kernel.org; regzbot considerará todos los mensajes en ese hilo o el tiquet como relacionados al proceso de corrección.”h]”hŒ·Monitorizar solamente funciona para lore.kernel.org y bugzilla.kernel.org; regzbot considerará todos los mensajes en ese hilo o el tiquet como relacionados al proceso de corrección.”…””}”(hjÅ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M¡hjÁ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh M¡hjh ubj¹)”}”(hhh]”(jm)”}”(hXIndicar a un lugar donde más detalles de interés, como un mensaje en una lista de correo o un tiquet en un gestor de incidencias que pueden estar levemente relacionados, pero con un tema diferente:: #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=123456789 ”h]”(h¨)”}”(hŒÈIndicar a un lugar donde más detalles de interés, como un mensaje en una lista de correo o un tiquet en un gestor de incidencias que pueden estar levemente relacionados, pero con un tema diferente::”h]”hŒÇIndicar a un lugar donde más detalles de interés, como un mensaje en una lista de correo o un tiquet en un gestor de incidencias que pueden estar levemente relacionados, pero con un tema diferente:”…””}”(hjà hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M¥hjÜ ubj=)”}”(hŒD#regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=123456789”h]”hŒD#regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=123456789”…””}”hjî sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh M©hjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÙ ubjm)”}”(hŒIdentificar una regresión como corregida por un commit que se ha mandado aguas arriba o se ha publicado:: #regzbot fixed-by: 1f2e3d4c5d ”h]”(h¨)”}”(hŒjIdentificar una regresión como corregida por un commit que se ha mandado aguas arriba o se ha publicado::”h]”hŒiIdentificar una regresión como corregida por un commit que se ha mandado aguas arriba o se ha publicado:”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M«hj ubj=)”}”(hŒ#regzbot fixed-by: 1f2e3d4c5d”h]”hŒ#regzbot fixed-by: 1f2e3d4c5d”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh M®hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÙ ubjm)”}”(hŒ´Identificar una regresión como un duplicado de otra que ya es seguida por regzbot:: #regzbot dup-of: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/ ”h]”(h¨)”}”(hŒTIdentificar una regresión como un duplicado de otra que ya es seguida por regzbot::”h]”hŒSIdentificar una regresión como un duplicado de otra que ya es seguida por regzbot:”…””}”(hj, hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M±hj( ubj=)”}”(hŒX#regzbot dup-of: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/”h]”hŒX#regzbot dup-of: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/”…””}”hj: sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh M´hj( ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÙ ubjm)”}”(hŒtIdentificar una regresión como inválida:: #regzbot invalid: wasn't a regression, problem has always existed ”h]”(h¨)”}”(hŒ+Identificar una regresión como inválida::”h]”hŒ*Identificar una regresión como inválida:”…””}”(hjR hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M¶hjN ubj=)”}”(hŒA#regzbot invalid: wasn't a regression, problem has always existed”h]”hŒA#regzbot invalid: wasn't a regression, problem has always existed”…””}”hj` sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh M¸hjN ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhjÙ ubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh M¥hjh ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh M—hj hžhubeh}”(h]”Œcomo-interactuar-con-regzbot”ah ]”h"]”Œ ¿cómo interactuar con regzbot?”ah$]”h&]”uh1j#hj.hžhhŸhØh M†ubj$)”}”(hhh]”(j))”}”(hŒ3¿Algo más que decir sobre regzbot y sus comandos?”h]”hŒ3¿Algo más que decir sobre regzbot y sus comandos?”…””}”(hj‹ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjˆ hžhhŸhØh M¼ubh¨)”}”(hX¾Hay información más detallada y actualizada sobre el bot de seguimiento de regresiones del kernel de Linux en: `project page `_, y entre otros contiene una `guia de inicio `_ y `documentación de referencia `_ Ambos contienen más detalles que las secciones anteriores.”h]”(hŒqHay información más detallada y actualizada sobre el bot de seguimiento de regresiones del kernel de Linux en: ”…””}”(hj™ hžhhŸNh Nubhè)”}”(hŒ4`project page `_”h]”hŒ project page”…””}”(hj¡ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ project page”jŠŒ"https://gitlab.com/knurd42/regzbot”uh1hçhj™ ubj)”}”(hŒ% ”h]”h}”(h]”Œ project-page”ah ]”h"]”Œ project page”ah$]”h&]”Œrefuri”j± uh1jj™Khj™ ubhŒ, y entre otros contiene una ”…””}”(hj™ hžhhŸNh Nubhè)”}”(hŒZ`guia de inicio `_”h]”hŒguia de inicio”…””}”(hjà hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œguia de inicio”jŠŒFhttps://gitlab.com/knurd42/regzbot/-/blob/main/docs/getting_started.md”uh1hçhj™ ubj)”}”(hŒI ”h]”h}”(h]”Œguia-de-inicio”ah ]”h"]”Œguia de inicio”ah$]”h&]”Œrefuri”jÓ uh1jj™Khj™ ubhŒ y ”…””}”(hj™ hžhhŸNh Nubhè)”}”(hŒb`documentación de referencia `_”h]”hŒdocumentación de referencia”…””}”(hjå hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œdocumentación de referencia”jŠŒ@https://gitlab.com/knurd42/regzbot/-/blob/main/docs/reference.md”uh1hçhj™ ubj)”}”(hŒC ”h]”h}”(h]”Œdocumentacion-de-referencia”ah ]”h"]”Œdocumentación de referencia”ah$]”h&]”Œrefuri”jõ uh1jj™Khj™ ubhŒ< Ambos contienen más detalles que las secciones anteriores.”…””}”(hj™ hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M¾hjˆ hžhubeh}”(h]”Œ/algo-mas-que-decir-sobre-regzbot-y-sus-comandos”ah ]”h"]”Œ3¿algo más que decir sobre regzbot y sus comandos?”ah$]”h&]”uh1j#hj.hžhhŸhØh M¼ubeh}”(h]”Œ/mas-sobre-la-gestion-de-regresiones-con-regzbot”ah ]”h"]”Œ1más sobre la gestión de regresiones con regzbot”ah$]”h&]”uh1j#hjøhžhhŸhØh M$ubj$)”}”(hhh]”(j))”}”(hŒ Citas de Linus sobre regresiones”h]”hŒ Citas de Linus sobre regresiones”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj hžhhŸhØh MÆubh¨)”}”(hŒA continuación se encuentran unos ejemplos reales (traducidos) de como Linus Torvalds espera que se gestionen las regresiones:”h]”hŒA continuación se encuentran unos ejemplos reales (traducidos) de como Linus Torvalds espera que se gestionen las regresiones:”…””}”(hj. hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MÈhj hžhubj)”}”(hX>* De 2017-10-26 (1/2) `_:: Si rompes la configuración de los espacios de usuario ESO ES UNA REGRESIÓN. No está bien decir "pero nosotros arreglaremos la configuración del espacio de usuario". Realmente. NO ESTà BIEN. [...] La primera regla es: - no causamos regresiones y el corolario es que cuando una regresión pasa, lo admitimos y lo arreglamos, en vez de echar la culpa al espacio de usuario. El hecho de que aparentemente se haya negado la regresión durante tres semanas, significa que lo revertiré y dejaré de integrar peticiones de apparmor hasta que la gente involucrada entienda como se hace el desarrollo del kernel. * De `2017-10-26 (2/2) `_:: La gente debería sentirse libre de actualizar su kernel y simplemente no preocuparse por ello. Me niego a imponer una limitación del tipo "solo puede actualizar el kernel si actualiza otro programa". Si el kernel trabaja para tí, la regla es que continúe trabajando para tí. Ha habido algunas excepciones, pero son pocas y separadas entre sí, y generalmente tienen una razón fundamental para haber sucedido, que era básicamente inevitable, y la gente intentó evitarlas por todos los medios. Quizás no podamos mantener el hardware más, después de que han pasado décadas y nadie los usacon kernel modernos. Quizás haya un problema de seguridad serio con cómo hicimos las cosas, y la gente depende de un modelo fundamentalmente roto. Quizás haya algún otro roto fundamental, que tenga que tener una _flag_ y por razones internas y fundamentales. Y nótese que esto trata sobre *romper* los entornos de la gente. Cambios de comportamiento pasan, y quizás no se mantengan algunas funcionalidades más. Hay un número de campos en /proc//stat que se imprimen como ceros, simplemente porque ni siquiera existen ya en kernel, o porque mostrarlos era un error (típica una fuga de información). Pero los números se sustituyeron por ceros, así que el código que se usaba para parsear esos campos todavía existe. El usuario puede no ver todo lo que podía ver antes, y por eso el omportamiento es claramente diferente, pero las cosas todavía _funcionan_, incluso si no se puede mostrar información sensible (o que no es ya importante). Pero si algo realmente se rompe, entonces el cambio debe de arreglarse o revertirse. Y se arregla en el *kernel*. No diciendo "bueno, arreglaremos tu espacio de usuario". Ha sido un cambio en el kernel el que creo el problema, entonces ha de ser el kernel el que lo corrija, porque tenemos un modelo de "actualización". Pero no tenemos una "actualización con el nuevo espacio de usuario". Y yo seriamente me negaré a coger código de gente que no entiende y honre esta sencilla regla. Y esta regla no va a cambiar. Y sí, me doy cuenta que el kernel es "especial" en este respecto. Y estoy orgulloso de ello. Y he visto, y puedo señalar, muchos proyectos que dicen "Tenemos que romper ese caso de uso para poder hacer progresos" o "estabas basandote en comportamientos no documentados, debe ser duro ser tú" o "hay una forma mejor de hacer lo que quieres hacer, y tienes que cambiar a esa nueva forma", y yo simplemente no pienso que eso sea aceptable fuera de una fase alfa muy temprana que tenga usuarios experimentales que saben a lo que se han apuntado. El kernel no ha estado en esta situación en las dos últimas décadas. Nosotros rompemos la API _dentro_ del kernel todo el tiempo. Y arreglaremos los problemas internos diciendo "tú ahora necesitas hacer XYZ", pero entonces es sobre la API interna del kernel y la gente que hace esto entonces tendrá obviamente que arreglar todos los usos de esa API del kernel. Nadie puede decir "ahora, yo he roto la API que usas, y ahora tú necesitas arreglarlo". Quién rompa algo, lo arregla también. Y nosotros, simplemente, no rompemos el espacio de usuario. * De `2020-05-21 `_:: Las reglas sobre regresiones nunca han sido sobre ningún tipo de comportamiento documentado, o dónde está situado el código. Las reglas sobre regresiones son siempre sobre "roturas en el flujo de trabajo del usuario". Los usuarios son literalmente la _única_ cosa que importa. Argumentaciones como "no debería haber usado esto" o "ese comportamiento es indefinido, es su culpa que su aplicación no funcione" o "eso solía funcionar únicamente por un bug del kernel" son irrelevantes. Ahora, la realidad nunca es blanca o negra. Así hemos tenido situaciones como "un serio incidente de seguridad" etc que solamente nos fuerza a hacer cambios que pueden romper el espacio de usuario. Pero incluso entonces la regla es que realmente no hay otras opciones para que las cosas sigan funcionando. Y obviamente, si los usuarios tardan años en darse cuenta que algo se ha roto, o si hay formas adecuadas para sortear la rotura que no causen muchos problemas para los usuarios (por ejemplo: "hay un puñado de usuarios, y estos pueden usar la línea de comandos del kernel para evitarlos"; ese tipo de casos), en esos casos se ha sido un poco menos estricto. Pero no, "eso que está documentado que está roto" (si es dado a que el código estaba en preparación o porque el manual dice otra cosa) eso es irrelevante. Si preparar el código es tan útil que la gente, acaba usando, esto implica que básicamente es código del kernel con una señal diciendo "por favor limpiar esto". El otro lado de la moneda es que la gente que habla sobre "estabilidad de las APIs" están totalmente equivocados. Las APIs tampoco importan. Se puede hacer cualquier cambio que se quiera a una API ... siempre y cuando nadie se de cuenta. De nuevo, la regla de las regresiones no trata sobre la documentación, tampoco sobre las APIs y tampoco sobre las fases de la Luna. Únicamente trata sobre "hemos causado problemas al espacio de usuario que antes funcionaba". * De `2017-11-05 `_:: Y nuestra regla sobre las regresiones nunca ha sido "el comportamiento no cambia". Eso podría significar que nunca podríamos hacer ningún cambio. Por ejemplo, hacemos cosas como añadir una nueva gestión de errores etc todo el tiempo, con lo cual a veces incluso añadimos tests en el directorio de kselftest. Así que claramente cambia el comportamiento todo el tiempo y nosotros no consideramos eso una regresión per se. La regla para regresiones para el kernel es para cuando se rompe algo en el espacio de usuario. No en algún test. No en "mira, antes podía hacer X, y ahora no puedo". * De `2018-08-03 `_:: ESTÃS OLVIDANDO LA REGLA #1 DEL KERNEL. No hacemos regresiones, y no hacemos regresiones porque estás 100% equivocado. Y la razón que apuntas en tú opinión es exactamente *PORQUÉ* estás equivocado. Tus "buenas razones" son honradas y pura basura. El punto de "no hacemos regresiones" es para que la gente pueda actualizar el kernel y nunca tengan que preocuparse por ello. > El kernel tiene un bug que ha de ser arreglado Eso es *TOTALMENTE* insustancial. Chicos, si algo estaba roto o no, NO IMPORTA. ¿Porqué? Los errores pasan. Eso es un hecho de la vida. Discutir que "tenemos que romper algo porque estábamos arreglando un error" es una locura. Arreglamos decenas de errores cada dia, pensando que "arreglando un bug" significa que podemos romper otra cosa es algo que simplemente NO ES VERDAD. Así que los bugs no son realmente relevantes para la discusión. Estos suceden y se detectan, se arreglan, y no tienen nada que ver con "rompemos a los usuarios". Porque la única cosa que importa ES EL USUARIO. ¿Cómo de complicado es eso de comprender? Cualquier persona que use "pero no funcionaba correctamente" es un argumento no tiene la razón. Con respecto al USUARIO, no era erróneo - funcionaba para él/ella. Quizás funcionaba *porque* el usuario había tenido el bug en cuenta, y quizás funcionaba porque el usuario no lo había notado - de nuevo no importa. Funcionaba para el usuario. Romper el flujo del trabajo de un usuario, debido a un "bug" es la PEOR razón que se pueda usar. Es básicamente decir "He cogido algo que funcionaba, y lo he roto, pero ahora es mejor". ¿No ves que un argumento como este es j*didamente absurdo? y sin usuarios, tu programa no es un programa, es una pieza de código sin finalidad que puedes perfectamente tirar a la basura. Seriamente. Esto es *porque* la regla #1 para el desarrollo del kernel es "no rompemos el espacio de usuario". Porque "He arreglado un error" PARA NADA ES UN ARGUMENTO si esa corrección del código rompe el espacio de usuario. si actualizamos el kernel TODO EL TIEMPO, sin actualizar ningún otro programa en absoluto. Y esto es absolutamente necesario, porque las dependencias son terribles. Y esto es necesario simplemente porque yo como desarrollador del kernel no actualizo al azar otras herramientas que ni siquiera me importan como desarrollador del kernel, y yo quiero que mis usuarios se sientan a salvo haciendo lo mismo. Así que no. Tu regla está COMPLETAMENTE equivocada. Si no puedes actualizar el kernel sin actualizar otro binario al azar, entonces tenemos un problema. * De `2021-06-05 `_:: NO HAY ARGUMENTOS VÃLIDOS PARA UNA REGRESIÓN. Honestamente, la gente de seguridad necesita entender que "no funciona" no es un caso de éxito sobre seguridad. Es un caso de fallo. Sí, "no funciona" puede ser seguro. Pero en este caso es totalmente inutil. * De `2011-05-06 (1/3) `_:: La compatibilidad de los binarios es más importante. Y si los binarios no usan el interfaz para parsear el formato (o justamente lo parsea incorrectamente - como el reciente ejemplo de añadir uuid al /proc/self/mountinfo), entonces es una regresión. Y las regresiones se revierten, a menos que haya problemas de seguridad o similares que nos hagan decir "Dios mío, realmente tenemos que romper las cosas". No entiendo porqué esta simple lógica es tan difícil para algunos desarrolladores del kernel. La realidad importa. Sus deseos personales NO IMPORTAN NADA. Si se crea un interface que puede usarse sin parsear la descripción del interface, entonces estaḿos atascados en el interface. La teoría simplemente no importa. Podrias alludar a arreglar las herramientas, e intentar evitar los errores de compatibilidad de ese modo. No hay tampoco tantos de esos. De `2011-05-06 (2/3) `_:: Esto claramente NO es un tracepoint interno. Por definición. Y está siendo usado por powertop. De `2011-05-06 (3/3) `_:: Tenemos programas que usan esa ABI y si eso se rompe eso es una regresión. * De `2012-07-06 `_:: > Ahora esto me ha dejado preguntandome si Debian _inestable_ realmente califica > como espacio de usuario estándar. Oh, si el kernel rompe algún espacio de usuario estándar, eso cuenta. Muchísima gente usa Debian inestable. * De `2019-09-15 `_:: Una reversión _en particular_ en el último minuto en el último commit (no teniendo en cuenta el propio cambio de versión) justo antes de la liberación, y aunque es bastante incómodo, quizás también es instructivo. Lo que es instructivo sobre esto es que he revertido un commit que no tenía ningún error. De hecho, hacía exactamente lo que pretendía, y lo hacía muy bien. De hecho lo hacía _tan_ bien que los muy mejorados patrones de IO que causaba han acabado revelando una regresión observable desde el espacio de usuario, debido a un error real en un componente no relacionado en absoluto. De todas maneras, los detalles actuales de esta regresión no son la razón por la que señalo esto como instructivo. Es más que es un ejemplo ilustrativo sobre lo que cuenta como una regresión, y lo que conlleva la regla del kernel de "no regresiones". El commit que ha sido revertido no cambiaba ninguna API, y no introducía ningún error nuevo en el código. Pero acabó exponiendo otro problema, y como eso causaba que la actualización del kernel fallara para el usuario. Así que ha sido revertido. El foco aquí, es que hemos hecho la reversión basándonos en el comportamiento reportado en el espacio de usuario, no basado en conceptos como "cambios de ABI" o "provocaba un error". Los mejores patrones de IO que se han presentado debido al cambio únicamente han expuesto un viejo error, y la gente ya dependía del benigno comportamiento de ese viejo error. Y que no haya miedo, reintroduciremos el arreglo que mejoraba los patrones de IO una vez hayamos decidido cómo gestionar el hecho de que hay una interacción incorrecta con un interfaz en el que la gente dependía de ese comportamiento previo. Es únicamente que tenemos que ver cómo gestionamos y cómo lo hacemos (no hay menos de tres parches diferentes de tres desarrolladores distintos que estamos evaluando, ... puede haber más por llegar). Mientras tanto, he revertido lo que exponía el problema a los usuarios de esta release, incluso cuando espero que el fix será reintroducido (quizás insertado a posteriormente como un parche estable) una vez lleguemos a un acuerdo sobre cómo se ha de exponer el error. Lo que hay que recordar de todo el asunto no es sobre si el cambio de kernel-espacio-de-usuario ABI, o la corrección de un error, o si el código antiguo "en primer lugar nunca debería haber estado ahí". Es sobre si algo rompe el actual flujo de trabajo del usuario. De todas formas, esto era mi pequeña aclaración en todo este tema de la regresión. Ya que es la "primera regla de la programación del kernel", me ha parecido que quizás es bueno mencionarlo de vez en cuando.”h]”j¹)”}”(hhh]”(jm)”}”(hXÿDe 2017-10-26 (1/2) `_:: Si rompes la configuración de los espacios de usuario ESO ES UNA REGRESIÓN. No está bien decir "pero nosotros arreglaremos la configuración del espacio de usuario". Realmente. NO ESTà BIEN. [...] La primera regla es: - no causamos regresiones y el corolario es que cuando una regresión pasa, lo admitimos y lo arreglamos, en vez de echar la culpa al espacio de usuario. El hecho de que aparentemente se haya negado la regresión durante tres semanas, significa que lo revertiré y dejaré de integrar peticiones de apparmor hasta que la gente involucrada entienda como se hace el desarrollo del kernel. ”h]”(h¨)”}”(hŒzDe 2017-10-26 (1/2) `_::”h]”(hŒDe 2017-10-26 (1/2) <”…””}”(hjG hžhhŸNh Nubhè)”}”(hŒ`https://lore.kernel.org/lkml/CA+55aFwiiQYJ+YoLKCXjN_beDVfu38mg=Ggg5LFOcqHE8Qi7Zw@mail.gmail.com/”h]”hŒ`https://lore.kernel.org/lkml/CA+55aFwiiQYJ+YoLKCXjN_beDVfu38mg=Ggg5LFOcqHE8Qi7Zw@mail.gmail.com/”…””}”(hjO hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jQ uh1hçhjG ubhŒ>`_:”…””}”(hjG hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MÌhjC ubj=)”}”(hXgSi rompes la configuración de los espacios de usuario ESO ES UNA REGRESIÓN. No está bien decir "pero nosotros arreglaremos la configuración del espacio de usuario". Realmente. NO ESTà BIEN. [...] La primera regla es: - no causamos regresiones y el corolario es que cuando una regresión pasa, lo admitimos y lo arreglamos, en vez de echar la culpa al espacio de usuario. El hecho de que aparentemente se haya negado la regresión durante tres semanas, significa que lo revertiré y dejaré de integrar peticiones de apparmor hasta que la gente involucrada entienda como se hace el desarrollo del kernel.”h]”hXgSi rompes la configuración de los espacios de usuario ESO ES UNA REGRESIÓN. No está bien decir "pero nosotros arreglaremos la configuración del espacio de usuario". Realmente. NO ESTà BIEN. [...] La primera regla es: - no causamos regresiones y el corolario es que cuando una regresión pasa, lo admitimos y lo arreglamos, en vez de echar la culpa al espacio de usuario. El hecho de que aparentemente se haya negado la regresión durante tres semanas, significa que lo revertiré y dejaré de integrar peticiones de apparmor hasta que la gente involucrada entienda como se hace el desarrollo del kernel.”…””}”hjh sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MÏhjC ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hX½ De `2017-10-26 (2/2) `_:: La gente debería sentirse libre de actualizar su kernel y simplemente no preocuparse por ello. Me niego a imponer una limitación del tipo "solo puede actualizar el kernel si actualiza otro programa". Si el kernel trabaja para tí, la regla es que continúe trabajando para tí. Ha habido algunas excepciones, pero son pocas y separadas entre sí, y generalmente tienen una razón fundamental para haber sucedido, que era básicamente inevitable, y la gente intentó evitarlas por todos los medios. Quizás no podamos mantener el hardware más, después de que han pasado décadas y nadie los usacon kernel modernos. Quizás haya un problema de seguridad serio con cómo hicimos las cosas, y la gente depende de un modelo fundamentalmente roto. Quizás haya algún otro roto fundamental, que tenga que tener una _flag_ y por razones internas y fundamentales. Y nótese que esto trata sobre *romper* los entornos de la gente. Cambios de comportamiento pasan, y quizás no se mantengan algunas funcionalidades más. Hay un número de campos en /proc//stat que se imprimen como ceros, simplemente porque ni siquiera existen ya en kernel, o porque mostrarlos era un error (típica una fuga de información). Pero los números se sustituyeron por ceros, así que el código que se usaba para parsear esos campos todavía existe. El usuario puede no ver todo lo que podía ver antes, y por eso el omportamiento es claramente diferente, pero las cosas todavía _funcionan_, incluso si no se puede mostrar información sensible (o que no es ya importante). Pero si algo realmente se rompe, entonces el cambio debe de arreglarse o revertirse. Y se arregla en el *kernel*. No diciendo "bueno, arreglaremos tu espacio de usuario". Ha sido un cambio en el kernel el que creo el problema, entonces ha de ser el kernel el que lo corrija, porque tenemos un modelo de "actualización". Pero no tenemos una "actualización con el nuevo espacio de usuario". Y yo seriamente me negaré a coger código de gente que no entiende y honre esta sencilla regla. Y esta regla no va a cambiar. Y sí, me doy cuenta que el kernel es "especial" en este respecto. Y estoy orgulloso de ello. Y he visto, y puedo señalar, muchos proyectos que dicen "Tenemos que romper ese caso de uso para poder hacer progresos" o "estabas basandote en comportamientos no documentados, debe ser duro ser tú" o "hay una forma mejor de hacer lo que quieres hacer, y tienes que cambiar a esa nueva forma", y yo simplemente no pienso que eso sea aceptable fuera de una fase alfa muy temprana que tenga usuarios experimentales que saben a lo que se han apuntado. El kernel no ha estado en esta situación en las dos últimas décadas. Nosotros rompemos la API _dentro_ del kernel todo el tiempo. Y arreglaremos los problemas internos diciendo "tú ahora necesitas hacer XYZ", pero entonces es sobre la API interna del kernel y la gente que hace esto entonces tendrá obviamente que arreglar todos los usos de esa API del kernel. Nadie puede decir "ahora, yo he roto la API que usas, y ahora tú necesitas arreglarlo". Quién rompa algo, lo arregla también. Y nosotros, simplemente, no rompemos el espacio de usuario. ”h]”(h¨)”}”(hŒ{De `2017-10-26 (2/2) `_::”h]”(hŒDe ”…””}”(hj€ hžhhŸNh Nubhè)”}”(hŒv`2017-10-26 (2/2) `_”h]”hŒ2017-10-26 (2/2)”…””}”(hjˆ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ2017-10-26 (2/2)”jŠŒ`https://lore.kernel.org/lkml/CA+55aFxW7NMAMvYhkvz1UPbUTUJewRt6Yb51QAx5RtrWOwjebg@mail.gmail.com/”uh1hçhj€ ubj)”}”(hŒc ”h]”h}”(h]”Œid2”ah ]”h"]”Œ2017-10-26 (2/2)”ah$]”h&]”Œrefuri”j˜ uh1jj™Khj€ ubhŒ:”…””}”(hj€ hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Måhj| ubj=)”}”(hXo La gente debería sentirse libre de actualizar su kernel y simplemente no preocuparse por ello. Me niego a imponer una limitación del tipo "solo puede actualizar el kernel si actualiza otro programa". Si el kernel trabaja para tí, la regla es que continúe trabajando para tí. Ha habido algunas excepciones, pero son pocas y separadas entre sí, y generalmente tienen una razón fundamental para haber sucedido, que era básicamente inevitable, y la gente intentó evitarlas por todos los medios. Quizás no podamos mantener el hardware más, después de que han pasado décadas y nadie los usacon kernel modernos. Quizás haya un problema de seguridad serio con cómo hicimos las cosas, y la gente depende de un modelo fundamentalmente roto. Quizás haya algún otro roto fundamental, que tenga que tener una _flag_ y por razones internas y fundamentales. Y nótese que esto trata sobre *romper* los entornos de la gente. Cambios de comportamiento pasan, y quizás no se mantengan algunas funcionalidades más. Hay un número de campos en /proc//stat que se imprimen como ceros, simplemente porque ni siquiera existen ya en kernel, o porque mostrarlos era un error (típica una fuga de información). Pero los números se sustituyeron por ceros, así que el código que se usaba para parsear esos campos todavía existe. El usuario puede no ver todo lo que podía ver antes, y por eso el omportamiento es claramente diferente, pero las cosas todavía _funcionan_, incluso si no se puede mostrar información sensible (o que no es ya importante). Pero si algo realmente se rompe, entonces el cambio debe de arreglarse o revertirse. Y se arregla en el *kernel*. No diciendo "bueno, arreglaremos tu espacio de usuario". Ha sido un cambio en el kernel el que creo el problema, entonces ha de ser el kernel el que lo corrija, porque tenemos un modelo de "actualización". Pero no tenemos una "actualización con el nuevo espacio de usuario". Y yo seriamente me negaré a coger código de gente que no entiende y honre esta sencilla regla. Y esta regla no va a cambiar. Y sí, me doy cuenta que el kernel es "especial" en este respecto. Y estoy orgulloso de ello. Y he visto, y puedo señalar, muchos proyectos que dicen "Tenemos que romper ese caso de uso para poder hacer progresos" o "estabas basandote en comportamientos no documentados, debe ser duro ser tú" o "hay una forma mejor de hacer lo que quieres hacer, y tienes que cambiar a esa nueva forma", y yo simplemente no pienso que eso sea aceptable fuera de una fase alfa muy temprana que tenga usuarios experimentales que saben a lo que se han apuntado. El kernel no ha estado en esta situación en las dos últimas décadas. Nosotros rompemos la API _dentro_ del kernel todo el tiempo. Y arreglaremos los problemas internos diciendo "tú ahora necesitas hacer XYZ", pero entonces es sobre la API interna del kernel y la gente que hace esto entonces tendrá obviamente que arreglar todos los usos de esa API del kernel. Nadie puede decir "ahora, yo he roto la API que usas, y ahora tú necesitas arreglarlo". Quién rompa algo, lo arregla también. Y nosotros, simplemente, no rompemos el espacio de usuario.”h]”hXo La gente debería sentirse libre de actualizar su kernel y simplemente no preocuparse por ello. Me niego a imponer una limitación del tipo "solo puede actualizar el kernel si actualiza otro programa". Si el kernel trabaja para tí, la regla es que continúe trabajando para tí. Ha habido algunas excepciones, pero son pocas y separadas entre sí, y generalmente tienen una razón fundamental para haber sucedido, que era básicamente inevitable, y la gente intentó evitarlas por todos los medios. Quizás no podamos mantener el hardware más, después de que han pasado décadas y nadie los usacon kernel modernos. Quizás haya un problema de seguridad serio con cómo hicimos las cosas, y la gente depende de un modelo fundamentalmente roto. Quizás haya algún otro roto fundamental, que tenga que tener una _flag_ y por razones internas y fundamentales. Y nótese que esto trata sobre *romper* los entornos de la gente. Cambios de comportamiento pasan, y quizás no se mantengan algunas funcionalidades más. Hay un número de campos en /proc//stat que se imprimen como ceros, simplemente porque ni siquiera existen ya en kernel, o porque mostrarlos era un error (típica una fuga de información). Pero los números se sustituyeron por ceros, así que el código que se usaba para parsear esos campos todavía existe. El usuario puede no ver todo lo que podía ver antes, y por eso el omportamiento es claramente diferente, pero las cosas todavía _funcionan_, incluso si no se puede mostrar información sensible (o que no es ya importante). Pero si algo realmente se rompe, entonces el cambio debe de arreglarse o revertirse. Y se arregla en el *kernel*. No diciendo "bueno, arreglaremos tu espacio de usuario". Ha sido un cambio en el kernel el que creo el problema, entonces ha de ser el kernel el que lo corrija, porque tenemos un modelo de "actualización". Pero no tenemos una "actualización con el nuevo espacio de usuario". Y yo seriamente me negaré a coger código de gente que no entiende y honre esta sencilla regla. Y esta regla no va a cambiar. Y sí, me doy cuenta que el kernel es "especial" en este respecto. Y estoy orgulloso de ello. Y he visto, y puedo señalar, muchos proyectos que dicen "Tenemos que romper ese caso de uso para poder hacer progresos" o "estabas basandote en comportamientos no documentados, debe ser duro ser tú" o "hay una forma mejor de hacer lo que quieres hacer, y tienes que cambiar a esa nueva forma", y yo simplemente no pienso que eso sea aceptable fuera de una fase alfa muy temprana que tenga usuarios experimentales que saben a lo que se han apuntado. El kernel no ha estado en esta situación en las dos últimas décadas. Nosotros rompemos la API _dentro_ del kernel todo el tiempo. Y arreglaremos los problemas internos diciendo "tú ahora necesitas hacer XYZ", pero entonces es sobre la API interna del kernel y la gente que hace esto entonces tendrá obviamente que arreglar todos los usos de esa API del kernel. Nadie puede decir "ahora, yo he roto la API que usas, y ahora tú necesitas arreglarlo". Quién rompa algo, lo arregla también. Y nosotros, simplemente, no rompemos el espacio de usuario.”…””}”hj° sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh Mèhj| ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hX¡De `2020-05-21 `_:: Las reglas sobre regresiones nunca han sido sobre ningún tipo de comportamiento documentado, o dónde está situado el código. Las reglas sobre regresiones son siempre sobre "roturas en el flujo de trabajo del usuario". Los usuarios son literalmente la _única_ cosa que importa. Argumentaciones como "no debería haber usado esto" o "ese comportamiento es indefinido, es su culpa que su aplicación no funcione" o "eso solía funcionar únicamente por un bug del kernel" son irrelevantes. Ahora, la realidad nunca es blanca o negra. Así hemos tenido situaciones como "un serio incidente de seguridad" etc que solamente nos fuerza a hacer cambios que pueden romper el espacio de usuario. Pero incluso entonces la regla es que realmente no hay otras opciones para que las cosas sigan funcionando. Y obviamente, si los usuarios tardan años en darse cuenta que algo se ha roto, o si hay formas adecuadas para sortear la rotura que no causen muchos problemas para los usuarios (por ejemplo: "hay un puñado de usuarios, y estos pueden usar la línea de comandos del kernel para evitarlos"; ese tipo de casos), en esos casos se ha sido un poco menos estricto. Pero no, "eso que está documentado que está roto" (si es dado a que el código estaba en preparación o porque el manual dice otra cosa) eso es irrelevante. Si preparar el código es tan útil que la gente, acaba usando, esto implica que básicamente es código del kernel con una señal diciendo "por favor limpiar esto". El otro lado de la moneda es que la gente que habla sobre "estabilidad de las APIs" están totalmente equivocados. Las APIs tampoco importan. Se puede hacer cualquier cambio que se quiera a una API ... siempre y cuando nadie se de cuenta. De nuevo, la regla de las regresiones no trata sobre la documentación, tampoco sobre las APIs y tampoco sobre las fases de la Luna. Únicamente trata sobre "hemos causado problemas al espacio de usuario que antes funcionaba". ”h]”(h¨)”}”(hŒtDe `2020-05-21 `_::”h]”(hŒDe ”…””}”(hjÈ hžhhŸNh Nubhè)”}”(hŒo`2020-05-21 `_”h]”hŒ 2020-05-21”…””}”(hjÐ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ 2020-05-21”jŠŒ_https://lore.kernel.org/all/CAHk-=wiVi7mSrsMP=fLXQrXK_UimybW=ziLOwSzFTtoXUacWVQ@mail.gmail.com/”uh1hçhjÈ ubj)”}”(hŒb ”h]”h}”(h]”Œid3”ah ]”h"]”Œ 2020-05-21”ah$]”h&]”Œrefuri”jà uh1jj™KhjÈ ubhŒ:”…””}”(hjÈ hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M(hjÄ ubj=)”}”(hX¦Las reglas sobre regresiones nunca han sido sobre ningún tipo de comportamiento documentado, o dónde está situado el código. Las reglas sobre regresiones son siempre sobre "roturas en el flujo de trabajo del usuario". Los usuarios son literalmente la _única_ cosa que importa. Argumentaciones como "no debería haber usado esto" o "ese comportamiento es indefinido, es su culpa que su aplicación no funcione" o "eso solía funcionar únicamente por un bug del kernel" son irrelevantes. Ahora, la realidad nunca es blanca o negra. Así hemos tenido situaciones como "un serio incidente de seguridad" etc que solamente nos fuerza a hacer cambios que pueden romper el espacio de usuario. Pero incluso entonces la regla es que realmente no hay otras opciones para que las cosas sigan funcionando. Y obviamente, si los usuarios tardan años en darse cuenta que algo se ha roto, o si hay formas adecuadas para sortear la rotura que no causen muchos problemas para los usuarios (por ejemplo: "hay un puñado de usuarios, y estos pueden usar la línea de comandos del kernel para evitarlos"; ese tipo de casos), en esos casos se ha sido un poco menos estricto. Pero no, "eso que está documentado que está roto" (si es dado a que el código estaba en preparación o porque el manual dice otra cosa) eso es irrelevante. Si preparar el código es tan útil que la gente, acaba usando, esto implica que básicamente es código del kernel con una señal diciendo "por favor limpiar esto". El otro lado de la moneda es que la gente que habla sobre "estabilidad de las APIs" están totalmente equivocados. Las APIs tampoco importan. Se puede hacer cualquier cambio que se quiera a una API ... siempre y cuando nadie se de cuenta. De nuevo, la regla de las regresiones no trata sobre la documentación, tampoco sobre las APIs y tampoco sobre las fases de la Luna. Únicamente trata sobre "hemos causado problemas al espacio de usuario que antes funcionaba".”h]”hX¦Las reglas sobre regresiones nunca han sido sobre ningún tipo de comportamiento documentado, o dónde está situado el código. Las reglas sobre regresiones son siempre sobre "roturas en el flujo de trabajo del usuario". Los usuarios son literalmente la _única_ cosa que importa. Argumentaciones como "no debería haber usado esto" o "ese comportamiento es indefinido, es su culpa que su aplicación no funcione" o "eso solía funcionar únicamente por un bug del kernel" son irrelevantes. Ahora, la realidad nunca es blanca o negra. Así hemos tenido situaciones como "un serio incidente de seguridad" etc que solamente nos fuerza a hacer cambios que pueden romper el espacio de usuario. Pero incluso entonces la regla es que realmente no hay otras opciones para que las cosas sigan funcionando. Y obviamente, si los usuarios tardan años en darse cuenta que algo se ha roto, o si hay formas adecuadas para sortear la rotura que no causen muchos problemas para los usuarios (por ejemplo: "hay un puñado de usuarios, y estos pueden usar la línea de comandos del kernel para evitarlos"; ese tipo de casos), en esos casos se ha sido un poco menos estricto. Pero no, "eso que está documentado que está roto" (si es dado a que el código estaba en preparación o porque el manual dice otra cosa) eso es irrelevante. Si preparar el código es tan útil que la gente, acaba usando, esto implica que básicamente es código del kernel con una señal diciendo "por favor limpiar esto". El otro lado de la moneda es que la gente que habla sobre "estabilidad de las APIs" están totalmente equivocados. Las APIs tampoco importan. Se puede hacer cualquier cambio que se quiera a una API ... siempre y cuando nadie se de cuenta. De nuevo, la regla de las regresiones no trata sobre la documentación, tampoco sobre las APIs y tampoco sobre las fases de la Luna. Únicamente trata sobre "hemos causado problemas al espacio de usuario que antes funcionaba".”…””}”hjø sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh M+hjÄ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hXúDe `2017-11-05 `_:: Y nuestra regla sobre las regresiones nunca ha sido "el comportamiento no cambia". Eso podría significar que nunca podríamos hacer ningún cambio. Por ejemplo, hacemos cosas como añadir una nueva gestión de errores etc todo el tiempo, con lo cual a veces incluso añadimos tests en el directorio de kselftest. Así que claramente cambia el comportamiento todo el tiempo y nosotros no consideramos eso una regresión per se. La regla para regresiones para el kernel es para cuando se rompe algo en el espacio de usuario. No en algún test. No en "mira, antes podía hacer X, y ahora no puedo". ”h]”(h¨)”}”(hŒtDe `2017-11-05 `_::”h]”(hŒDe ”…””}”(hj hžhhŸNh Nubhè)”}”(hŒo`2017-11-05 `_”h]”hŒ 2017-11-05”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ 2017-11-05”jŠŒ_https://lore.kernel.org/all/CA+55aFzUvbGjD8nQ-+3oiMBx14c_6zOj2n7KLN3UsJ-qsd4Dcw@mail.gmail.com/”uh1hçhj ubj)”}”(hŒb ”h]”h}”(h]”Œid4”ah ]”h"]”Œ 2017-11-05”ah$]”h&]”Œrefuri”j( uh1jj™Khj ubhŒ:”…””}”(hj hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MVhj ubj=)”}”(hXWY nuestra regla sobre las regresiones nunca ha sido "el comportamiento no cambia". Eso podría significar que nunca podríamos hacer ningún cambio. Por ejemplo, hacemos cosas como añadir una nueva gestión de errores etc todo el tiempo, con lo cual a veces incluso añadimos tests en el directorio de kselftest. Así que claramente cambia el comportamiento todo el tiempo y nosotros no consideramos eso una regresión per se. La regla para regresiones para el kernel es para cuando se rompe algo en el espacio de usuario. No en algún test. No en "mira, antes podía hacer X, y ahora no puedo".”h]”hXWY nuestra regla sobre las regresiones nunca ha sido "el comportamiento no cambia". Eso podría significar que nunca podríamos hacer ningún cambio. Por ejemplo, hacemos cosas como añadir una nueva gestión de errores etc todo el tiempo, con lo cual a veces incluso añadimos tests en el directorio de kselftest. Así que claramente cambia el comportamiento todo el tiempo y nosotros no consideramos eso una regresión per se. La regla para regresiones para el kernel es para cuando se rompe algo en el espacio de usuario. No en algún test. No en "mira, antes podía hacer X, y ahora no puedo".”…””}”hj@ sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MYhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hX` De `2018-08-03 `_:: ESTÃS OLVIDANDO LA REGLA #1 DEL KERNEL. No hacemos regresiones, y no hacemos regresiones porque estás 100% equivocado. Y la razón que apuntas en tú opinión es exactamente *PORQUÉ* estás equivocado. Tus "buenas razones" son honradas y pura basura. El punto de "no hacemos regresiones" es para que la gente pueda actualizar el kernel y nunca tengan que preocuparse por ello. > El kernel tiene un bug que ha de ser arreglado Eso es *TOTALMENTE* insustancial. Chicos, si algo estaba roto o no, NO IMPORTA. ¿Porqué? Los errores pasan. Eso es un hecho de la vida. Discutir que "tenemos que romper algo porque estábamos arreglando un error" es una locura. Arreglamos decenas de errores cada dia, pensando que "arreglando un bug" significa que podemos romper otra cosa es algo que simplemente NO ES VERDAD. Así que los bugs no son realmente relevantes para la discusión. Estos suceden y se detectan, se arreglan, y no tienen nada que ver con "rompemos a los usuarios". Porque la única cosa que importa ES EL USUARIO. ¿Cómo de complicado es eso de comprender? Cualquier persona que use "pero no funcionaba correctamente" es un argumento no tiene la razón. Con respecto al USUARIO, no era erróneo - funcionaba para él/ella. Quizás funcionaba *porque* el usuario había tenido el bug en cuenta, y quizás funcionaba porque el usuario no lo había notado - de nuevo no importa. Funcionaba para el usuario. Romper el flujo del trabajo de un usuario, debido a un "bug" es la PEOR razón que se pueda usar. Es básicamente decir "He cogido algo que funcionaba, y lo he roto, pero ahora es mejor". ¿No ves que un argumento como este es j*didamente absurdo? y sin usuarios, tu programa no es un programa, es una pieza de código sin finalidad que puedes perfectamente tirar a la basura. Seriamente. Esto es *porque* la regla #1 para el desarrollo del kernel es "no rompemos el espacio de usuario". Porque "He arreglado un error" PARA NADA ES UN ARGUMENTO si esa corrección del código rompe el espacio de usuario. si actualizamos el kernel TODO EL TIEMPO, sin actualizar ningún otro programa en absoluto. Y esto es absolutamente necesario, porque las dependencias son terribles. Y esto es necesario simplemente porque yo como desarrollador del kernel no actualizo al azar otras herramientas que ni siquiera me importan como desarrollador del kernel, y yo quiero que mis usuarios se sientan a salvo haciendo lo mismo. Así que no. Tu regla está COMPLETAMENTE equivocada. Si no puedes actualizar el kernel sin actualizar otro binario al azar, entonces tenemos un problema. ”h]”(h¨)”}”(hŒtDe `2018-08-03 `_::”h]”(hŒDe ”…””}”(hjX hžhhŸNh Nubhè)”}”(hŒo`2018-08-03 `_”h]”hŒ 2018-08-03”…””}”(hj` hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ 2018-08-03”jŠŒ_https://lore.kernel.org/all/CA+55aFwWZX=CXmWDTkDGb36kf12XmTehmQjbiMPCqCRG2hi9kw@mail.gmail.com/”uh1hçhjX ubj)”}”(hŒb ”h]”h}”(h]”Œid5”ah ]”h"]”Œ 2018-08-03”ah$]”h&]”Œrefuri”jp uh1jj™KhjX ubhŒ:”…””}”(hjX hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MhhjT ubj=)”}”(hX% ESTÃS OLVIDANDO LA REGLA #1 DEL KERNEL. No hacemos regresiones, y no hacemos regresiones porque estás 100% equivocado. Y la razón que apuntas en tú opinión es exactamente *PORQUÉ* estás equivocado. Tus "buenas razones" son honradas y pura basura. El punto de "no hacemos regresiones" es para que la gente pueda actualizar el kernel y nunca tengan que preocuparse por ello. > El kernel tiene un bug que ha de ser arreglado Eso es *TOTALMENTE* insustancial. Chicos, si algo estaba roto o no, NO IMPORTA. ¿Porqué? Los errores pasan. Eso es un hecho de la vida. Discutir que "tenemos que romper algo porque estábamos arreglando un error" es una locura. Arreglamos decenas de errores cada dia, pensando que "arreglando un bug" significa que podemos romper otra cosa es algo que simplemente NO ES VERDAD. Así que los bugs no son realmente relevantes para la discusión. Estos suceden y se detectan, se arreglan, y no tienen nada que ver con "rompemos a los usuarios". Porque la única cosa que importa ES EL USUARIO. ¿Cómo de complicado es eso de comprender? Cualquier persona que use "pero no funcionaba correctamente" es un argumento no tiene la razón. Con respecto al USUARIO, no era erróneo - funcionaba para él/ella. Quizás funcionaba *porque* el usuario había tenido el bug en cuenta, y quizás funcionaba porque el usuario no lo había notado - de nuevo no importa. Funcionaba para el usuario. Romper el flujo del trabajo de un usuario, debido a un "bug" es la PEOR razón que se pueda usar. Es básicamente decir "He cogido algo que funcionaba, y lo he roto, pero ahora es mejor". ¿No ves que un argumento como este es j*didamente absurdo? y sin usuarios, tu programa no es un programa, es una pieza de código sin finalidad que puedes perfectamente tirar a la basura. Seriamente. Esto es *porque* la regla #1 para el desarrollo del kernel es "no rompemos el espacio de usuario". Porque "He arreglado un error" PARA NADA ES UN ARGUMENTO si esa corrección del código rompe el espacio de usuario. si actualizamos el kernel TODO EL TIEMPO, sin actualizar ningún otro programa en absoluto. Y esto es absolutamente necesario, porque las dependencias son terribles. Y esto es necesario simplemente porque yo como desarrollador del kernel no actualizo al azar otras herramientas que ni siquiera me importan como desarrollador del kernel, y yo quiero que mis usuarios se sientan a salvo haciendo lo mismo. Así que no. Tu regla está COMPLETAMENTE equivocada. Si no puedes actualizar el kernel sin actualizar otro binario al azar, entonces tenemos un problema.”•ƒfh]”hX% ESTÃS OLVIDANDO LA REGLA #1 DEL KERNEL. No hacemos regresiones, y no hacemos regresiones porque estás 100% equivocado. Y la razón que apuntas en tú opinión es exactamente *PORQUÉ* estás equivocado. Tus "buenas razones" son honradas y pura basura. El punto de "no hacemos regresiones" es para que la gente pueda actualizar el kernel y nunca tengan que preocuparse por ello. > El kernel tiene un bug que ha de ser arreglado Eso es *TOTALMENTE* insustancial. Chicos, si algo estaba roto o no, NO IMPORTA. ¿Porqué? Los errores pasan. Eso es un hecho de la vida. Discutir que "tenemos que romper algo porque estábamos arreglando un error" es una locura. Arreglamos decenas de errores cada dia, pensando que "arreglando un bug" significa que podemos romper otra cosa es algo que simplemente NO ES VERDAD. Así que los bugs no son realmente relevantes para la discusión. Estos suceden y se detectan, se arreglan, y no tienen nada que ver con "rompemos a los usuarios". Porque la única cosa que importa ES EL USUARIO. ¿Cómo de complicado es eso de comprender? Cualquier persona que use "pero no funcionaba correctamente" es un argumento no tiene la razón. Con respecto al USUARIO, no era erróneo - funcionaba para él/ella. Quizás funcionaba *porque* el usuario había tenido el bug en cuenta, y quizás funcionaba porque el usuario no lo había notado - de nuevo no importa. Funcionaba para el usuario. Romper el flujo del trabajo de un usuario, debido a un "bug" es la PEOR razón que se pueda usar. Es básicamente decir "He cogido algo que funcionaba, y lo he roto, pero ahora es mejor". ¿No ves que un argumento como este es j*didamente absurdo? y sin usuarios, tu programa no es un programa, es una pieza de código sin finalidad que puedes perfectamente tirar a la basura. Seriamente. Esto es *porque* la regla #1 para el desarrollo del kernel es "no rompemos el espacio de usuario". Porque "He arreglado un error" PARA NADA ES UN ARGUMENTO si esa corrección del código rompe el espacio de usuario. si actualizamos el kernel TODO EL TIEMPO, sin actualizar ningún otro programa en absoluto. Y esto es absolutamente necesario, porque las dependencias son terribles. Y esto es necesario simplemente porque yo como desarrollador del kernel no actualizo al azar otras herramientas que ni siquiera me importan como desarrollador del kernel, y yo quiero que mis usuarios se sientan a salvo haciendo lo mismo. Así que no. Tu regla está COMPLETAMENTE equivocada. Si no puedes actualizar el kernel sin actualizar otro binario al azar, entonces tenemos un problema.”…””}”hjˆ sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MkhjT ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hXDe `2021-06-05 `_:: NO HAY ARGUMENTOS VÃLIDOS PARA UNA REGRESIÓN. Honestamente, la gente de seguridad necesita entender que "no funciona" no es un caso de éxito sobre seguridad. Es un caso de fallo. Sí, "no funciona" puede ser seguro. Pero en este caso es totalmente inutil. ”h]”(h¨)”}”(hŒtDe `2021-06-05 `_::”h]”(hŒDe ”…””}”(hj  hžhhŸNh Nubhè)”}”(hŒo`2021-06-05 `_”h]”hŒ 2021-06-05”…””}”(hj¨ hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ 2021-06-05”jŠŒ_https://lore.kernel.org/all/CAHk-=wiUVqHN76YUwhkjZzwTdjMMJf_zN4+u7vEJjmEGh3recw@mail.gmail.com/”uh1hçhj  ubj)”}”(hŒb ”h]”h}”(h]”Œid6”ah ]”h"]”Œ 2021-06-05”ah$]”h&]”Œrefuri”j¸ uh1jj™Khj  ubhŒ:”…””}”(hj  hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M²hjœ ubj=)”}”(hXNO HAY ARGUMENTOS VÃLIDOS PARA UNA REGRESIÓN. Honestamente, la gente de seguridad necesita entender que "no funciona" no es un caso de éxito sobre seguridad. Es un caso de fallo. Sí, "no funciona" puede ser seguro. Pero en este caso es totalmente inutil.”h]”hXNO HAY ARGUMENTOS VÃLIDOS PARA UNA REGRESIÓN. Honestamente, la gente de seguridad necesita entender que "no funciona" no es un caso de éxito sobre seguridad. Es un caso de fallo. Sí, "no funciona" puede ser seguro. Pero en este caso es totalmente inutil.”…””}”hjÐ sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh Mµhjœ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hXªDe `2011-05-06 (1/3) `_:: La compatibilidad de los binarios es más importante. Y si los binarios no usan el interfaz para parsear el formato (o justamente lo parsea incorrectamente - como el reciente ejemplo de añadir uuid al /proc/self/mountinfo), entonces es una regresión. Y las regresiones se revierten, a menos que haya problemas de seguridad o similares que nos hagan decir "Dios mío, realmente tenemos que romper las cosas". No entiendo porqué esta simple lógica es tan difícil para algunos desarrolladores del kernel. La realidad importa. Sus deseos personales NO IMPORTAN NADA. Si se crea un interface que puede usarse sin parsear la descripción del interface, entonces estaḿos atascados en el interface. La teoría simplemente no importa. Podrias alludar a arreglar las herramientas, e intentar evitar los errores de compatibilidad de ese modo. No hay tampoco tantos de esos. De `2011-05-06 (2/3) `_:: Esto claramente NO es un tracepoint interno. Por definición. Y está siendo usado por powertop. De `2011-05-06 (3/3) `_:: Tenemos programas que usan esa ABI y si eso se rompe eso es una regresión. ”h]”(h¨)”}”(hŒjDe `2011-05-06 (1/3) `_::”h]”(hŒDe ”…””}”(hjè hžhhŸNh Nubhè)”}”(hŒe`2011-05-06 (1/3) `_”h]”hŒ2011-05-06 (1/3)”…””}”(hjð hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ2011-05-06 (1/3)”jŠŒOhttps://lore.kernel.org/all/BANLkTim9YvResB+PwRp7QTK-a5VNg2PvmQ@mail.gmail.com/”uh1hçhjè ubj)”}”(hŒR ”h]”h}”(h]”Œid7”ah ]”h"]”Œ2011-05-06 (1/3)”ah$]”h&]”Œrefuri”juh1jj™Khjè ubhŒ:”…””}”(hjè hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M½hjä ubj=)”}”(hXjLa compatibilidad de los binarios es más importante. Y si los binarios no usan el interfaz para parsear el formato (o justamente lo parsea incorrectamente - como el reciente ejemplo de añadir uuid al /proc/self/mountinfo), entonces es una regresión. Y las regresiones se revierten, a menos que haya problemas de seguridad o similares que nos hagan decir "Dios mío, realmente tenemos que romper las cosas". No entiendo porqué esta simple lógica es tan difícil para algunos desarrolladores del kernel. La realidad importa. Sus deseos personales NO IMPORTAN NADA. Si se crea un interface que puede usarse sin parsear la descripción del interface, entonces estaḿos atascados en el interface. La teoría simplemente no importa. Podrias alludar a arreglar las herramientas, e intentar evitar los errores de compatibilidad de ese modo. No hay tampoco tantos de esos.”h]”hXjLa compatibilidad de los binarios es más importante. Y si los binarios no usan el interfaz para parsear el formato (o justamente lo parsea incorrectamente - como el reciente ejemplo de añadir uuid al /proc/self/mountinfo), entonces es una regresión. Y las regresiones se revierten, a menos que haya problemas de seguridad o similares que nos hagan decir "Dios mío, realmente tenemos que romper las cosas". No entiendo porqué esta simple lógica es tan difícil para algunos desarrolladores del kernel. La realidad importa. Sus deseos personales NO IMPORTAN NADA. Si se crea un interface que puede usarse sin parsear la descripción del interface, entonces estaḿos atascados en el interface. La teoría simplemente no importa. Podrias alludar a arreglar las herramientas, e intentar evitar los errores de compatibilidad de ese modo. No hay tampoco tantos de esos.”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MÀhjä ubh¨)”}”(hŒjDe `2011-05-06 (2/3) `_::”h]”(hŒDe ”…””}”(hj&hžhhŸNh Nubhè)”}”(hŒe`2011-05-06 (2/3) `_”h]”hŒ2011-05-06 (2/3)”…””}”(hj.hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ2011-05-06 (2/3)”jŠŒOhttps://lore.kernel.org/all/BANLkTi=KVXjKR82sqsz4gwjr+E0vtqCmvA@mail.gmail.com/”uh1hçhj&ubj)”}”(hŒR ”h]”h}”(h]”Œid8”ah ]”h"]”Œ2011-05-06 (2/3)”ah$]”h&]”Œrefuri”j>uh1jj™Khj&ubhŒ:”…””}”(hj&hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MÕhjä ubj=)”}”(hŒ`Esto claramente NO es un tracepoint interno. Por definición. Y está siendo usado por powertop.”h]”hŒ`Esto claramente NO es un tracepoint interno. Por definición. Y está siendo usado por powertop.”…””}”hjVsbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MØhjä ubh¨)”}”(hŒjDe `2011-05-06 (3/3) `_::”h]”(hŒDe ”…””}”(hjdhžhhŸNh Nubhè)”}”(hŒe`2011-05-06 (3/3) `_”h]”hŒ2011-05-06 (3/3)”…””}”(hjlhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ2011-05-06 (3/3)”jŠŒOhttps://lore.kernel.org/all/BANLkTinazaXRdGovYL7rRVp+j6HbJ7pzhg@mail.gmail.com/”uh1hçhjdubj)”}”(hŒR ”h]”h}”(h]”Œid9”ah ]”h"]”Œ2011-05-06 (3/3)”ah$]”h&]”Œrefuri”j|uh1jj™KhjdubhŒ:”…””}”(hjdhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh MÛhjä ubj=)”}”(hŒKTenemos programas que usan esa ABI y si eso se rompe eso es una regresión.”h]”hŒKTenemos programas que usan esa ABI y si eso se rompe eso es una regresión.”…””}”hj”sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh MÞhjä ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hXpDe `2012-07-06 `_:: > Ahora esto me ha dejado preguntandome si Debian _inestable_ realmente califica > como espacio de usuario estándar. Oh, si el kernel rompe algún espacio de usuario estándar, eso cuenta. Muchísima gente usa Debian inestable. ”h]”(h¨)”}”(hŒtDe `2012-07-06 `_::”h]”(hŒDe ”…””}”(hj¬hžhhŸNh Nubhè)”}”(hŒo`2012-07-06 `_”h]”hŒ 2012-07-06”…””}”(hj´hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ 2012-07-06”jŠŒ_https://lore.kernel.org/all/CA+55aFwnLJ+0sjx92EGREGTWOx84wwKaraSzpTNJwPVV8edw8g@mail.gmail.com/”uh1hçhj¬ubj)”}”(hŒb ”h]”h}”(h]”Œid10”ah ]”h"]”Œ 2012-07-06”ah$]”h&]”Œrefuri”jÄuh1jj™Khj¬ubhŒ:”…””}”(hj¬hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Máhj¨ubj=)”}”(hŒå> Ahora esto me ha dejado preguntandome si Debian _inestable_ realmente califica > como espacio de usuario estándar. Oh, si el kernel rompe algún espacio de usuario estándar, eso cuenta. Muchísima gente usa Debian inestable.”h]”hŒå> Ahora esto me ha dejado preguntandome si Debian _inestable_ realmente califica > como espacio de usuario estándar. Oh, si el kernel rompe algún espacio de usuario estándar, eso cuenta. Muchísima gente usa Debian inestable.”…””}”hjÜsbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh Mãhj¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubjm)”}”(hX¤ De `2019-09-15 `_:: Una reversión _en particular_ en el último minuto en el último commit (no teniendo en cuenta el propio cambio de versión) justo antes de la liberación, y aunque es bastante incómodo, quizás también es instructivo. Lo que es instructivo sobre esto es que he revertido un commit que no tenía ningún error. De hecho, hacía exactamente lo que pretendía, y lo hacía muy bien. De hecho lo hacía _tan_ bien que los muy mejorados patrones de IO que causaba han acabado revelando una regresión observable desde el espacio de usuario, debido a un error real en un componente no relacionado en absoluto. De todas maneras, los detalles actuales de esta regresión no son la razón por la que señalo esto como instructivo. Es más que es un ejemplo ilustrativo sobre lo que cuenta como una regresión, y lo que conlleva la regla del kernel de "no regresiones". El commit que ha sido revertido no cambiaba ninguna API, y no introducía ningún error nuevo en el código. Pero acabó exponiendo otro problema, y como eso causaba que la actualización del kernel fallara para el usuario. Así que ha sido revertido. El foco aquí, es que hemos hecho la reversión basándonos en el comportamiento reportado en el espacio de usuario, no basado en conceptos como "cambios de ABI" o "provocaba un error". Los mejores patrones de IO que se han presentado debido al cambio únicamente han expuesto un viejo error, y la gente ya dependía del benigno comportamiento de ese viejo error. Y que no haya miedo, reintroduciremos el arreglo que mejoraba los patrones de IO una vez hayamos decidido cómo gestionar el hecho de que hay una interacción incorrecta con un interfaz en el que la gente dependía de ese comportamiento previo. Es únicamente que tenemos que ver cómo gestionamos y cómo lo hacemos (no hay menos de tres parches diferentes de tres desarrolladores distintos que estamos evaluando, ... puede haber más por llegar). Mientras tanto, he revertido lo que exponía el problema a los usuarios de esta release, incluso cuando espero que el fix será reintroducido (quizás insertado a posteriormente como un parche estable) una vez lleguemos a un acuerdo sobre cómo se ha de exponer el error. Lo que hay que recordar de todo el asunto no es sobre si el cambio de kernel-espacio-de-usuario ABI, o la corrección de un error, o si el código antiguo "en primer lugar nunca debería haber estado ahí". Es sobre si algo rompe el actual flujo de trabajo del usuario. De todas formas, esto era mi pequeña aclaración en todo este tema de la regresión. Ya que es la "primera regla de la programación del kernel", me ha parecido que quizás es bueno mencionarlo de vez en cuando.”h]”(h¨)”}”(hŒuDe `2019-09-15 `_::”h]”(hŒDe ”…””}”(hjôhžhhŸNh Nubhè)”}”(hŒp`2019-09-15 `_”h]”hŒ 2019-09-15”…””}”(hjühžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ 2019-09-15”jŠŒ`https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/”uh1hçhjôubj)”}”(hŒc ”h]”h}”(h]”Œid11”ah ]”h"]”Œ 2019-09-15”ah$]”h&]”Œrefuri”j uh1jj™KhjôubhŒ:”…””}”(hjôhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mêhjðubj=)”}”(hX Una reversión _en particular_ en el último minuto en el último commit (no teniendo en cuenta el propio cambio de versión) justo antes de la liberación, y aunque es bastante incómodo, quizás también es instructivo. Lo que es instructivo sobre esto es que he revertido un commit que no tenía ningún error. De hecho, hacía exactamente lo que pretendía, y lo hacía muy bien. De hecho lo hacía _tan_ bien que los muy mejorados patrones de IO que causaba han acabado revelando una regresión observable desde el espacio de usuario, debido a un error real en un componente no relacionado en absoluto. De todas maneras, los detalles actuales de esta regresión no son la razón por la que señalo esto como instructivo. Es más que es un ejemplo ilustrativo sobre lo que cuenta como una regresión, y lo que conlleva la regla del kernel de "no regresiones". El commit que ha sido revertido no cambiaba ninguna API, y no introducía ningún error nuevo en el código. Pero acabó exponiendo otro problema, y como eso causaba que la actualización del kernel fallara para el usuario. Así que ha sido revertido. El foco aquí, es que hemos hecho la reversión basándonos en el comportamiento reportado en el espacio de usuario, no basado en conceptos como "cambios de ABI" o "provocaba un error". Los mejores patrones de IO que se han presentado debido al cambio únicamente han expuesto un viejo error, y la gente ya dependía del benigno comportamiento de ese viejo error. Y que no haya miedo, reintroduciremos el arreglo que mejoraba los patrones de IO una vez hayamos decidido cómo gestionar el hecho de que hay una interacción incorrecta con un interfaz en el que la gente dependía de ese comportamiento previo. Es únicamente que tenemos que ver cómo gestionamos y cómo lo hacemos (no hay menos de tres parches diferentes de tres desarrolladores distintos que estamos evaluando, ... puede haber más por llegar). Mientras tanto, he revertido lo que exponía el problema a los usuarios de esta release, incluso cuando espero que el fix será reintroducido (quizás insertado a posteriormente como un parche estable) una vez lleguemos a un acuerdo sobre cómo se ha de exponer el error. Lo que hay que recordar de todo el asunto no es sobre si el cambio de kernel-espacio-de-usuario ABI, o la corrección de un error, o si el código antiguo "en primer lugar nunca debería haber estado ahí". Es sobre si algo rompe el actual flujo de trabajo del usuario. De todas formas, esto era mi pequeña aclaración en todo este tema de la regresión. Ya que es la "primera regla de la programación del kernel", me ha parecido que quizás es bueno mencionarlo de vez en cuando.”h]”hX Una reversión _en particular_ en el último minuto en el último commit (no teniendo en cuenta el propio cambio de versión) justo antes de la liberación, y aunque es bastante incómodo, quizás también es instructivo. Lo que es instructivo sobre esto es que he revertido un commit que no tenía ningún error. De hecho, hacía exactamente lo que pretendía, y lo hacía muy bien. De hecho lo hacía _tan_ bien que los muy mejorados patrones de IO que causaba han acabado revelando una regresión observable desde el espacio de usuario, debido a un error real en un componente no relacionado en absoluto. De todas maneras, los detalles actuales de esta regresión no son la razón por la que señalo esto como instructivo. Es más que es un ejemplo ilustrativo sobre lo que cuenta como una regresión, y lo que conlleva la regla del kernel de "no regresiones". El commit que ha sido revertido no cambiaba ninguna API, y no introducía ningún error nuevo en el código. Pero acabó exponiendo otro problema, y como eso causaba que la actualización del kernel fallara para el usuario. Así que ha sido revertido. El foco aquí, es que hemos hecho la reversión basándonos en el comportamiento reportado en el espacio de usuario, no basado en conceptos como "cambios de ABI" o "provocaba un error". Los mejores patrones de IO que se han presentado debido al cambio únicamente han expuesto un viejo error, y la gente ya dependía del benigno comportamiento de ese viejo error. Y que no haya miedo, reintroduciremos el arreglo que mejoraba los patrones de IO una vez hayamos decidido cómo gestionar el hecho de que hay una interacción incorrecta con un interfaz en el que la gente dependía de ese comportamiento previo. Es únicamente que tenemos que ver cómo gestionamos y cómo lo hacemos (no hay menos de tres parches diferentes de tres desarrolladores distintos que estamos evaluando, ... puede haber más por llegar). Mientras tanto, he revertido lo que exponía el problema a los usuarios de esta release, incluso cuando espero que el fix será reintroducido (quizás insertado a posteriormente como un parche estable) una vez lleguemos a un acuerdo sobre cómo se ha de exponer el error. Lo que hay que recordar de todo el asunto no es sobre si el cambio de kernel-espacio-de-usuario ABI, o la corrección de un error, o si el código antiguo "en primer lugar nunca debería haber estado ahí". Es sobre si algo rompe el actual flujo de trabajo del usuario. De todas formas, esto era mi pequeña aclaración en todo este tema de la regresión. Ya que es la "primera regla de la programación del kernel", me ha parecido que quizás es bueno mencionarlo de vez en cuando.”…””}”hj$sbah}”(h]”h ]”h"]”h$]”h&]”jLjMuh1j<hŸhØh Míhjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jlhj@ ubeh}”(h]”h ]”h"]”h$]”h&]”jójôuh1j¸hŸhØh MÌhj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hŸhØh MÌhj hžhubeh}”(h]”Œ citas-de-linus-sobre-regresiones”ah ]”h"]”Œ citas de linus sobre regresiones”ah$]”h&]”uh1j#hjøhžhhŸhØh MÆubeh}”(h]”ŒNdetalles-importantes-para-desarrolladores-en-la-regresiones-de-kernel-de-linux”ah ]”h"]”ŒNdetalles importantes para desarrolladores en la regresiones de kernel de linux”ah$]”h&]”uh1j#hj%hžhhŸhØh K=ubeh}”(h]”(Œgestion-de-regresiones”j"eh ]”h"]”(Œgestión de regresiones”Œsp_handling_regressions”eh$]”h&]”uh1j#hhhžhhŸhØh KŒexpect_referenced_by_name”}”jZjsŒexpect_referenced_by_id”}”j"jsubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hØuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(j(NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j„Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hØŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”j"]”jasŒnameids”}”(jZj"jYjVjõjòj•j’jQjNjôjñj`j]j4j1jìjéj+j(j:j7jÔjÑj#j j j jqjnjØjÕjÿjüj& j# j‘ jŽ j\ jY j~ j{ j¸ jµ jß jÜ j j j… j‚ j j j» j¸ jÝ jÚ jÿ jü jIjFj¢ jŸ jê jç j2 j/ jz jw j j¿ j jjHjEj†jƒjÎjËjjuŒ nametypes”}”(jZˆjY‰jõ‰j•ˆjQ‰jô‰j`‰j4‰jì‰j+‰j:‰jÔ‰j#‰j ‰jq‰j؉jÿ‰j& ‰j‘ ‰j\ ˆj~ ˆj¸ ‰jß ‰j ‰j… ‰j ‰j» ˆjÝ ˆjÿ ˆjI‰j¢ ˆjê ˆj2 ˆjz ˆj ˆj ˆjHˆj†ˆjΈjˆuh}”(j"j%jVj%jòjVj’jŒjNjøjñj j]jjJjDj1jcjéj7j(j÷j7jjÑj=j j×j j.jnj?jÕjtjüjÛj# j jŽ j) jY jS j{ ju jµ j” jÜ j» j jâ j‚ j j jˆ j¸ j² jÚ jÔ jü jö jFj jŸ j™ jç já j/ j) jw jq j¿ j¹ jjjEj?jƒj}jËjÅjj uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”j’K s…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”h¨)”}”(hŒ:Duplicate explicit target name: "regression mailing list".”h]”hŒ>Duplicate explicit target name: “regression mailing listâ€.”…””}”(hjìhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hjéubah}”(h]”h ]”h"]”h$]”h&]”jJaŒlevel”KŒtype”ŒINFO”Œsource”hØŒline”Kuh1jçhjhžhhŸhØh KHubaŒtransform_messages”]”jè)”}”(hhh]”h¨)”}”(hhh]”hŒ=Hyperlink target "sp-handling-regressions" is not referenced.”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”uh1h§hjubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jŒsource”hØŒline”Kuh1jçubaŒ transformer”NŒ include_log”]”ŒADocumentation/translations/sp_SP/process/handling-regressions.rst”(NNNNt”†”aŒ decoration”Nhžhub.