rake -P output is ambiguous with prereq namespaces
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- ruby
- Bereich
- build-system, cli
Rechercherichtung
Beginne am Einstiegspunkt der Ausgabe von rake -P/--prereqs und reproduziere das im Issue gezeigte Rakefile. Verfolge, wie Namespaced-Prerequisites für tool:run und tool:run2 aufgelöst werden, und überprüfe anschließend, dass das ausgegebene Prerequisite für beide vollständig qualifiziert und eindeutig ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.5k
- Forks
- 651
- Ø Merge
- 5 Min.
- Gemergte PRs (30 T.)
- 4
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus ruby/rake
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 28/100
-
FileList#<< bypasses exclusions while FileList#include respects themEvtl. vergeben @hsbt hat das vor 80 Tagen übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 45/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
rubys/roundhouse#444 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
yegor256/rubocop-elegant#92 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
ecosyste-ms/awesome#812 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
slovensko-digital/autogram-portal#383 ·
Maintainer antworten meist innerhalb von 1 Tag