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

rake -P output is ambiguous with prereq namespaces

Abierto
#704 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
ruby
Área
build-system, cli

Línea de trabajo

Comienza en el punto de entrada de la salida de rake -P/--prereqs y reproduce el Rakefile mostrado en el issue. Rastrea cómo se resuelven los prerrequisitos con namespace para tool:run y tool:run2, y verifica después que el prerrequisito mostrado para ambos esté completamente cualificado y no sea ambiguo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

When tasks are in a namespace, their pre-reqs "inherit" the namespace prefix.

Given the following rakefile:

task :setup do
  puts "global setup, oops"
end

namespace :tool do
  task :setup do
    puts "setting up"
  end
  task run: :setup do
    puts "running"
  end
  task run2: 'tool:setup' do
    puts "running a second way"
  end
end

The both tasks run and run2 have the same pre-req (setup). However, task run omits the namespace, while run2 is explicit with its pre-req's namespace. Both forms work as expected:

$ rake tool:run
setting up
running

$ rake tool:run2
setting up
running a second way

However, when the pre-req tree is printed, rake is not clear about what the pre-reqs' full names are.

$ rake -P
rake setup
rake tool:run
    setup  # <--- This is ambiguous!
rake tool:run2
    tool:setup
rake tool:setup

The expectation is that rake -P prints the "fully resolved" pre-reqs and is thus clear about what task will actually be run. In the example above, it is not clear what tool:run's pre-req is. Is it the "global" setup, task as it appears in the -P output? Or is it in fact tool:setup because it is namespaced?

To be clear, rake's invocation behavior matches my expectations: tool:run invokes tool:setup, not setup. But this behavior is not evident in rake's --prereqs output.

Lenguaje dominante
Ruby
Estrellas
2.5k
Forks
650
Merge medio
6 min
PR fusionados (30 d)
3

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 ruby/rake

Todos los issues de ruby/rake

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.