Skip to content

Conversation

@Samarthegde
Copy link
Contributor

@Samarthegde Samarthegde commented Sep 14, 2025

This pull request modernizes the project's packaging configuration by fully adopting pyproject.toml, in accordance with PEP 621.

Key changes include:

  • Migrating all project metadata (name, version, dependencies, etc.) from setup.py to the [project] table in pyproject.toml.

This centralizes the project's configuration, making it easier to manage and align with modern Python packaging standards.

Fixes #598

@Samarthegde Samarthegde changed the title build: Modernize packaging with pyproject.toml Fixes #598 | build: Modernize packaging with pyproject.toml Sep 14, 2025
pyproject.toml Outdated

[project]
name = "pynvim"
version = "0.6.0"
Copy link
Member

Choose a reason for hiding this comment

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

does python have a standard tool for auto-incrementing this, similar to npm version ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the comments.
In this case, bump-my-version is the better option. It handles auto-incrementing the version and also fixes the issue with the hard-coded download URL by updating it automatically.

It adds a couple of new commands, like bump-my-version patch for a small fix or bump-my-version minor for a new feature.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I just wanted to ask for your guidance on documentation: where would be the best place to add notes about using this tool/commands? docs/development.rst?

Copy link
Member

@justinmk justinmk Sep 15, 2025

Choose a reason for hiding this comment

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

Please add a step here:

Release

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Instead of modifying the existing numbered steps, I've created a new subsection titled 'Releasing with bump-my-version' directly below the original 'Release' section.

My reasoning for this was to preserve the historical context of the manual release steps, while clearly introducing the new, automated bump-my-version process as a distinct and streamlined alternative. This way, both methods are documented, and the benefits of automation are highlighted without disrupting the established manual procedure.

The new section provides clear instructions on how to use bump-my-version to increment versions, create commits, and tag releases, which should simplify future release management.

Please let me know if this approach works for you.

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
requires = ["setuptools", "wheel"]
Copy link
Member

Choose a reason for hiding this comment

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

why is wheel required?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Including wheel is a best practice that ensures your project can be built into the modern, faster-installing wheel format, while not strictly necessary to build a basic source distribution, it's a key part of the modern Python packaging ecosystem.

@justinmk justinmk changed the title Fixes #598 | build: Modernize packaging with pyproject.toml build/dist: modernize pyproject.toml Sep 14, 2025
@justinmk
Copy link
Member

Thanks! This is helpful.

@justinmk justinmk merged commit fdaae82 into neovim:master Sep 16, 2025
20 of 25 checks passed
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.

build/dist: update pyproject.toml

2 participants