Skip to content

Commit e5641cf

Browse files
committed
docs: add maintenance guide for list maintainers
1 parent a255a3d commit e5641cf

1 file changed

Lines changed: 97 additions & 0 deletions

File tree

MAINTENANCE.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Guía de mantenimiento
2+
3+
> **Este fichero lo mantiene exclusivamente @GeiserX.** No se aceptan PRs que lo modifiquen.
4+
5+
Directrices para los mantenedores de esta lista. Esta guía es común a todas las awesome lists del ecosistema (awesome-spain + listas regionales). Seguirla garantiza que todos los repositorios mantengan la misma calidad, formato y criterios de inclusión, de modo que el conjunto funcione como una colección coherente.
6+
7+
## Filosofía de inclusión
8+
9+
El criterio fundamental es: **se acepta software que da soporte específico a Catalunya, no software hecho por alguien de Catalunya.**
10+
11+
Un repositorio se incluye porque interactúa con instituciones, servicios, infraestructura, normativas o datos propios de Catalunya. No basta con que el autor resida o trabaje aquí. Un framework genérico creado por un developer de Catalunya no pertenece a esta lista. Un cliente para la API de datos abiertos del gobierno de Catalunya o una integración con servicios públicos de Catalunya sí.
12+
13+
- **Sí:** Clientes de APIs de instituciones de Catalunya, integraciones con servicios públicos regionales, scrapers de transporte o datos abiertos de Catalunya.
14+
- **No:** Librerías genéricas creadas por equipos de Catalunya, software genérico cuyo autor simplemente reside en la comunidad.
15+
16+
Ver `AGENTS.md` (si existe) para criterios detallados adicionales.
17+
18+
## Revisar PRs
19+
20+
1. Comprobar que el proyecto **da soporte específico a Catalunya** (no simplemente que el autor es de Catalunya).
21+
2. Verificar que la PR incluye la **URL del servicio o institución de Catalunya** que el proyecto soporta.
22+
3. Comprobar formato: entrada simple, orden alfabético, descripción en español que empieza en mayúscula y termina con punto.
23+
4. **CI debe estar verde** antes de mergear: awesome-lint-extra (formato y orden) + lychee (enlaces).
24+
5. Las insignias se generan automáticamente. Los contribuidores solo envían:
25+
```markdown
26+
- [Nombre](https://github.com/owner/repo) - Descripción breve que empieza en mayúscula y termina con punto.
27+
```
28+
6. Tras mergear, ejecutar el pipeline de insignias (si existe) y hacer push:
29+
```bash
30+
bash scripts/gather-metadata.sh
31+
python3 scripts/transform-readme.py
32+
```
33+
34+
## Añadir entradas como mantenedor
35+
36+
1. Añadir la entrada simple en la sección correcta, en orden alfabético.
37+
2. Ejecutar el pipeline de insignias (si el repo dispone de los scripts):
38+
```bash
39+
bash scripts/gather-metadata.sh
40+
python3 scripts/transform-readme.py
41+
```
42+
3. Commit y push. Verificar que CI queda verde.
43+
4. Si el propietario del proyecto no ha sido notificado, abrir un issue de cortesía en su repo:
44+
- Título: `Incluido en awesome-catalunya`
45+
- Cuerpo: mensaje breve en español (tuteo) explicando la inclusión y ofreciendo retirarlo si lo prefiere.
46+
- **Un solo issue por propietario** — nunca abrir múltiples issues en repos del mismo usuario/organización.
47+
48+
## Eliminar entradas
49+
50+
Las entradas no se borran sin más. Se mueven a `DELETED.md` en la sección correspondiente:
51+
52+
| Razón | Sección en DELETED.md |
53+
|-------|-----------------------|
54+
| Repo archivado/solo lectura | Archivados |
55+
| Repo eliminado o renombrado | Repos inexistentes o renombrados |
56+
| Autor confirmó abandono | Abandonados |
57+
| No cumple criterios de inclusión | Eliminados por no ser específicos de Catalunya |
58+
| Sustituido por otro proyecto | Reemplazados (enlazar sucesor) |
59+
60+
Esto evita re-adiciones y preserva el historial.
61+
62+
## Mantenimiento periódico
63+
64+
- **Mensual:** Revisar la salida de lychee en GitHub Actions. Corregir o eliminar enlaces rotos.
65+
- **Trimestral:** Refrescar insignias (`gather-metadata.sh` + `transform-readme.py`). Comprobar si hay repos recién archivados:
66+
```bash
67+
grep -oE 'https://github\.com/[^/)]+/[^/)]+' README.md | sort -u | while read url; do
68+
repo="${url#https://github.com/}"
69+
archived=$(gh api "repos/$repo" --jq '.archived' 2>/dev/null)
70+
[ "$archived" = "true" ] && echo "ARCHIVADO: $repo"
71+
done
72+
```
73+
74+
## Herramientas
75+
76+
- **awesome-lint-extra** — Linter propio. Valida formato, orden alfabético, insignias y descripciones. Se ejecuta como GitHub Action (`GeiserX/awesome-lint-extra@main`) y como script standalone (`python3 lint.py`). Configuración en `.awesomerc.json`.
77+
- **transform-readme.py** — Genera insignias de shields.io y etiquetas de institución/servicio a partir de `scripts/metadata.json`.
78+
- **gather-metadata.sh** — Obtiene metadatos (estrellas, lenguaje, licencia, rama) de la API de GitHub para cada repo listado.
79+
- **lychee** — Comprobador de enlaces. Se ejecuta en CI como `lycheeverse/lychee-action@v2`. No bloquea merges (`continue-on-error: true`), pero sus resultados deben revisarse periódicamente.
80+
81+
## Reglas de formato
82+
83+
- La descripción **no debe empezar con el nombre** del proyecto.
84+
- Una línea por entrada, sin saltos de línea.
85+
- Descripciones en **español**.
86+
- **Orden alfabético** dentro de cada sección/subsección (sin distinguir mayúsculas/minúsculas).
87+
- Evitar el anglicismo «curar/curado» — usar «selección» o «recopilación» (según FundéuRAE).
88+
- Nuevas categorías: preferiblemente con al menos 3 proyectos.
89+
90+
## Contenido prohibido
91+
92+
No se aceptan proyectos relacionados con: pornografía, NSFW, apuestas, loterías, religión, política partidista.
93+
94+
## Difusión
95+
96+
- Abrir issues de notificación en repos de proyectos incluidos (uno por propietario, en español).
97+
- Publicar en comunidades de desarrollo relevantes tras alcanzar masa crítica.

0 commit comments

Comments
 (0)