Dependencies module (FS/SS/FF/SF)

オープン
#32 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
typescript
領域
api

調査の方向性

Read parent issue #25 and the module API work in issue #28 first; this issue is blocked by #28. Then inspect CalendarCore and the existing write pipeline to understand where dependency handling belongs. Done means the module meets the listed creation, cycle validation, cascading, validation, and tree-shaking criteria.

索引モデルが issue の本文から書いたものです。

説明

enhancement

Parent

https://github.com/TanStack/time/issues/25

What to build

Extract the FS/SS/FF/SF event dependency system into a proper module. When registered, the module adds dependency-aware transformation to the write pipeline: moving a predecessor event automatically cascades the required shift to all dependents in topological order.

This module is the reason the Timeline/Gantt view exists as a product. Extracting it from `CalendarCore` into a module also fixes the current architecture where Gantt semantics are baked into the Calendar kernel.

Acceptance criteria

  • `DependenciesModule` plugs into the kernel via the module API (#28)
  • `createDependency(sourceId, targetId, type)` creates a link and validates it does not form a cycle
  • Moving a predecessor cascades the correct shift to all dependents (FS: finish-to-start, SS: start-to-start, FF: finish-to-finish, SF: start-to-finish)
  • Cascade propagates transitively through the dependency graph in topological order
  • `validateEventDependencies()` checks whether placing an event satisfies its predecessor constraints
  • Circular dependency detection rejects the link with a descriptive error before it is committed
  • Removing the `DependenciesModule` causes dependency code to tree-shake out of the bundle

Blocked by

https://github.com/TanStack/time/issues/28

主要言語
TypeScript
スター
620
フォーク
6
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

TanStack/time のほかの issue

TanStack/time の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。