Skip to content

pyproject.toml diff after build when using comments #244

@native0090

Description

@native0090

Whenever I build a package using poetry build my pyproject.toml gets modified and leaves my project in a dirty state when using comments right after the version = "0.0.0" entry in the pyproject.toml.

pyproject.toml before build:

# General settings
[project]
name = "XXX"
description = "XXX"
authors = [{ name = "XXX" }]
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    XXX
]
dynamic = ["version"]

[tool.poetry]
packages = [{ include = "XXX", from = "src" }]
include = ["XXX"]
version = "0.0.0"

# Script settings
[project.scripts]
XXX = "XXX:main"

# Dynamic versioning settings
[tool.poetry.requires-plugins]
poetry-dynamic-versioning = { version = ">=1.0.0,<2.0.0", extras = ["plugin"] }

[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
dirty = true

[tool.poetry-dynamic-versioning.substitution]
files = ["XXX/__init__.py"]

[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"

When I run poetry build the project.toml looks like this (note the version="0.0.0" is now below the comment):

# General settings
[project]
name = "XXX"
description = "XXX"
authors = [{ name = "XXX" }]
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    XXX
]
dynamic = ["version"]

[tool.poetry]
packages = [{ include = "XXX", from = "src" }]
include = ["XXX"]

# Script settings
version = "0.0.0"
[project.scripts]
XXX = "XXX:main"

# Dynamic versioning settings
[tool.poetry.requires-plugins]
poetry-dynamic-versioning = { version = ">=1.0.0,<2.0.0", extras = ["plugin"] }

[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
dirty = true

[tool.poetry-dynamic-versioning.substitution]
files = ["XXX/__init__.py"]

[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"

Poetry (version 2.2.1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions