feature: Support make jobserver protocol
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- build-system
Línea de trabajo
Empieza por la especificación GNU Make Job-Slots y el PR enlazado del cliente de Ninja; después, inspecciona cómo BuildStream gestiona --max-jobs y los entornos aislados de compilación. Se considera terminado cuando se implemente el servidor del jobserver, se monte su FIFO o pipe en los entornos aislados y se establezca MAKEFLAGS para que las compilaciones anidadas compartan el límite de trabajos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Make has already for some time used jobserver protocol such that when a sub-make is run, top-make decides whether more processes can be spawned. This is a requirement for -jN option to work with nested makes. Recently, there's a PR to add jobserver client support to ninja as well. I propose buildstream to implement the actual jobserver part (at least fifo, can use also pipe) and mounts relevant fifo into build sandbox. There is also the part of setting MAKEFLAGS and declaring where the job server is. When this setup is fully in place and user passes --max-jobs to BuildStream, it can actually take effect over all sandboxes allowing high -jN option to safely be used without worrying about overloading the system.
The specification is in https://www.gnu.org/software/make/manual/html_node/Job-Slots.html and client implementation PR for ninja is in https://github.com/ninja-build/ninja/pull/2506. The PR also contains Apache-licensed Python code that implements the server that can be used as inspiration.
- Lenguaje dominante
- Python
- Estrellas
- 144
- Forks
- 45
- Merge medio
- 20 h 38 min
- PR fusionados (30 d)
- 6
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/buildstream
-
logging
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/buildstream#2150 · 3 comentarios ·
-
question
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
apache/buildstream#2143 · 2 comentarios · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
apache/buildstream#2194 ·
-
Modification time of an element with an open workspace propagates into consumer element's sandbox Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
apache/buildstream#2186 · 2 comentarios · 2 reacciones ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
apache/buildstream#2184 · 1 comentario ·
Todos los issues de apache/buildstream
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/skills#1811 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
speaches-ai/speaches#678 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
datalayer/mcp-compose#42 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
conda-forge/spacy-feedstock#177 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
UKGovernmentBEIS/inspect_evals#2523 ·