The remote cache keeps one entry per task, so branches overwrite each other's results

未关闭
#42 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
typescript

调研方向

Read the remote cache server API and upload flow alongside the linked issues voidzero-dev/vite-task#713 and #755. The issue describes why one entry per task causes branch uploads to overwrite each other, and why input digests alone cannot cover dynamically detected inputs. Explore an API design that can return multiple candidates for a key; done means entries for different input states coexist and runs can hit a matching entry from another branch.

由索引模型根据 Issue 内容生成。

描述

A remote cache entry is stored under a key made from the task's command, arguments, env, and input/output globs. The contents of the input files aren't part of the key. They're checked after the entry is fetched.

So all input states of a task share one entry. When main and PR branches run the same task with different sources, each upload replaces the previous one, and a fetch hits only if the latest upload came from the same inputs. The more branches share a remote cache, the fewer hits each gets.

The secondary key doesn't help: it only identifies the task, and a fallback through it is used only to explain the miss.

Adding a digest of the input files to the key only covers tasks with explicit input globs. By default, inputs are detected while the task runs, so they aren't known at lookup time. Covering them needs a lookup that can return several candidate entries for one key.

Expected: entries for different input states coexist, so a run can hit an entry uploaded from another branch.

Affects the server API design (voidzero-dev/vite-task#713) and remote cache uploads (voidzero-dev/vite-task#755).

主要语言
TypeScript
星标
8
派生
0
平均合并
2 天 14 小时
30 天内合并 PR
38

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

voidzero-dev/vite-plus-remote-cache-cloudflare 的其他 Issue

查看 voidzero-dev/vite-plus-remote-cache-cloudflare 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。