Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 6 additions & 15 deletions .github/workflows/actualizar-eventos-meetup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,11 @@ jobs:
if: github.repository_owner == 'PyBAQ'
name: Actualizar eventos meetup
runs-on: ubuntu-latest
environment: meetup-events
steps:
- name: checkout@v4
uses: actions/checkout@v4

- name: setup-python@v5
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Instalar requirements
run: |
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
- name: Instalar dependencias
run: uv sync

- name: Ejecutar graphql_api.py
env:
Expand All @@ -32,10 +23,10 @@ jobs:
MEETUP_MEMBER_ID: ${{secrets.MEETUP_MEMBER_ID}}
MEETUP_PRIVATE_KEY: ${{secrets.MEETUP_PRIVATE_KEY}}
MEETUP_SIGNING_KEY_ID: ${{secrets.MEETUP_SIGNING_KEY_ID}}
run: python scripts/graphql_api.py
run: uv run python scripts/graphql_api.py

- name: Ejecutar create_events.py
run: python scripts/create_events.py
run: uv run python scripts/create_events.py

- name: Rama actual
run: git branch
Expand Down
24 changes: 9 additions & 15 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,32 +24,26 @@ env:

jobs:
build:
name: Construir sitio web lektor
name: Construir sitio web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: actions/setup-node@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: "lts/*"

- name: Instalar Lektor
run: |
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install -r test-requirements.txt
- uses: astral-sh/setup-uv@v7
- name: Instalar dependencias
run: uv sync

- name: Verificar Pylint
run: pylint --recursive=y tests scripts
run: uv run pylint --recursive=y tests scripts

- name: Construir pagina pybaq
run: lektor build -O '${{ env.OUTPUT }}'
run: uv run lektor build -O '${{ env.OUTPUT }}'

- name: Desplegar pagina pybaq
if: env.DEPLOY == 'true'
run: lektor deploy -O '${{ env.OUTPUT }}' ghpages-https
run: uv run lektor deploy -O '${{ env.OUTPUT }}' ghpages-https
env:
LEKTOR_DEPLOY_USERNAME: pybaq
LEKTOR_DEPLOY_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
15 changes: 8 additions & 7 deletions .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:

env:
TEST_BROWSER: ${{ github.event.inputs.browser }}
TEST_COMMAND_EXECUTOR: http://localhost:4444/wd/hub

jobs:
test:
Expand All @@ -28,13 +29,13 @@ jobs:
- 4444:4444

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- run: pip install -r requirements.txt -r test-requirements.txt
- run: python -m pytest
- uses: actions/upload-artifact@v4
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
- name: Instalar dependencias
run: uv sync

- run: uv run python -m pytest
- uses: actions/upload-artifact@v7
if: always()
with:
name: screenshots
Expand Down
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.14
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ para hacerlo en tu maquina puedes usar esta [Guía](./install.md)

Para instalar las dependencias del proyecto ejecuta

pipx install lektor
uv sync

### Ejecucion de lektor server

Para la ejecución de lektor se debe ejecutar el comando:

lektor server
uv run lektor server

