pyproject.toml: [tool.setuptools_scm] is inert — maturin takes the version from Cargo.toml
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 45/100
- issue の種類
- リファクタリング
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 領域
- build-system, release
調査の方向性
The inert section is [tool.setuptools_scm] near line 110 of pyproject.toml, while dynamic = ["version"] on line 7 is resolved by maturin from rust/Cargo.toml. Confirm that by building a wheel and checking its version against Cargo.toml. Done means the maintainers have picked an option: either remove the section so Cargo.toml is clearly the single source, or make SCM actually drive the version. Optionally add a tag-vs-version check to the publish workflow. The issue has no comments yet, so pick the direction with a maintainer first.
索引モデルが issue の本文から書いたものです。
説明
Third one from modelling ddx's packaging on this repo (after #242 and #243) — this one I checked empirically rather than by reading, because I was about to copy the pattern.
pyproject.toml declares SCM versioning:
[project]
dynamic = ["version"] # L7
...
[tool.setuptools_scm] # L110
but setuptools-scm is never installed at build time:
[build-system]
requires = ["maturin>=1.9,<2.0"]
build-backend = "maturin"
and maturin is the backend, not setuptools — it does not consult setuptools-scm at all. For dynamic = ["version"], maturin takes the version from Cargo.toml.
How I checked
I put the identical configuration on ddx's own maturin package — dynamic = ["version"], [tool.setuptools_scm], and (unlike here) setuptools-scm actually present in build-system.requires — in a repo with no matching git tag at all. SCM versioning would have had to produce a 0.1.x.dev...+g<sha> string. The build produced:
📦 Built wheel ... ddxdb-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
0.1.0 is exactly the Cargo.toml version. Git was never consulted.
So [tool.setuptools_scm] here is inert configuration: the published version is whatever rust/Cargo.toml says, and the section reads as though tags drive it. That is harmless today but misleading — someone bumping a tag and expecting the wheel to follow would be surprised, and the failure is silent.
Options
- Drop
[tool.setuptools_scm]and treatrust/Cargo.tomlas the single source, which is what already happens. Optionally assert tag-vs-version in the publish workflow so a mismatched tag fails the release rather than shipping. - Actually use SCM, which means not using maturin's version handling — e.g. generate the version in CI and pass
--version/ rewriteCargo.tomlbefore building. More machinery than it is likely worth.
I went with (1) plus a tag check in ddx. Happy to send a PR here if useful.
- 主要言語
- Python
- スター
- 142
- フォーク
- 19
- 平均マージ
- 1日 6時間
- マージ済み PR(30日)
- 10
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
xqlsystems/xarray-sql のほかの issue
-
documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
xqlsystems/xarray-sql#268 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
xqlsystems/xarray-sql#267 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 74/100
xqlsystems/xarray-sql#243 ·
メンテナーはふだん 1 日以内に返信
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
xqlsystems/xarray-sql#242 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
xqlsystems/xarray-sql#237 ·
メンテナーはふだん 1 日以内に返信
xqlsystems/xarray-sql の issue をすべて見る
似ている issue
-
bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
yunaremaia/proto-drift#22 ·
-
bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
yunaremaia/memwatch#96 ·
-
bug good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
yunaremaia/ci-gate-watch#34 ·
-
bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
yunaremaia/agent-capability-attestation#64 ·
メンテナーはふだん 1 日以内に返信
-
bug good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
yunaremaia/agent-call-graph#43 ·
メンテナーはふだん 1 日以内に返信