Skip to content

chore: migrate pyproject metadata to PEP 621 [project] table#11

Merged
gregsvo merged 1 commit into
ActiveCampaign:mainfrom
purificant:chore/migrate-pyproject-to-pep621
Jun 29, 2026
Merged

chore: migrate pyproject metadata to PEP 621 [project] table#11
gregsvo merged 1 commit into
ActiveCampaign:mainfrom
purificant:chore/migrate-pyproject-to-pep621

Conversation

@purificant

Copy link
Copy Markdown
Contributor

This PR addresses the output of the poetry check command which currently reports multiple deprecation warnings (and fails under poetry check --strict). Poetry 2.0 deprecated the legacy [tool.poetry] metadata format and adopted the PEP 621 [project] table as the standard way to declare package metadata.

Poetry plans to drop this old format, so addressing it now prevents the build from breaking once that support is gone. It also moves the package onto PEP 621, the standard metadata format that build tools can read directly.

Warning: [tool.poetry.name] is deprecated. Use [project.name] instead.
Warning: [tool.poetry.version] is set but 'version' is not in [project.dynamic]. If it is static use [project.version]. If it is dynamic, add 'version' to [project.dynamic].
If you want to set the version dynamically via `poetry build --local-version` or you are using a plugin, which sets the version dynamically, you should define the version in [tool.poetry] and add 'version' to [project.dynamic].
Warning: [tool.poetry.description] is deprecated. Use [project.description] instead.
Warning: [tool.poetry.readme] is set but 'readme' is not in [project.dynamic]. If it is static use [project.readme]. If it is dynamic, add 'readme' to [project.dynamic].
If you want to define multiple readmes, you should define them in [tool.poetry] and add 'readme' to [project.dynamic].
Warning: [tool.poetry.license] is deprecated. Use [project.license] instead.
Warning: [tool.poetry.authors] is deprecated. Use [project.authors] instead.
Warning: [tool.poetry.classifiers] is set but 'classifiers' is not in [project.dynamic]. If it is static use [project.classifiers]. If it is dynamic, add 'classifiers' to [project.dynamic].
ATTENTION: Per default Poetry determines classifiers for supported Python versions and license automatically. If you define classifiers in [project], you disable the automatic enrichment. In other words, you have to define all classifiers manually. If you want to use Poetry's automatic enrichment of classifiers, you should define them in [tool.poetry] and add 'classifiers' to [project.dynamic].
Warning: [tool.poetry.homepage] is deprecated. Use [project.urls] instead.
Warning: [tool.poetry.repository] is deprecated. Use [project.urls] instead.
Warning: [tool.poetry.documentation] is deprecated. Use [project.urls] instead.
Warning: [tool.poetry.urls] is deprecated. Use [project.urls] instead.
Warning: License classifiers are deprecated. Use [project.license] instead.

This is a followup from #9 dev tooling update, which effectively updated poetry.lock file from Poetry 1.8.3 to Poetry 2.4.1

pyproject.toml file now passes under poetry check --strict

@gregsvo gregsvo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@gregsvo gregsvo merged commit d87e9ff into ActiveCampaign:main Jun 29, 2026
6 checks passed
@gregsvo

gregsvo commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

It impossible to keep track of all the changes being made across libraries- I really appreciate your help, since this library is growing, and is mission-critical for many users. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants