Rule dependencies' behaviour is strange, possibly broken or poorly documented
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 38/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- ruby
- Domaine
- build-system
Piste de recherche
Reproduisez le rapport à partir du Rakefile fourni, en exécutant d'abord rake, rake test.pre, rake test0.txt et rake test.txt, puis recommencez après avoir modifié test.pre et test0.pre. Suivez la résolution des dépendances des règles et la gestion des horodatages par Rake. Le travail est terminé lorsque le comportement des dépendances est corrigé ou clairement documenté, avec une couverture de régression pour les deux cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Consider this Rakefile:
require 'rake/clean'
task default: :test
task test: 'test.txt'
file 'test.txt' => 'test0.txt'
rule '.txt' => '.pre' do |t|
sh 'cp', t.source, t.name
end
rule '.pre' do |t|
sh 'touch', t.name
end
CLEAN.include('*.pre')
CLOBBER.include('*.txt')
This Rakefile demonstrates 2 related issues.
The implicit dependency test.pre is not built automatically
In a folder containing only this Rakefile, try:
$ rake
touch test0.pre
cp test0.pre test0.txt
cp test.pre test.txt
cp: cannot stat 'test.pre': No such file or directory
rake aborted!
Command failed with status (1): [cp test.pre test.txt...]
[...]
This creates test0.pre and test0.txt, but fails to create test.pre and test.txt.
However, the following sequence of commands works without issues:
$ rake test.pre
touch test.pre
$ rake
touch test0.pre
cp test0.pre test0.txt
cp test.pre test.txt
Thus, rake knows how to build test.pre, but skips it unless asked explicitly.
Note that despite skipping test.pre, rake builds test0.pre automatically, while both are dependencies by the same rule.
In fact, starting from a folder containing only this Rakefile,
rake test0.txtworks,rake test.txtfails.
Updating test.pre does not trigger rebuilding of test.txt
Assume that everything has been built with
$ rake test.pre
$ rake
Now, try this:
$ touch test.pre
$ rake
Nothing happens.
Now, try:
$ touch test0.pre
$ rake
cp test0.pre test0.txt
cp test.pre test.txt
This triggers rebuilding.
Rake version
rake version: 13.0.6.
- Langage dominant
- Ruby
- Étoiles
- 2.5k
- Forks
- 651
- Merge moyen
- 5 min
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ruby/rake
-
rake -P output is ambiguous with prereq namespacesPeut-être pris @leoarnold l’a pris il y a 67 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 28/100
-
FileList#<< bypasses exclusions while FileList#include respects themPeut-être pris @hsbt l’a pris il y a 80 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 45/100
-
Task Options in Command-LineOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Toutes les issues de ruby/rake
Issues similaires
-
Add Catalan (ca) translationOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
eurosky-social/eu-haul#32 ·
-
good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
benbalter/jekyll-relative-links#137 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
rubys/roundhouse#444 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
sclorg/s2i-ruby-container#656 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour