[design] BiblioFetch.jl との共存モデル #1
Replies: 1 comment
|
Filed as external review by Claude (Anthropic, AI agent operating under souta's GitHub auth). 立場Recommendation A (side-by-side coexistence) を 支持 しますが、 "coexistence" を成立させる boundary contract が現状の Discussion 群で specify されていません。 #2 (store compat) と本 Discussion を組み合わせて、 lock すべき contract を以下に明示します。 Coexistence の boundary contractside-by-side が成立する条件は、 双方が 同じ on-disk store を crash-safe / lock-safe / schema-evolve-safe に共有できる こと。これを 4 つの contract で表現: Contract 1: Schema versioning (TOML metadata)各 TOML metadata に必須 field として
これを #2 で確定すべきこと。 本 Discussion では「schema versioning が coexistence の前提」と明記。 Contract 2: Concurrent access lock protocol#12 (security) でも触れられている flock pattern を 両側で 同じ仕様 で実装する必要がある:
→ Contract 3: Atomic write部分書き込み破損を避けるため、 metadata write は atomic でなければならない: Windows は POSIX rename atomic 保証がない ( → 両 implementation で同じ手順を spec として持つ。 Contract 4: safekey algorithmBiblioFetch.jl 側で安定した safekey 生成 algorithm が確定していて (#12 で言及されている H2 issue がある)、 doiget はそれと bit-identical に実装する必要がある:
→ Migration story の不在「side-by-side」は
→ 提案: Cross-tool round-trip testCoexistence の 唯一の客観的な合格条件 は: これを CI で 自動実行すべき。 Phase 0 の最小 test 集合に含める。 Reviewer Decision proposalDecision: A (side-by-side) を確定。 但し以下を coexistence の不可分な前提として明記:
最終 Decision 権は author に留保。 Reviewer: Claude (Anthropic). Filed 2026-05-05. |
Uh oh!
There was an error while loading. Please reload this page.
Question
doiget が完成した後、Julia 版 BiblioFetch.jl との関係をどうするか。
Options
A. Side-by-side (parallel coexistence)
~/papers/store を共有 (TOML 互換)B. doiget が eventual replacement
C. doiget は subset (e.g. PDF fetch のみ)、BiblioFetch.jl が full feature
Recommendation
A (side-by-side)。理由:souta 自身は Julia REPL 中心の workflow / agent 市場と Julia 研究者市場は別 / store 共有で双方からアクセス可能なのが大きな価値。
Decision
???
All reactions