From nobody Mon Feb 9 19:42:33 2026 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2047.outbound.protection.outlook.com [40.107.243.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FC2F12DDBF; Tue, 5 Mar 2024 22:19:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709677177; cv=fail; b=eJFz0D6ntHqfoDopD0pNR8+53gRroX7ERcJecJnL5vZoymgLuICzjs+1dcvn93nPWYYoZ6m5h5Wj5i7xTviypN1EelIS2P0AGOXoNAiqfgQL937bpwVpdKfU/+DvLKkshmktfb7CF0pndfzEWHlRsVckZjwR/uzp4cFHfwHY0pI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709677177; c=relaxed/simple; bh=LhrufpR/yZM0v9fylAyS0qOMYqCkgRfP0kbofegZSqA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Fnq5WO7zdP6kPQNJopXXpljisBSKjoohQe+V7BD3Z4fmf8oPNswQRBy840KfmpfXlLlKofgPxPD+dLT+j/kGTmwb6mjWBsv4aDPAhODxagVaJbMBH3O8vMy5C7DxbiyqiYmhCWjRYoBvZ3YnJxsLb6bX4FwA4iF9r5VXjMAA6MU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=wQRsmo+z; arc=fail smtp.client-ip=40.107.243.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="wQRsmo+z" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lNlkWzWadyBCunpoS35IN+uBj1X8Y9QoTEP9DqTCXrXOvWvRvtsfC6N5Uk8fPBWSjBoLCwQlc1DvydIBfG4+SAHF3blAMQrrqE4wBvGhD3PFzDuOQ7WdP4AmR5Zq46CwAi3bOfC0nMw7GA/LX8tK5P3Y9sEIK4w0BG66w14XP/d3aTCMgWWvkrmErTI9g+IyrSGVnubNAT7xrxwx0WegpO3+gUpCGJ+V5GhBTrA4XIfLDSj0qDb3rhDN0sWq5Fty7u4ywR+C8ZkEZpV5/bdJMzeKhCvEtjwgs/hqil7Vefn1QbkRfwzznbhSlATCM6/qpgcnuSAFoKqoDibNOInqeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RDtO+SUJBnJFqyZz2FK7IyT9Pb+9/gborxjjkDRcGe0=; b=S4YksvU6ihKYoInPIBPrj9ygpYtktMGNnKoGnvvLFLZnx7wy/v45gLO/E2ek5DHFmcFpzpGh/nlAivXW+veN2KCSIHrP4WrPKCxbnrU5rYm5Sj5F7yxgEB2eMKgViuCyoNW22mdcXtD6nsKRQ7dLIb/f8DnUWGCWwMgbFwhqbNA2DsUZfXDVFxOoq9T0MofCEBK6+YzhrqTZtmqiMbMv8Du/qHOXFrgfPY9P9Dnhwf38fZDi7tC3Q6um52nU/ESs22fDD3dbiNxd7RiQUXUZNqb+1sR35Gz6bLitx+cn9Z2mfjtZ+r1Ia/jMvog+bK8kQNJJ/VCZsdV4lpTJu7CnBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RDtO+SUJBnJFqyZz2FK7IyT9Pb+9/gborxjjkDRcGe0=; b=wQRsmo+zWSebPjh8fJS0f6gcYJ4wRNwpvkXvKpMQL67rMyWeScnPVlu3z5Zdg5+S26NqCVbPDSZemDm5zW0NNm2JZZWEQDikxwiLLRympepCtXL1HJf2oOcayfnvhDJdzg1C/NOexvOO39wQ98KxEBCMnVsE34NEf2Qx6ed1re4= Received: from CH2PR03CA0016.namprd03.prod.outlook.com (2603:10b6:610:59::26) by DM4PR12MB5843.namprd12.prod.outlook.com (2603:10b6:8:66::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.39; Tue, 5 Mar 2024 22:19:30 +0000 Received: from CH1PEPF0000AD83.namprd04.prod.outlook.com (2603:10b6:610:59:cafe::e1) by CH2PR03CA0016.outlook.office365.com (2603:10b6:610:59::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.39 via Frontend Transport; Tue, 5 Mar 2024 22:19:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CH1PEPF0000AD83.mail.protection.outlook.com (10.167.244.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7362.11 via Frontend Transport; Tue, 5 Mar 2024 22:19:29 +0000 Received: from titanite-d354host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 5 Mar 2024 16:19:28 -0600 From: Avadhut Naik To: CC: , , , Subject: [PATCH 4/4] docs/sp_SP: Add translation of process/2.Process.rst Date: Tue, 5 Mar 2024 16:18:39 -0600 Message-ID: <20240305221839.2764380-5-avadhut.naik@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240305221839.2764380-1-avadhut.naik@amd.com> References: <20240305221839.2764380-1-avadhut.naik@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD83:EE_|DM4PR12MB5843:EE_ X-MS-Office365-Filtering-Correlation-Id: 77e27ff4-7174-4f0a-2365-08dc3d625346 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e1Z/ZhdP2iq09B+IyDQrtCbrd/4FmBYVIFsZmw2mAHwaixQeW2XgklbWsg6hyXAec8TVdMY8ij1u40QKXXx3ZLl3Vb9BYMI9ZX5tbUm2aGU7YaUX5+G2KW83LmKiyr1yTrpMqzhGiDPrkEKJjsncBAf120koXqxC3ve1+Ab7/KSVHVdd0wWBUEmlPlm9Zo3ujxqT0k7ZaEu/Vawb6NOPdLdEV1tmyqutGaBWC87OV3C+DemiDBu7zt4Iofg8LEZUEtXX+oGWDLNqehXeNrAWS81fvPgAB3FcKpPmHIQgtu0vhgy0PAYqcVCHc1XYRW1s7mAPEibIZwVpk81LW2vxwSX4/xKFcsdd8H6CqaQCojGei27hQ9Rz9+bFFA5e2V2qViSMePGB7XluSmcdlHifvZ3s3cZwtojwgZhyleLgKm07RH3mDwS9092Tt/Fd3iH1fe2xzoFXv6HBZ2kklaJYcBV4+icBVA7Vqv3J/B6RcumaFPfbgMY8Kp8khUCP5rgDxAXULpJCSMa5JFQBXJjdvRKDoiWVkWKR+EVLFfRLSf81q4hJkdLtXEMnh5gOuQT5+vy0LvMOYnvL2OnPkNehTsyEfpMt+U3Khp/K0f/w90Cdzd9RhuFA5GUsAfCyyfrXK88xDDJCNhDgSTF/c6hY+WxydzF4dHYZWcrQfpZWxeWfoO4HlUVFowLvtv/IfAcWhnm9147LCD7l8dMJmkkB1w== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:es;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(36860700004)(376005)(82310400014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2024 22:19:29.2337 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 77e27ff4-7174-4f0a-2365-08dc3d625346 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD83.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5843 Translate Documentation/process/2.Process.rst into Spanish Signed-off-by: Avadhut Naik Reviewed-by: Carlos Bilbao --- .../translations/sp_SP/process/2.Process.rst | 535 +++++++++++++++++- .../sp_SP/process/development-process.rst | 1 + 2 files changed, 534 insertions(+), 2 deletions(-) diff --git a/Documentation/translations/sp_SP/process/2.Process.rst b/Docum= entation/translations/sp_SP/process/2.Process.rst index 768c43dfd805..5993eed71563 100644 --- a/Documentation/translations/sp_SP/process/2.Process.rst +++ b/Documentation/translations/sp_SP/process/2.Process.rst @@ -1,11 +1,542 @@ .. include:: ../disclaimer-sp.rst =20 :Original: Documentation/process/2.Process.rst +:Translator: Avadhut Naik =20 .. _sp_development_process: =20 C=C3=B3mo funciona el proceso de desarrollo =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 -.. warning:: - TODO a=C3=BAn no traducido +El desarrollo del kernel de Linux a principios de la d=C3=A9cada de 1990 f= ue +un asunto relajado, con un n=C3=BAmero relativamente peque=C3=B1o de usuar= ios y +desarrolladores involucrados. Con una base de usuarios en los millones y +alrededor de 2,000 desarrolladores involucrados durante un a=C3=B1o, el ke= rnel +ha tenido que adaptar varios procesos para mantener el desarrollo sin +problemas. Se requiere una comprensi=C3=B3n solida de c=C3=B3mo funciona e= l proceso +para ser una parte efectiva del mismo. + +El panorama general +------------------- + +Los desarrolladores del kernel utilizan un proceso de lanzamiento basado +en el tiempo de manera flexible, con uno nuevo lanzamiento principal del +kernel ocurriendo cada dos o tres meses. El historial reciente de +lanzamientos se ve as=C3=AD: + + =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + 5.0 Marzo 3, 2019 + 5.1 Mayo 5, 2019 + 5.2 Julio 7, 2019 + 5.3 Septiembre 15, 2019 + 5.4 Noviembre 24, 2019 + 5.5 Enero 6, 2020 + =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D + +Cada lanzamiento 5.x es un lanzamiento principal del kernel con nuevas +caracter=C3=ADsticas, cambios internos en la API y m=C3=A1s. Un lanzamient= o t=C3=ADpico +puede contener alrededor de 13,000 conjuntos de cambios incluyendo en +varias centenas de miles de l=C3=ADneas de c=C3=B3digo. 5.x es la vanguard= ia del +desarrollo del kernel de Linux; el kernel utiliza un modelo de desarrollo +continuo que est=C3=A1 integrando continuamente cambios importantes. + +Se sigue una disciplina relativamente sencilla con respecto a la fusi=C3= =B3n +de parches para cada lanzamiento. Al comienzo de cada ciclo de desarrollo, +se dice que la "merge window" (ventana de fusi=C3=B3n) est=C3=A1 abierta. = En ese +momento, el c=C3=B3digo que se considera lo suficientemente estable (y que= es +aceptado por la comunidad de desarrollo) se fusiona en el kernel mainline. +La mayor parte de los cambios para un nuevo ciclo de desarrollo (y todos +los cambios principales) se fusionar=C3=A1n durante este tiempo, a un ritmo +cercano a los 1,000 cambios (=E2=80=9Cparches=E2=80=9D o =E2=80=9Cconjunto= s de cambios=E2=80=9D) por +d=C3=ADa. + +(Aparte, vale la pena se=C3=B1alar que los cambios integrados durante la +ventana de fusi=C3=B3n no surgen de la nada; han sido recolectados, probad= os +y montados con anticipaci=C3=B3n. Como funciona ese proceso se describir= =C3=A1 en +detalle m=C3=A1s adelante). + +La ventana de fusi=C3=B3n dura aproximadamente dos semanas. Al final de es= te +tiempo, Linux Torvalds declarar=C3=A1 que la ventana est=C3=A1 cerrada y p= ublicar=C3=A1 +el primero de los kernels =E2=80=9Crc=E2=80=9D. Para el kernel destinado a= ser 5.6, por +ejemplo, el lanzamiento al final de la ventana de fusi=C3=B3n se llamar=C3= =A1 +5.6-rc1. El lanzamiento -rc1 se=C3=B1ala que el tiempo para fusionar nuevas +caracter=C3=ADsticas ha pasado y que el tiempo para estabilizar el siguien= te +kernel ha comenzado. + +Durante las pr=C3=B3ximas seis a diez semanas, solo los parches que soluci= onen +problemas deben enviarse al mainline. En ocasiones, se permitir=C3=A1 un c= ambio +m=C3=A1s significativo, pero tales ocasiones son raras; los desarrolladore= s que +intentan fusionar nuevas caracter=C3=ADsticas fuera de la ventana de fusi= =C3=B3n +suelen recibir una recepci=C3=B3n poco amistosa. Como regla general, si se +pierde la ventana de fusi=C3=B3n de una caracter=C3=ADstica determinada, l= o mejor +que puede hacer es esperar al siguiente ciclo de desarrollo. (Se hace una +excepci=C3=B3n ocasional para los drivers de hardware que no se admit=C3= =ADa +anteriormente; si no afectan a ning=C3=BAn c=C3=B3digo en =C3=A1rbol, no p= ueden causar +regresiones y deber=C3=ADa ser seguro agregarlos en cualquier momento). + +A medida que las correcciones se abren paso en el mainline, la tasa de +parches se ralentizar=C3=A1 con el tiempo. Linus lanza nuevos kernels -rc +aproximadamente una vez a la semana; una serie normal llegar=C3=A1 a alg= =C3=BAn +punto entre -rc6 y -rc9 antes de que se considere que el kernel es +suficientemente estable y realice el lanzamiento final. En ese momento, +todo el proceso vuelve a empezar. + +Como ejemplo, as=C3=AD fue el ciclo de desarrollo de 5.4 (todas las fechas= son +de 2019): + + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D + Septiembre 15 5.3 lanzamiento estable + Septiembre 30 5.4-rc1, la ventana de fusion se cierra + Octubre 6 5.4-rc2 + Octubre 13 5.4-rc3 + Octubre 20 5.4-rc4 + Octubre 27 5.4-rc5 + Noviembre 3 5.4-rc6 + Noviembre 10 5.4-rc7 + Noviembre 17 5.4-rc8 + Noviembre 24 5.4 lanzamiento estable + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D + +=C2=BFC=C3=B3mo deciden los desarrolladores cu=C3=A1ndo cerrar el ciclo de= desarrollo +y crear el lanzamiento estable? La m=C3=A9trica m=C3=A1s significativa uti= lizada +es la lista de regresiones de lanzamientos anteriores. Ningunos errores +son bienvenidos, pero aquellos que rompen sistemas que funcionaron en el +pasado se consideran especialmente graves. Por esta raz=C3=B3n, los parches +que causan regresiones se ven con malos ojos y es bastante probable que +se reviertan durante el periodo de estabilizaci=C3=B3n. + +El objetivo de los desarrolladores es corregir todas las regresiones +conocidas antes de que se realice el lanzamiento estable. En el mundo +real, este tipo de perfecci=C3=B3n es dif=C3=ADcil de lograr; hay demasiad= os +variables en un proyecto de este tama=C3=B1o. Llega un punto en el que +retrasar el lanzamiento final solo empeora el problema; la pila de cambios +que esperan la siguiente ventana de fusi=C3=B3n crecer=C3=A1, creando a=C3= =BAn m=C3=A1s +regresiones la pr=C3=B3xima vez. Por lo tanto, la mayor=C3=ADa de los kern= els 5.x +se lanzan con un punado de regresiones conocidas, aunque, con suerte, +ninguna de ellas es seria. + +Una vez que se realiza un lanzamiento estable, su mantenimiento continuo +se transfiere al =E2=80=9Cequipo estable=E2=80=9D, actualmente encabezado = por Greg +Kroah-Hartman. El equipo estable lanzar=C3=A1 actualizaciones ocasionales = al +lanzamiento estable utilizando el esquema de numeraci=C3=B3n 5.x.y. Para s= er +considerado para un lanzamiento de actualizaci=C3=B3n, un parche debe +(1) corregir un error significativo y (2) ya estar fusionado en el +mainline para el siguiente kernel de desarrollo. Por lo general, los +kernels recibir=C3=A1n actualizaciones estables durante un poco m=C3=A1s d= e un +ciclo de desarrollo despu=C3=A9s de su lanzamiento inicial. As=C3=AD, por = ejemplo, +la historia del kernel 5.2 se ve=C3=ADa as=C3=AD (todas las fechas en 2019= ): + + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + Julio 7 5.2 lanzamiento estable + Julio 14 5.2.1 + Julio 21 5.2.2 + Julio 26 5.2.3 + Julio 28 5.2.4 + Julio 31 5.2.5 + ... ... + Octubre 11 5.2.21 + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +5.2.21 fue la =C3=BAltima actualizaci=C3=B3n estable del lanzamiento 5.2. + +Algunos kernels se designan como kernels =E2=80=9Ca largo plazo=E2=80=9D; = recibir=C3=A1n +soporte durante un periodo m=C3=A1s largo. Consulte el siguiente enlace pa= ra +obtener la lista de versiones activas del kernel a largo plazos y sus +maintainers: + + https://www.kernel.org/category/releases.html + +La selecci=C3=B3n de un kernel para soporte a largo plazo es puramente una +cuesti=C3=B3n de que un maintainer tenga la necesidad y el tiempo para +mantener ese lanzamiento. No hay planes conocidos para ofrecer soporte a +largo plazo para ning=C3=BAn lanzamiento especifico pr=C3=B3ximo. + +Ciclo de vida de un parche +-------------------------- + +Los parches no van directamente desde el teclado del desarrollador al +kernel mainline. Hay, en cambio, un proceso algo complicado (aunque algo +informal) dise=C3=B1ado para garantizar que cada parche sea revisado en cu= anto +a calidad y que cada parche implemente un cambio que es deseable tener en +el mainline. Este proceso puede ocurrir r=C3=A1pidamente para correcciones +menores, o, en el caso de cambios grandes y controvertidos, continuar +durante a=C3=B1os. Gran parte de la frustraci=C3=B3n de los desarrolladore= s proviene +de la falta de compresi=C3=B3n de este proceso o de sus intentos de eludir= lo. + +Con la esperanza de reducir esa frustraci=C3=B3n, este documento describir= =C3=A1 +c=C3=B3mo un parche entra en el kernel. Lo que sigue a continuaci=C3=B3n e= s una +introducci=C3=B3n que describe el proceso de una manera tanto idealizada. = Un +tratamiento mucho m=C3=A1s detallado vendr=C3=A1 en secciones posteriores. + +Las etapas por las que pasa un parche son, generalmente: + + - Dise=C3=B1o. Aqu=C3=AD es donde se establecen los requisitos reales par= a el + parche =E2=80=93 y la forma en que se cumplir=C3=A1n esos requisitos. E= l trabajo + de dise=C3=B1o a menudo se realiza sin involucrar a la comunidad, pero = es + mejor hacer este trabajo de manera abierta si es posible; puede ahorrar + mucho tiempo redise=C3=B1ando las cosas m=C3=A1s tarde. + + - Revisi=C3=B3n inicial. Los parches se publican en la lista de correo + relevante y los desarrolladores en esa lista responden con cualquier + comentario que puedan tener. Este proceso deber=C3=ADa revelar cualquier + problema importante con un parche si todo va bien. + + - Revisi=C3=B3n m=C3=A1s amplia. Cuando el parche se acerca a estar listo= para su + inclusi=C3=B3n en el mainline, debe ser aceptado por un maintainer del + subsistema relevante =E2=80=93 aunque esta aceptaci=C3=B3n no es una ga= rant=C3=ADa de + que el parche llegara hasta el mainline. El parche aparecer=C3=A1 en el + =C3=A1rbol de subsistemas del maintainer y en los =C3=A1rboles -next (d= escritos + a continuaci=C3=B3n). Cuando el proceso funciona, este paso conduce a u= na + revisi=C3=B3n exhaustiva del parche y al descubrimiento de cualquier + problema resultante de la integraci=C3=B3n de este parche con el trabajo + realizado por otros. + + - Tenga en cuenta que la mayor=C3=ADa de los maintainers tambi=C3=A9n tie= nen + trabajos diurnos, por lo que fusionar su parche no puede ser su m=C3=A1= xima + prioridad. Si su parche est=C3=A1 recibiendo comentarios sobre los camb= ios + que se necesitan, deber=C3=ADa realizar esos cambios o justificar por q= u=C3=A9 + no deber=C3=ADan realizarse. Si su parche no tiene quejas de revisi=C3= =B3n, pero + no est=C3=A1 siendo fusionado por el maintainer apropiado del subsistem= a o + del driver, debe ser persistente en la actualizaci=C3=B3n del parche + al kernel actual para que se aplique limpiamente y seguir envi=C3=A1ndo= lo + para su revisi=C3=B3n y fusi=C3=B3n. + + - Fusi=C3=B3n en el mainline. Eventualmente, un parche exitoso se fusiona= r=C3=A1 + en el repositorio mainline administrado por Linux Torvalds. Mas + comentarios y/o problemas pueden surgir en este momento; es importante + que el desarrollador responda a estos y solucione cualquier problema + que surja. + + - Lanzamiento estable. El n=C3=BAmero de usuarios potencialmente afectado= s por + el parche es ahora grande, por lo que, una vez m=C3=A1s, pueden surgir + nuevos problemas. + + - Mantenimiento a largo plazo. Si bien un desarrollador puede olvidarse + del c=C3=B3digo despu=C3=A9s de fusionarlo, ese comportamiento tiende a= dejar + una impresi=C3=B3n negativa en la comunidad de desarrollo. Fusionar el + c=C3=B3digo elimina parte de la carga de mantenimiento; otros soluciona= r=C3=A1n + los problemas causados por los cambios en la API. Sin embargo, el + desarrollador original debe seguir asumiendo la responsabilidad del + c=C3=B3digo si quiere seguir siendo =C3=BAtil a largo plazo. + +Uno de los peores errores cometidos por los desarrolladores del kernel +(o sus empleadores) es tratar de reducir el proceso a un solo paso de +=E2=80=9Cfusi=C3=B3n en el mainline=E2=80=9D. Este enfoque conduce invaria= blemente a la +frustraci=C3=B3n de todos los involucrados. + +C=C3=B3mo se integran los parches en el kernel +----------------------------------------- + +Hay exactamente una persona que puede fusionar parches en el repositorio +mainline del kernel: Linus Torvalds. Pero, por ejemplo, de los m=C3=A1s de +9,500 parches que se incluyeron en el kernel 2.6.38, solo 112 (alrededor +del 1.3%) fueron elegidos directamente por Linus mismo. El proyecto del +kernel ha crecido mucho desde hace tiempo a un tama=C3=B1o en el que ning= =C3=BAn +desarrollador individual podr=C3=ADa inspeccionar y seleccionar todos los +parches sin ayuda. La forma que los desarrolladores del kernel han +abordado este crecimiento es a trav=C3=A9s del uso de un sistema jer=C3=A1= rquico +alrededor de una cadena de confianza. + +La base de c=C3=B3digo del kernel se descompone l=C3=B3gicamente en un con= junto de +subsistemas: redes, soporte de arquitectura especifica, gesti=C3=B3n de +memoria, dispositivos de video, etc. La mayor=C3=ADa de los subsistemas ti= enen +un maintainer designado, un desarrollador que tiene la responsabilidad +general del c=C3=B3digo dentro de ese subsistema. Estos maintainers de +subsistemas son los guardianes (en cierto modo) de la parte del kernel que +gestionan; son los que (usualmente) aceptar=C3=A1n un parche para incluirl= o en +el kernel mainline. + +Cada uno de los maintainers del subsistema administra su propia versi=C3= =B3n +del =C3=A1rbol de fuentes del kernel, generalmente (pero, ciertamente no +siempre) usando la herramienta de administraci=C3=B3n de c=C3=B3digo fuent= e de git. +Herramientas como git (y herramientas relacionadas como quilt o mercurial) +permiten a los maintainers realizar un seguimiento de una lista de +parches, incluida la informaci=C3=B3n de autor=C3=ADa y otros metadatos. En +cualquier momento, el maintainer puede identificar qu=C3=A9 parches de su +repositorio no se encuentran en el mainline. + +Cuando se abre la ventana de fusi=C3=B3n, los maintainers de nivel superior +le pedir=C3=A1n a Linus que =E2=80=9Cextraiga=E2=80=9D los parches que han= seleccionado para +fusionar de sus repositorios. Si Linus est=C3=A1 de acuerdo, el flujo de +parches fluir=C3=A1 hacia su repositorio, convirti=C3=A9ndose en parte del= kernel +mainline. La cantidad de atenci=C3=B3n que Linus presta a los parches +espec=C3=ADficos recibidos en una operaci=C3=B3n de extracci=C3=B3n varia.= Est=C3=A1 claro +que, a veces, examina bastante de cerca. Pero, como regla general, Linus +conf=C3=ADa en que los maintainers del subsistema no env=C3=ADen parches +defectuosos al upstream. + +Los maintainers de subsistemas, a su vez, pueden extraer parches de otros +maintainers. Por ejemplo, el =C3=A1rbol de red se construye a partir de +parches que se acumulan primero en arboles dedicados a drivers de +dispositivos de red, redes inal=C3=A1mbricas, etc. Esta cadena de reposito= rios +puede ser arbitrariamente larga, aunque rara vez supera los dos o tres +enlaces. Dado que cada maintainer de la cadena conf=C3=ADa en los que +administran =C3=A1rboles de nivel inferior, este proceso se conoce como la +=E2=80=9Ccadena de confianza=E2=80=9D. + +Claramente, en un sistema como este, lograr que los parches se integren +en el kernel depende de encontrar el maintainer adecuado. Enviar parches +directamente a Linus no es normalmente la forma correcta de hacerlo. + +=C3=81rboles siguientes (next) +------------------------- + +La cadena de =C3=A1rboles de subsistemas gu=C3=ADa el flujo de parches en = el +kernel, pero tambi=C3=A9n plantea una pregunta interesante: =C2=BFQu=C3=A9= pasa si +alguien quiere ver todos los parches que se est=C3=A1n preparando para la +pr=C3=B3xima ventana de fusi=C3=B3n? Los desarrolladores estar=C3=A1n inte= resados en +saber que otros cambios est=C3=A1n pendientes para ver si hay alg=C3=BAn c= onflicto +del que preocuparse; un parche que cambia un prototipo de funci=C3=B3n del +n=C3=BAcleo del kernel, por ejemplo, entrar=C3=A1 en conflicto con cualqui= er otro +parche que utilice la forma anterior de esa funci=C3=B3n. Los revisores y +probadores quieren tener acceso a los cambios en su forma integrada antes +de que todos esos cambios se integren en el kernel mainline. Uno podr=C3= =ADa +extraer cambios de todos los =C3=A1rboles de subsistemas interesantes, pero +eso ser=C3=ADa un trabajo tedioso y propenso a errores. + +La respuesta viene en forma de =C3=A1rboles -next, donde los =C3=A1rboles = de +subsistemas se recopilan para pruebas y revisiones. El m=C3=A1s antiguo de +estos =C3=A1rboles, mantenido por Andrew Morton, se llama =E2=80=9C-mm=E2= =80=9D (por gesti=C3=B3n +de la memoria, que es como comenz=C3=B3). El =C3=A1rbol =E2=80=9C-mm=E2=80= =9D integra parches +de una larga lista de =C3=A1rboles de subsistemas; tambi=C3=A9n tiene algu= nos +parches destinados a ayudar con la depuraci=C3=B3n. + +M=C3=A1s all=C3=A1 de eso, -mm contiene una colecci=C3=B3n significativa d= e parches +que han sido seleccionados directamente por Andrew. Estos parches pueden +haber sido publicados en una lista de correo o aplicarse a una parte del +kernel para la que no hay un =C3=A1rbol de subsistemas designado. Como +resultado, -mm funciona como una especie de =C3=A1rbol de subsistemas de +=C3=BAltimo recurso; si no hay otro camino obvio para un parche en el main= line, +es probable que termine en -mm. Los parches miscel=C3=A1neos que se acumul= an +en -mm eventualmente se enviar=C3=A1n a un =C3=A1rbol de subsistema apropi= ado o se +enviar=C3=A1n directamente a Linus. En un ciclo de desarrollo t=C3=ADpico, +aproximadamente el 5-10% de los parches que van al mainline llegan all=C3= =AD +a trav=C3=A9s de -mm. + +El parche -mm actual est=C3=A1 disponible en el directorio =E2=80=9Cmmotm= =E2=80=9D (-mm +del momento) en: + + https://www.ozlabs.org/~akpm/mmotm/ + +Sin embargo, es probable que el uso del =C3=A1rbol MMOTM sea una experienc= ia +frustrante; existe una posibilidad definitiva de que ni siquiera se +compile. + +El =C3=A1rbol principal para la fusi=C3=B3n de parches del siguiente ciclo= es +linux-next, mantenido por Stephen Rothwell. El =C3=A1rbol linux-next es, p= or +dise=C3=B1o, una instant=C3=A1nea de c=C3=B3mo se espera que se vea el mai= nline despu=C3=A9s +de que se cierre la siguiente ventana de fusi=C3=B3n. Los =C3=A1rboles lin= ux-next +se anuncian en las listas de correo linux-kernel y linux-next cuando se +ensamblan; Se pueden descargar desde: + + https://www.kernel.org/pub/linux/kernel/next/ + +Linux-next se ha convertido en una parte integral del proceso de +desarrollo del kernel; todos los parches fusionados durante una ventana +de fusi=C3=B3n determinada deber=C3=ADan haber encontrado su camino en lin= ux-next +en alg=C3=BAn momento antes de que se abra la ventana de fusi=C3=B3n. + +=C3=81rboles de staging +------------------ + +El =C3=A1rbol de fuentes del kernel contiene el directorio drivers/staging= /, +donde residen muchos subdirectorios para drivers o sistemas de archivos +que est=C3=A1n en proceso de ser agregados al =C3=A1rbol del kernel. Perma= necen +en drivers/staging mientras a=C3=BAn necesitan m=C3=A1s trabajo; una vez +completados, se pueden mover al kernel propiamente dicho. Esta es una +forma de realizar un seguimiento de los drivers drivers que no est=C3=A1n = a la +altura de la codificaci=C3=B3n o los est=C3=A1ndares de calidad del kernel= de +Linux, pero que las personas pueden querer usarlos y realizar un +seguimiento del desarrollo. + +Greg Kroah-Hartman mantiene actualmente el =C3=A1rbol de staging. Los driv= ers +que aun necesitan trabajo se le env=C3=ADan, y cada driver tiene su propio +subdirectorio en drivers/staging/. Junto con los archivos de origen del +driver, tambi=C3=A9n debe haber un archivo TODO en el directorio. El archi= vo +TODO enumera el trabajo pendiente que el driver necesita para ser aceptado +en el kernel propiamente dicho, as=C3=AD como una lista de personas a las = que +Cc=E2=80=99d para cualquier parche para el driver. Las reglas actuales exi= gen +que los drivers que contribuyen a staging deben, como m=C3=ADnimo, compila= rse +correctamente. + +El staging puede ser una forma relativamente f=C3=A1cil de conseguir nuevos +drivers en el mainline donde, con suerte, llamar=C3=A1n la atenci=C3=B3n d= e otros +desarrolladores y mejorar=C3=A1n r=C3=A1pidamente. Sin embargo, la entrada= en el +staging no es el final de la historia; el c=C3=B3digo que no est=C3=A1 vie= ndo +progreso regular eventualmente ser=C3=A1 eliminado. Los distribuidores tam= bi=C3=A9n +tienden a ser relativamente reacios a habilitar los drivers de staging. +Por lo tanto, el staging es, en el mejor de los casos, una parada en el +camino para hacia convertirse en un apropiado driver del mainline. + +Herramientas +------------ + +Como se puede ver en el texto anterior, el proceso de desarrollo del +kernel depende en gran medida de la capacidad de dirigir colecciones de +parches en varias direcciones. Todo ello no funcionar=C3=ADa tan bien como= lo +hace sin herramientas apropiadamente potentes. Los tutoriales sobre c=C3= =B3mo +usar estas herramientas est=C3=A1n mucho m=C3=A1s all=C3=A1 del alcance de= este +documento, pero hay espacio para algunos consejos. + +Con mucho, el sistema de gesti=C3=B3n de c=C3=B3digo fuente dominante util= izado +por la comunidad del kernel es git. Git es uno de los varios sistemas de +control de versiones distribuidos que se est=C3=A1n desarrollando en la +comunidad de software libre. Est=C3=A1 bien ajustado para el desarrollo de +kernel, ya que funciona bastante bien cuando se trata de grandes +repositorios y grandes cantidades de parches. Tambi=C3=A9n tiene la reputa= ci=C3=B3n +de ser dif=C3=ADcil de aprender y usar, aunque ha mejorado con el tiempo. +Alg=C3=BAn tipo de familiaridad con git es casi un requisito para los +desarrolladores del kernel; incluso si no lo usan para su propio +trabajo, necesitar=C3=A1n git para mantenerse al d=C3=ADa con lo que otros +desarrolladores (y el mainline) est=C3=A1n haciendo. + +Git ahora est=C3=A1 empaquetado por casi todas las distribuciones de Linux. +Hay una p=C3=A1gina de inicio en: + + https://git-scm.com/ + +Esa p=C3=A1gina tiene punteros a documentaci=C3=B3n y tutoriales. + +Entre los desarrolladores de kernel que no usan git, la opci=C3=B3n m=C3= =A1s +popular es casi con certeza Mercurial: + + https://www.selenic.com/mercurial/ + +Mercurial comparte muchas caracter=C3=ADsticas con git, pero proporciona u= na +interfaz que muchos encuentran m=C3=A1s f=C3=A1cil de usar. + +Otra herramienta que vale la pena conocer es Quilt: + + https://savannah.nongnu.org/projects/quilt/ + +Quilt es un sistema de gesti=C3=B3n de parches, en lugar de un sistema de +gesti=C3=B3n de c=C3=B3digo fuente. No rastrea el historial a lo largo del= tiempo; +en cambio, est=C3=A1 orientado al seguimiento de un conjunto especifico de +cambios en relaci=C3=B3n con una base de c=C3=B3digo en evoluci=C3=B3n. Al= gunos de los +principales maintainers de subsistemas utilizan Quilt para gestionar los +parches destinados a ir upstream. Para la gesti=C3=B3n de ciertos tipos de +=C3=A1rboles (por ejemplo, -mm) Quilt es la mejor herramienta para el trab= ajo. + +Listas de correo +---------------- + +Una gran parte del trabajo de desarrollo del kernel de Linux se realiza a +trav=C3=A9s de listas de correo. Es dif=C3=ADcil ser un miembro plenamente= funcional +de la comunidad sin unirse al menos a una lista en alg=C3=BAn parte. Pero = las +listas de correo de Linux tambi=C3=A9n representan un peligro potencial pa= ra +los desarrolladores, que corren el riesgo de quedar enterrados bajo una +carga de correo electr=C3=B3nico, incumplir las convenciones utilizadas en= las +listas de Linux, o ambas cosas. + +La mayor=C3=ADa de las listas de correo del kernel se ejecutan en +vger.kernel.org; la lista principal se puede encontrar en: + + http://vger.kernel.org/vger-lists.html + +Sim embargo, hay listas alojadas en otros lugares; varios de ellos se +encuentran en redhat.com/mailman/listinfo. + +La lista de correo principal para el desarrollo del kernel es, por +supuesto, linux-kernel. Esta lista es un lugar intimidante; el volumen +puede alcanzar 500 mensajes por d=C3=ADa, la cantidad de ruido es alta, la +conversaci=C3=B3n puede ser muy t=C3=A9cnica y los participantes no siempr= e se +preocupan por mostrar un alto grado de cortes=C3=ADa. Pero no hay otro lug= ar +donde la comunidad de desarrollo del kernel se re=C3=BAna como un todo; los +desarrolladores que eviten esta lista se perder=C3=A1n informaci=C3=B3n im= portante. + +Hay algunos consejos que pueden ayudar a sobrevivir en el kernel de Linux: + +- Haga que la lista se entregue en una carpeta separada, en lugar de su + buz=C3=B3n principal. Uno debe ser capaz de ignorar el flujo durante + periodos prolongados. + +- No trate de seguir cada conversaci=C3=B3n, nadie lo hace. Es importante + filtrar tanto por el tema de inter=C3=A9s (aunque tenga en cuenta que las + conversaciones prolongadas pueden alejarse del asunto original sin + cambiar la l=C3=ADnea de asunto del correo electr=C3=B3nico) por las per= sonas + que participan. + +- No alimente a los trolls. Si alguien est=C3=A1 tratando de provocar una + respuesta de enojo, ign=C3=B3relos. + +- Al responder al correo electr=C3=B3nico del kernel de Linux (o al de otr= as + listas) conserve el encabezado Cc: para todos los involucrados. En + ausencia de una raz=C3=B3n solida (como una solicitud expl=C3=ADcita), n= unca debe + eliminar destinarios. Aseg=C3=BArese siempre de que la persona a la que = est=C3=A1 + respondiendo est=C3=A9 en la lista Cc:. Esta convenci=C3=B3n tambi=C3=A9= n hace que no + sea necesario solicitar expl=C3=ADcitamente que se le copie en las respu= estas + a sus publicaciones. + +- Busque en los archivos de la lista (y en la red en su conjunto) antes + de hacer preguntas. Algunos desarrolladores pueden impacientarse con + las personas que claramente no han hecho sus deberes. + +- Utilice respuestas intercaladas (=E2=80=9Cen l=C3=ADnea=E2=80=9D), lo qu= e hace que su + respuesta sea m=C3=A1s f=C3=A1cil de leer. (Es decir, evite top-posting = =E2=80=93 la + pr=C3=A1ctica de poner su respuesta encima del texto citado al que est= =C3=A1 + respondiendo.) Para obtener m=C3=A1s informaci=C3=B3n, consulte + :ref:`Documentation/translations/sp_SP/process/submitting-patches.rst `. + +- Pregunte en la lista de correo correcta. linux-kernel puede ser el + punto de encuentro general, pero no es el mejor lugar para encontrar + desarrolladores de todos los subsistemas. + +El =C3=BAltimo punto, encontrar la lista de correo correcta, es una fuente +com=C3=BAn de errores para desarrolladores principiantes. Alguien que haga +una pregunta relacionada con las redes en linux-kernel seguramente +recibir=C3=A1 una surgencia educada para preguntar en la lista de netdev e= n su +lugar, ya que esa es la lista frecuentada por la mayor=C3=ADa de los +desarrolladores de redes. Existen otras listas para los subsistemas SCSI, +video4linux, IDE, sistema de archivos, etc. El mejor lugar para buscar +listas de correo es en el archivo MAINTAINERS incluido con el c=C3=B3digo +fuente del kernel. + +Comenzar con el desarrollo del kernel +------------------------------------- + +Las preguntas sobre como comenzar con el proceso de desarrollo del kernel +son comunes, tanto de individuos como de empresas. Igualmente comunes son +los pasos en falso que hacen que el comienzo de la relaci=C3=B3n sea m=C3= =A1s +dif=C3=ADcil de lo que tiene que ser. + +Las empresas a menudo buscan contratar desarrolladores conocidos para +iniciar un grupo de desarrollo. De hecho, esta puede ser una t=C3=A9cnica +efectiva. Pero tambi=C3=A9n tiende a ser caro y no hace mucho para crecer = el +grupo de desarrolladores de kernel experimentados. Es posible poner al +d=C3=ADa a los desarrolladores internos en el desarrollo de kernel de Linu= x, +dada la inversi=C3=B3n de alg=C3=BAn tiempo. Tomarse este tiempo puede dot= ar a un +empleador de un grupo de desarrolladores que comprendan tanto el kernel +como la empresa, y que tambi=C3=A9n puedan ayudar a educar a otros. A medio +plazo, este es a menudo el enfoque m=C3=A1s rentable. + +Los desarrolladores individuales, a menudo, comprensiblemente, no tienen +un lugar para empezar. Comenzar con un proyecto grande puede ser +intimidante; a menudo uno quiere probar las aguas con algo m=C3=A1s peque= =C3=B1o +primero. Este es el punto en el que algunos desarrolladores se lanzan a +la creaci=C3=B3n de parches para corregir errores ortogr=C3=A1ficos o prob= lemas +menores de estilo de codificaci=C3=B3n. Desafortunadamente, dicho parches +crean un nivel de ruido que distrae a la comunidad de desarrollo en su +conjunto, por lo que, cada vez m=C3=A1s, se los mira con desprecio. Los nu= evos +desarrolladores que deseen presentarse a la comunidad no recibir=C3=A1n la +recepci=C3=B3n que desean por estos medios. + +Andrew Morton da este consejo (traducido) para los aspirantes a +desarrolladores de kernel. + +:: + + El proyecto #1 para los principiantes en el kernel seguramente deber=C3= =ADa + ser =E2=80=9Caseg=C3=BArese de que el kernel funcione perfectamente en to= do momento + en todas las m=C3=A1quinas que pueda conseguir=E2=80=9D. Por lo general, = la forma + de hacer esto es trabajar con otros para arreglar las cosas (=C2=A1esto + puede requerir persistencia!), pero eso est=C3=A1 bien, es parte del + desarrollo del kernel. + +(https://lwn.net/Articles/283982/) + +En ausencia de problemas obvios que solucionar, se aconseja a los +desarrolladores que consulten las listas actuales de regresiones y errores +abiertos en general. Nunca faltan problemas que necesitan soluci=C3=B3n; al +abordar estos problemas, los desarrolladores ganar=C3=A1n experiencia con = el +proceso mientras, al mismo tiempo, se ganar=C3=A1n el respeto del resto de= la +comunidad de desarrollo. diff --git a/Documentation/translations/sp_SP/process/development-process.r= st b/Documentation/translations/sp_SP/process/development-process.rst index 17fb168418ac..40d74086f22e 100644 --- a/Documentation/translations/sp_SP/process/development-process.rst +++ b/Documentation/translations/sp_SP/process/development-process.rst @@ -24,3 +24,4 @@ para entenderla. :maxdepth: 2 =20 1.Intro + 2.Process --=20 2.34.1