ruby / ruby/rake

Rake fails to re-run file task if file content changes but has timestamp older than target

Open
#214 15 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
2.5k
Forks
650
Avg merge
6m
Merged PRs (30d)
3

Description

I am not sure if this has been debated before.

Most of the modern build tools these days (Bazel, Buck etc.) rely on file content changing rather than timestamps. That makes them suitable for use in caching schemes to make builds incremental and reduce build times.

Rake on the other hand, relies solely on timestamps and does not fit in well with caching schemes.

For example, say an XML file is a prerequisite/input to generate source files. If the XML file changes but still has an older timestamp than the source files (entirely possible in caching schemes), the source files are not re-generated. This causes builds to fail / or (dangerously) incorrectly pass.

Is there any plan to make Rake on par with the more modern build tools of today?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test is named. Start by reviewing Rake's file-task prerequisite freshness logic and how it uses timestamps; determine the intended content-based behavior and how it should interact with cached XML inputs and generated source files. Done means the behavior is specified and covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.