alunduil / alunduil/zfs-replicate

CI tests the ceiling of the declared dependency ranges

未關閉 適合新手
#571 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
enhancement
主要語言
Python
星號
24
分支
6
平均合併
3 小時 11 分鐘
30 天內合併 PR
49

描述

## Summary

Add a CI job that resolves the runtime dependencies at `--resolution
highest`, ignoring `poetry.lock`, and runs the suite against them. This
covers the upper edge of the declared ranges, which nothing tests today.

## Motivation

The `dependency-floor` job covers the lower edge of `click = "^8.2"` and
`click-log = "^0.4.0"`. `poetry.lock` covers exactly one point in the
middle, currently click 8.4.2. Nothing covers the top, which is where a
newly published release lands.

That edge is not hypothetical, because a downstream packager is already
standing on it. The nixpkgs derivation
(`pkgs/by-name/zf/zfs-replicate/package.nix`) builds from the git tag and
runs the suite with its own `python3Packages`, ignoring `poetry.lock`
entirely. Downstream therefore discovers a breaking dependency release at
their build time rather than ours, on a package this project's author
also maintains in nixpkgs. A ceiling job moves that discovery upstream to
where it can be fixed before a release ships.

## Scope

- Add a `dependency-ceiling` job to `.github/workflows/ci.yml` mirroring
`dependency-floor`, resolving with `--resolution highest` rather than
`lowest-direct`.
- Decide whether it blocks or runs advisory. Unlike the floor, this job
can turn red from an upstream release with no change in this repo, so
it behaves more like the existing `experimental: true` matrix leg than
like a gate.

## Acceptance criteria

- [ ] The job's resolved runtime versions differ from `poetry.lock`
whenever a newer satisfying release exists, visible in the job log
- [ ] The blocking-versus-advisory decision is recorded as a comment in
`ci.yml`, so the next reader does not have to re-derive it

## Additional context

Both jobs come out of the same question: the sdist ships
`pyproject.toml` and no lock, so the declared ranges are the only version
signal a packager receives, and a range is only a contract if something
tests its edges.

貢獻指南

開啟貢獻指南

研究方向

Open .github/workflows/ci.yml and compare the existing dependency-floor job with the experimental matrix leg. Add a dependency-ceiling job using Poetry's highest resolution while ignoring poetry.lock, document whether it is blocking or advisory in ci.yml, and confirm the log shows newer satisfying runtime versions when available.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
github-actions, python
領域
ci-cd, testing-qa
Issue 類型
功能
難度
2/5
預估耗時
1-3 小時
活躍度
冷清
描述清晰度
基本清楚
新手友好度
68/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。