Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feature: Support make jobserver protocol

Abierto
#1,968 2 comentarios 0 reacciones 0 asignados Ver en GitHub

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

enhancement

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/buildstream

Todos los issues de apache/buildstream

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.