Seguí las instrucciones en
.overrides/update-python-version.rst
En la instrucción acerca de hacer el update del submódulo de cpython usé el hash
a86632f7ea8cc77af770b33f60124ca767698c7
, que era el último commit en la rama 3.13. Ya pasaron varios días ya, así que está viejito. El último commit en esa rama al escribir esto este texto esc2c18acc3db031647fce06c4e1701ec0303e309c
.Usé Python 3.11, que es lo que estamos usando en CI también, para no introducir más variables al proceso.
Un par de archivos en
.overrides
necesitaron un par de cambios para usar un nuevo rolpypi
en vez de links directos a pypi.org (ver más abajo).Sofide reportó dos problemas en Telegram (https://t.me/python_docs_es/22678):
- El problema #1 se soluciona con un ajuste al
conf.py
(ver más abajo) - Durante un tiempo fui modificando mi instalación de Sphinx para poder evitar el problema #2,
pero cuando trabajé en python/python-docs-es#2875 me di cuenta
que parte de la culpa era nuestra, y que podíamos resolver el problema
definiendo
app.srcdir
para que fuera unPath
tabmién. El cambio ya está hecho como parte de ese PR, y ya está mergeado en 3.12. En resumen, éste ya no es un problema.
- El problema #1 se soluciona con un ajuste al
Un inconveniente que encontré fue que la ejecución del paso
sphinx-intl
era demasiado lenta. El programa usaba sólo un CPU, ejecutándose de forma serial por sobre todos los archivos. Cada archivo puede ser procesado de forma independiente, por lo que era posible acelerar el proceso. Abrí sphinx-doc/sphinx-intl#110 con los cambios necesarios para que sphinx-intl ejecutara el update en paralelo. El PR fue aceptado, y una nueva versión de la herramienta fue publicada. En resumen, ahora el paso cuando se ejecutasphinx-intl
es más rápido de lo que solía ser.Otro problema que encontré durante este proceso fue que el archivo
library/re.po
era inválido, ya que había una entradamsgstr
donde el string que lo seguía no estaba bien delimitado por comillas dobles (msgstr * (asterisco)"
en vez demsgstr "* (asterisco)"
). Todos los detalles acá: python/python-docs-es#2873. Esto me llevó en una cruzada por powrap, polib, y babel para solucionar distintos aspectos de este problema:- powrap: https://git.afpy.org/AFPy/powrap/pulls/4 (nueva versión ya publicada con el fix)
- polib (usado por pospell, sphinx-lint): izimobil/polib#161 (aún sin respuesta)
- babel (usado por sphinx): python-babel/babel#1151
De todas maneras el archivo ya está arreglado. Sigo pendiente a que polib y babel mergeen el fix y publiquen nuevas versiones.
Idea: en vez de generar los archivos .pot en ../python-docs-es los generamos en cpython/python-doc-es, y actualizamos las instrucciones que los generan y los usan (SPHINX_GETTEXT=True sphinx-build ... y sphinx-intl ...), ya no es necesario el siguiente paso donde se ejecuta el comando sed para actualizar las líneas en los .po apuntando a los archivos fuente.
Diff a requirements.txt
diff --git a/requirements.txt b/requirements.txt
index 52096aab..e8d74127 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,14 +1,14 @@
-docutils==0.20.1
+docutils==0.21.2
pip
-Sphinx==7.2.6
+sphinx~=8.1.0
blurb
-Pygments==2.16.1
+Pygments>=2.17
PyICU
polib
pospell>=1.1
potodo
powrap
-python-docs-theme>=2022.1
+python-docs-theme>=2023.3.1,!=2023.7
setuptools
sphinx-intl>=2.3.0
pre-commit
@@ -16,4 +16,6 @@ sphinx-autorun
sphinxemoji
sphinx-tabs==3.4.5
sphinx-lint==0.7.0
+sphinxext-opengraph~=0.9.0
+sphinx-notfound-page~=1.0.0
tabulate
Diff a Makefile
diff --git a/Makefile b/Makefile
index 581a2c19..f51cdfd3 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@
# Configuration
CPYTHON_PATH := cpython # Current commit for this upstream repo is setted by the submodule
-BRANCH := 3.12
+BRANCH := 3.13
LANGUAGE_TEAM := python-docs-es
LANGUAGE := es
Diff a conf.py
diff --git a/conf.py b/conf.py
index f1749d3b..1ea5b788 100644
--- a/conf.py
+++ b/conf.py
@@ -29,10 +29,9 @@ sys.path.append(os.path.abspath('cpython/Doc/includes'))
sys.path.insert(0, os.path.abspath('cpython/Doc'))
from conf import *
-# Call patchlevel with the proper path to get the version from
-# instead of hardcoding it
-from patchlevel import get_header_version_info
-version, release = get_header_version_info(os.path.abspath('cpython/Doc'))
+# Call patchlevel to get the version instead of hardcoding it
+from patchlevel import get_version_info
+version, release = get_version_info()
project = 'Python en Español'
year = time.strftime("%Y")
@@ -54,6 +53,8 @@ _exclude_patterns = [
# This file is not included and it's not marked as :orphan:
'distutils/_setuptools_disclaimer.rst',
'includes/wasm-notavail.rst',
+ 'deprecations/c-api-pending-removal-in-*.rst',
+ 'deprecations/pending-removal-in-*.rst',
]
if 'exclude_patterns' in globals():
exclude_patterns += _exclude_patterns
Diff a directorio .overrides
diff --git a/.overrides/faq.rst b/.overrides/faq.rst
index 11f9a09e..ba0a548a 100644
--- a/.overrides/faq.rst
+++ b/.overrides/faq.rst
@@ -19,7 +19,7 @@ Tenemos un `grupo de Telegram`_ en el que hay mucha gente que te puede ayudar.
Uno de los chequeos que realiza nuestro servidor de github cada vez que hacemos
un pull de request es un test de corrección ortográfico usando la herramienta
pospell. Pospell puede ser instalada en tu entorno de Python empleando pip
-(https://pypi.org/project/pospell/)::
+(:pypi:`pospell`)::
pip install pospell
diff --git a/.overrides/git_diff.rst b/.overrides/git_diff.rst
index 36d64e6e..ed5febca 100644
--- a/.overrides/git_diff.rst
+++ b/.overrides/git_diff.rst
@@ -11,7 +11,7 @@ El comando `git diff` tiene datos que pueden llegar a ser inútiles como por eje
-#: ../Doc/library/signal.rst:406
+#: ../Doc/library/signal.rst:408
-La instalación de `podiff` mediante `pip` no se encuentra totalmente funcional, pero los usuarios de macOS
+La instalación de :pypi:`podiff` mediante `pip` no se encuentra totalmente funcional, pero los usuarios de macOS
podrán continuar con estas instrucciones.
Primero debemos instalar brew. Si no lo tienes instalado puedes seguir el instructivo de instalación Brew_.
@@ -44,8 +44,8 @@ archivos .po con los que se van a trabajar, crealo, y luego, agregar la siguien
*.po diff=podiff
-Para las distribuciones de Linux se pueden utilizar algunas herramientas, como por ejemplo podiff_ y
-potools_, que son compatibles con Python 2. Se puede utilizar `pip` para instalarlas.
+Para las distribuciones de Linux se pueden utilizar algunas herramientas, como por ejemplo :pypi:`podiff` y
+:pypi:`potools`, que son compatibles con Python 2. Se puede utilizar `pip` para instalarlas.
.. code-block:: bash
@@ -54,5 +54,3 @@ potools_, que son compatibles con Python 2. Se puede utilizar `pip` para instala
pip install potools
.. _Brew: https://docs.brew.sh/Installation
-.. _podiff: https://pypi.org/project/podiff/
-.. _potools: https://pypi.org/project/potools/