Scoped-delete semantics for --filter + --delete-unmatched
- 主要言語
- TypeScript
- スター
- 26
- フォーク
- 9
- 平均マージ
- 1日 3時間
- マージ済み PR(30日)
- 20
説明
### Problem or use case
In #215, combining `--filter` with `--delete-unmatched` was intentionally left to fail fast until
scoped-delete semantics are designed:
> Combining `--filter` with `--delete-unmatched` should fail fast with a clear error until
> scoped-delete semantics are designed.
Designing and enabling that combination would allow deletion tracking for a filtered subset of the
artifact tree, rather than requiring a full-tree `--delete-unmatched` run just to track any
deletions at all.
### Proposed solution
Is there a plan or timeline for designing scoped-delete semantics, or a place to follow along?
As a workaround, expanding the following:
```diff
export function hasMutuallyExclusivePublishOptions(
deleteUnmatched: boolean,
_commitId?: string,
hasFilter = false
): boolean {
- return deleteUnmatched && hasFilter;
+ return deleteUnmatched && hasFilter && !_commitId;
}
```
produced correctly-scoped create/update/delete requests when tested against a simple,
self-contained API with no shared dependencies, but this doesn't address resources with shared dependencies that would need more thoughtful deletion orchestration.
### Affected command
apiops publish
コントリビューションガイド
調査の方向性
Start with the apiops publish command and hasMutuallyExclusivePublishOptions, then review issue #215 for the existing fail-fast behavior. Define scoped-delete semantics for filtered artifact trees, including shared dependencies, and document or implement the agreed behavior so filtered create, update, and delete requests are correctly orchestrated.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- azure, typescript
- 領域
- api, cli
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 活発
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100