Al ejecutar Lektor, verás una lista de procesos que tienen lugar antes de generar la página estática. Si en tu edición cometes algún error, aparecerá escrito en la consola. Si se genera con éxito la página, ésta estará disponible en [http://localhost:5000/](http://localhost:5000/).

Expand All @@ -60,9 +60,9 @@ Luego cada vez que actualices un estilo ejecuta:

> Dependiendo de la configuración de CodeSpaces que escojas deberás ejecutar esta instalación

Instala los paquetes de pruebas con el comando
Los paquetes de pruebas ya están incluidos en `uv sync`.

pip install -r test-requirements.txt
Puedes verificar que todo esté listo ejecutando

Comment on lines +63 to 66
### Validar HTML usando W3C validator

Expand All @@ -71,9 +71,9 @@ w3c se usa para validar la estructura de los archivos [HTML](https://validator.w
para validar los archivos html primero compila los fuentes en la carpeta build,
luego ejecuta el validador w3c_validator usando los comandos:

lektor build --output-path ./build
uv run lektor build --output-path ./build
cd build
w3c_validator $(find . -type f -name \*.html)
uv run w3c_validator $(find . -type f -name \*.html)

### Selenium

Expand All @@ -84,29 +84,33 @@ Usando [docker compose](https://docs.docker.com/compose/install/) nos podemos ah
para ejecutar los test ejecuta los siguientes comandos

docker compose up
python -m pytest
uv run pytest

Comment on lines 84 to 88
Por defecto los test corren en chrome, si deseas escoger el navegador que quieres ejecutar, crea una variable de entorno llamada `TEST_BROWSER` con el navegador que deseas usar, en estos momentos soportamos firefox y chrome.
La forma mas fácil de hacer esto es creando un archivo `.env` con el siguiente contenido

TEST_BROWSER=firefox

o ejecutar con:

TEST_BROWSER=firefox uv run pytest

## Actualizar eventos

Para este proceso tenemos un [workflow](https://github.com/PyBAQ/website/actions/workflows/actualizar-eventos-meetup.yml) que nos crea un pull request con la actualización de los eventos

La actualización de eventos se hace a traves de 2 scripts, `scripts/events.py` que extrae la información de meetup y `scripts/create_events.py` que se encarga de crear los eventos
La actualización de eventos se hace a traves de 2 scripts, `scripts/graphql_api.py` que extrae la información de meetup y `scripts/create_events.py` que se encarga de crear los eventos

Para ejecutar localmente el script que extrae la información de meetup debes instalar el paquete requests con pip
Para ejecutar localmente el script que extrae la información de meetup

python scripts/events.py
uv run scripts/graphql_api.py

Comment on lines +104 to 107
El script crea o actualiza el archivo databags/meetup.json con los eventos actualizados. Recuerda adicionarlo al Pull Request con un commit.

> Por favor actualiza los eventos solo si lo consideras estrictamente necesario, entre los metadatos incluidos incluye la fecha de actualización en un timestamp (propenso a conflictos)

Para ejecutar localmente el script que genera los content.lr para cada uno de los eventos

python scripts/create_events.py
uv run scripts/create_events.py

Luego de esto puedes ir a los eventos creados con el admin de lektor y proceder con el respectivo pull request una vez finalices tus cambios
5 changes: 0 additions & 5 deletions django-quilla.lektorproject
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ name = pybaq-web
url = https://pybaq.co
locale = es_CO

[packages]
lektor-disqus-comments = 0.2
lektor-markdown-highlighter = 0.3.2
lektor-markdown-header-anchors = 0.3.1

[servers.ghpages]
target = ghpages://PyBAQ/website?cname=pybaq.co
default = yes
Expand Down
51 changes: 29 additions & 22 deletions install.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,27 @@ Primero haz un Fork del proyecto en GitHub y luego clonalo en tu computador así

Para poder ejecutar el proyecto localmente se requieren las siguientes dependencias:

- Python 3
- ImageMagick
- [Lektor](https://www.getlektor.com/docs/installation/)
- Python 3 (3.12 o superior)
- ImageMagick (para procesamiento de imágenes)
- [uv](https://docs.astral.sh/uv/)

Una vez tengas estas dependencias instaladas en tu sistema operativo, ejecuta `uv sync` desde la carpeta del proyecto para instalar todas las dependencias de Python incluyendo Lektor.

A continuación siga la guía de instalación según su sistema operativo

### Windows

Para Windows puedes descargar Python desde el siguiente enlace: https://www.python.org/downloads/windows/

Puedes instalar ImageMagick desde el siguiente enlace: <https://imagemagick.org/>
Descarga Python desde: https://www.python.org/downloads/windows/

o usar [chocolatey](https://chocolatey.org/) y ejecutar
Para ImageMagick puedes descargar desde <https://imagemagick.org/> o usar [chocolatey](https://chocolatey.org/):

choco install imagemagick

Para instalar Lektor puedes usar el siguiente comando:
Para instalar uv, ejecuta en PowerShell:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://getlektor.com/install.ps1'))" && SET PATH=%PATH%;%LocalAppData%\lektor-cli
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Pero también puede ser ejecutado directamente en powershell:

iex ((new-object net.webclient).DownloadString('https://getlektor.com/install.ps1'))
O descarga el instalador desde https://docs.astral.sh/uv/getting-started/installation/

### Windows 10: Windows Subsystem for Linux

Expand All @@ -42,28 +40,37 @@ Luego, en la tienda de Microsoft encontrarás distintas distribuciones de Ubuntu

De allí continua los pasos según el instructivo para Linux.

## Después de instalar las dependencias del sistema

Una vez tengas Python, ImageMagick y uv instalados, navega a la carpeta del proyecto y ejecuta:

uv sync

Esto instalará Lektor y todas las demás dependencias de Python necesarias para el proyecto.

### Linux

En Ubuntu se pueden instalar las dependencias de Lektor usando el comando:
En Ubuntu instala las dependencias del sistema:

sudo apt install python3 imagemagick

sudo apt install python3-dev libssl-dev libffi-dev imagemagick
Luego instala uv:

Luego puedes instalar Lektor usando el siguiente comando:
curl -LsSf https://astral.sh/uv/install.sh | sh

curl -sf https://www.getlektor.com/installer.py | python3
Y sigue las instrucciones para agregar uv a tu PATH si es necesario

### MacOS

En Mac OS si se tiene instalado [homebrew](https://brew.sh/) se pueden instalar las dependencias de Lektor usando el comando:
Con [homebrew](https://brew.sh/) instala las dependencias del sistema:

brew install imagemagick
brew install python imagemagick

Luego puede instalar Lektor usando el siguiente comando:
Luego instala uv:

curl -sf https://www.getlektor.com/installer.py | python3
curl -LsSf https://astral.sh/uv/install.sh | sh

Verificar que las variables de entorno del formato UTF-8 en sus respectivos idiomas esten definidas en el
archivo ~/.bash_profile de su sistema y en caso de no estar definidas agregarlas.
(Opcional en macOS) Verifica que las variables de entorno UTF-8 estén definidas en `~/.bash_profile` (o `~/.zprofile` si usas zsh):

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
4 changes: 3 additions & 1 deletion netlify.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
[build]
environment = { PYTHON_VERSION = "3.13" }
environment = { PYTHON_VERSION = "3.13" }
command = "curl -LsSf https://astral.sh/uv/install.sh | sh && uv sync --locked && uv run lektor build --output-path public"
publish = "public"
31 changes: 31 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[project]
name = "pybaq-website"
version = "0.1.0"
description = "Python Barranquilla website"
readme = "README.md"

requires-python = ">=3.12"

dependencies = [
"lektor~=3.4.0b13",
"lektor-disqus-comments~=0.4.1",
"lektor-markdown-highlighter~=0.3.2",
"lektor-markdown-header-anchors~=0.4.0",
"pyjwt>=2.13.0",
]

[dependency-groups]
dev = [
"cryptography>=50.0.0",
"online-w3c-validator>=0.3.21",
"pylint>=4.0.6",
"pytest>=9.1.1",
"pytest-base-url>=2.1.0",
"requests>=2.34.2",
"screenpy>=5.0.0",
"screenpy-selenium>=4.0.4",
"selenium>=4.46.0",
]
Comment on lines +17 to +28

[tool.uv]
managed = true
Comment on lines +30 to +31
36 changes: 0 additions & 36 deletions requirements.txt

This file was deleted.

1 change: 0 additions & 1 deletion runtime.txt

This file was deleted.

13 changes: 0 additions & 13 deletions test-requirements.txt

This file was deleted.

Loading