Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Poetry v2 and project-managed Poetry plugins #62

Merged
merged 24 commits into from
Jan 8, 2025
Merged

Conversation

pronovic
Copy link
Owner

@pronovic pronovic commented Jan 6, 2025

Poetry v2.0.0 was released on Jan 5. This is a major version, with some interface changes both in the Poetry command line and in the format of pyproject.toml. It also supports a feature I've been wanting for a long time, project plugins managed in pyproject.toml. This will let me use poetry-dynamic-versioning as a project plugin.

Most of the work here was in rewriting pyproject.toml to follow the new standard from PEP-621. After doing this, I confirmed that the generated artifacts in dist (created via run build) had only minor, explainable differences. This gave me confidence that the old and new versions of pyproject.toml were equivalent.

Since I was rewriting pyproject.toml anyway, I took the opportunity to move configuration for pytest, mypy, and coverage out of individual files like .mypy.ini and into pyproject.toml instead.

The poetry install --sync command is deprecated, so I updated commands/virtualenv.sh in run-script-framework to use poetry sync instead. I also made some other minor adjustments to the run script framework to ensure I got the intended behavior from some Poetry commands.

Now that project plugins are available, I was able to simplify the shared GitHub actions and workflows, which no longer need to be aware of plugins at all (see setup-poetry and gha-shared-workflows).

I also made changes in the cookiecutter-pypi template based on the work prototyped here.

@pronovic
Copy link
Owner Author

pronovic commented Jan 6, 2025

I opened poetry-dynamic-versioning issue #203 to report a minor formatting issue in pyproject.toml -- the version line always gets moved to the bottom of the [tool.poetry] stanza.

@pronovic
Copy link
Owner Author

pronovic commented Jan 7, 2025

I opened poetry issue #9975, because I noticed that Poetry now removes installed extras when adding a new dependency, which surprised me.

@pronovic pronovic marked this pull request as draft January 7, 2025 02:23
@pronovic pronovic marked this pull request as ready for review January 8, 2025 17:13
@pronovic pronovic merged commit 1decbe1 into main Jan 8, 2025
11 checks passed
@pronovic pronovic deleted the poetry-2.0.0 branch January 8, 2025 17:29
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.

1 participant