Rake executes file task when prerequisites have older timestamp
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 38/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- ruby
- Domínio
- build-system
Direção de pesquisa
Reproduza o problema com o exemplo de Rakefile e compare a saída de --trace entre o comportamento afetado e a versão 12.0. Comece rastreando como os pré-requisitos das tarefas de arquivo e os timestamps são avaliados; considera-se concluído quando rake component não executar mais a tarefa de arquivo quando seus arquivos de pré-requisito imediatos forem mais antigos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
When a file task depends on some non-file task indirectly,
Rake executes the file task even if its immediate prerequisite files have older timestamp.
It looks like the behavior changed at 12.1.0.
Example
require "rake/clean"
CLEAN.include("config.yml", "component")
task "setup" do
puts Rake::VERSION
touch "config.yml" unless File.exist?("config.yml")
end
file "config.yml" => "setup"
file "component" => "config.yml" do |t|
puts "[config.yml] #{File.mtime(t.prerequisites[0])}"
puts "[component] #{File.exist?(t.name) && File.mtime(t.name)}"
sleep 1
touch t.name
end
Based on the above Rakefile, clean up and create the "component" first.
$ rake clean && rake component
The next rake component results in different behavior as follows.
On 12.0.0:
$ rake component --trace
(in /path/to/Rakefile-directory)
** Invoke component (first_time, not_needed)
** Invoke config.yml (first_time)
** Invoke setup (first_time)
** Execute setup
12.0.0
** Execute config.yml
On 12.1.0:
$ rake component --trace
(in /path/to/Rakefile-directory)
** Invoke component (first_time)
** Invoke config.yml (first_time)
** Invoke setup (first_time)
** Execute setup
12.1.0
** Execute config.yml
** Execute component
[config.yml] 2018-01-01 15:13:19 +0900
[component] 2018-01-01 15:13:20 +0900
touch component
- Linguagem predominante
- Ruby
- Estrelas
- 2.5k
- Forks
- 649
- Merge médio
- 4min
- PRs com merge (30d)
- 2
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de ruby/rake
-
rake -P output is ambiguous with prereq namespacesTalvez já em andamento @leoarnold assumiu há 73 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 28/100
-
FileList#<< bypasses exclusions while FileList#include respects themTalvez já em andamento @hsbt assumiu há 87 dias. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 45/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
lugassawan/swe-workbench#799 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Homebrew/homebrew-core#317477 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
bug help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
hanami/hanami-cli#453 ·
-
area/web interface
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
mastodon/mastodon#41009 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia